2011-04-06 45 views
7

我在我的應用程序中實現了自動更新訂閱,我不知道是否有一種方法來模擬訂閱期滿和創建新的事務時。如何測試可更新訂閱(App Store)

該應用程序連接到一個在線服務,該服務始終跟蹤用戶以及是否有「高級訪問」。據瞭解,有兩種方法可以檢測交易何時完成。

  1. 該應用程序已啓動並updatedTransactions:在我的PaymentObserver中作爲SKPaymentTransactionStateRestored調用。然後,我從應用程序將這些信息發送到更新訂閱的服務器。

  2. 我經常檢查App Store API並將「最新收據」與我數據庫中的「最新收據」進行比較。如果有新的,則進行交易並延長訂閱。

無論採用哪種方式,我需要模擬訂閱期結束,App Store創建新的事務。我該怎麼做呢?

回答

2

你確定你需要模擬這個嗎?我想你會發現,在沙箱中,訂閱時長非常短,所以你只需要喝一杯咖啡或什麼東西就可以過期,然後你就可以測試發生了什麼。

時間長短取決於訂閱的長度,但我認爲7天訂閱會在沙盒中幾分鐘內過期。

+0

啊,沒有注意到,謝謝! – oskob 2011-05-24 14:14:35

+0

權利,7天訂閱最後* 3分鐘*在沙箱環境。 – yonel 2011-08-31 11:57:44

+2

一個警告:訂閱將只自動更新5次。之後,如果您購買,他們將不再自動續訂。你必須創建一個新的測試用戶來做到這一點! – Jarson 2012-03-10 00:38:44

3

沙箱環境會自動模擬訂閱續訂。 1年訂閱將每1小時更新一次。 1個月的訂閱似乎每隔5-6分鐘更新一次。

每個訂閱似乎會續訂5次。此時,訂閱被取消。每次續訂都會觸發發送到客戶端應用程序的恢復事務。

這都是基於我的經驗。我找不到來自Apple的任何官方文檔。

+2

這裏全部記錄(需要開發人員登錄):http://itunesconnect.apple.com/docs/iTunesConnect_DeveloperGuide.pdf – TomSwift 2011-08-24 22:38:49

0

實際上,續訂在Sandbox中似乎不起作用。看起來你總是進入購買過程。自動更新應該是「隱藏的」,因爲AppStore會自動重新執行它,直到用戶明確「取消」爲止。在沙箱裏,每5分鐘你需要再購買一次。

最後,「您已經購買該應用程序」中存在一個錯誤,因爲它應該發送正確的事務,但它只是發送一個錯誤代碼。

0

其實,我在沙箱中遇到更新是非常不可預測的。有時它的工作原理與上述相同,有時它的工作原理完全不同,有時甚至根本不起作用(說作爲一家開發商,其應用程序實際上是通過自動更新訂閱使用In-App-Purchases,顯然已成功投入生產)。 就在此刻,我在沙盒中訂購了一個月,原訂購買日期從27個小時後開始,到期日爲三個小時。我真的很想知道如果你的回答是荒謬的,你應該怎麼測試這個。