我的問題基本上是如何重現我在App Store與問候其他應用程序看到應用內購買的行爲:多任務和SKPaymentQueue我得到一個「卡住」 SKPaymentTransaction與SKPaymentTransactionStatePurchasing
- 在用戶按下「購買」後,立即隱藏該按鈕,並顯示一個微調框(實質上反彈買入操作)。
- 用戶按下取消StoreKit對話框(在應用程序或外部)導致微調框消失。
我試圖根據觀察SKPaymentQueue中的交易狀態來顯示和隱藏微調框。
我的問題是這樣的海報描述:
In App Purchase user cancels tx while app in background: tx state stays on purchasing
我看到了相同的行爲,上述無論如果測試用戶在第一或未登錄的職位。交易基本上「永久」在購物狀態的隊列中(意味着我的微調永遠顯示)。當應用程序完全退出並重新啓動(不只是多任務)時,交易不再處於支付隊列中,因此顯然不是真正的購買。這就像SKPaymentQueue「錯過」了狀態改變。
我注意到的一些更多細節是,在典型情況下,在添加付款後,交易顯示在採購狀態的隊列中。如果用戶按下取消,交易狀態將失敗。
在添加付款後立即分派任務的情況下,交易不會顯示在隊列中,直到回到應用程序。而不是看到兩個對updatedTransactions委託的調用(其中一個處於購買狀態,另一個處於失敗狀態),只有一個對具有購買狀態的updatedTransactions委託的調用。交易永遠不會失敗。
非常偶然的是,當回到應用程序時,我會得到一個事務刪除回調(在看到updatedTransaction與購買狀態之後)。即使在這種情況下,我也不會將事務的預期更新視爲失敗狀態。
我無法在應用程序商店的應用程序中重現此行爲(他們總是正確地顯示/隱藏微調器,無論任務是否消失),但我不清楚這是因爲他們在做些棘手的事情,或者如果它只是沙盒中的問題。
如何通過監視事務狀態來複制此行爲?這不是生產中的問題嗎?
謝謝!
因此,另一個相關的帖子是http://stackoverflow.com/questions/4938048/skpaymenttransactionobserver-not-getting-a-callback-on-app-switch,但只是爲了澄清,我的問題是什麼是人們做得到圍繞這個錯誤? – Jeremy 2011-12-31 01:48:54