2016-11-28 69 views
1

我試圖實現StoreKit在我的macOS應用程序中自動更新訂閱的功能。在macOS沙箱環境中購買自動續訂訂閱後,收據不會得到更新

閱讀了幾十頁並檢查示例之後,我瞭解了所有內容如何組合在一起,但無法使其正常工作。

我所試圖做的事:

  1. 一旦應用程序啓動,檢查是否爲有效訂閱者可通過評估當地的收據。我特別檢查收據的任何In-App Purchase field entries中的取消日期是否無效,以及訂閱到期日是否將來。
  2. 如果沒有(有效)訂閱可用,我將使用StoreKit的API購買訂閱。

這兩種方案都正常工作,因爲此流程在第一次購買訂購時完美無缺。但是,訂閱到期日期結束後收據不會自動更新。我期待這張收據定期更新,如Auto-renewing subscription and app receipt所示。因此,上述第一步失敗,因爲某個點的到期日期在歷史中,因此被視爲過期。

兩件事情,我覺得奇怪:

  • 我SKPaymentTransactionObserver實例只被購買訂閱(經過用戶明確購買它)後調用。它在訂閱過期時不會被調用,並且應該自動更新(如上面的博客文章所示);
    • 使用SKReceiptRefreshRequest API顯式詢問我的收據(包含IAP的過期日期)會失敗,方法是調用它的請求:didFailWithError:delegate方法。錯誤對象爲零,所以我不明白爲什麼它更新失敗。

我可以共享代碼,但我有一種感覺,這是不相關的代碼,而是某種項目/環境的設置和/或行爲,我不完全得到。

你有什麼建議可以嘗試嗎?

回答