2011-12-08 45 views
1

我正在寫一個Mac應用程序的Mac App Store,用於應用程序購買。我加倍檢查,我認爲我已經正確實施了一切。因此,當我提出產品請求時,代理方法在應用程序購買付款對話框不顯示在Mac OS的獅子

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response 

被調用,並帶有正確的產品ID。然後我使用付款方式

[[SKPaymentQueue defaultQueue] addPayment:payment]; 

這個問題出現在這裏。在前10-15分鐘內,購買對話框根本不顯示,我也不會收到updatedTransactions通知。一段時間後,如果我再試一次,一切正常,我會在1-2秒內提示我的憑據。這對我來說似乎很奇怪,因爲他們應該從一開始就工作。 因爲這個原因,我的應用被拒絕了好幾次,說應用購買不起作用。

是的,我已經添加了收據驗證碼,如果它不存在,我退出應用程序的代碼173,我被提示輸入我的憑據,然後應用程序重新打開,但在應用程序不工作後,即使後這個。是的,我已經用一個已經使用分佈配置文件創建的內置進行了測試。我使用的是XCode 4.2,而我的操作系統是Lion。

將支付添加到隊列後,我試着啓動一個定時器,定期檢查transactions屬性SKPaymentQueuetransactionIdentifier是正確的,它的transactionStateSKPaymentTransactionStatePurchasing。這告訴我StoreKit和Apple服務器之間存在一些溝通問題。

其他人遇到過這個問題?任何幫助,將不勝感激,我現在​​掙扎了3天,並找不到解決方案,這讓我瘋狂。

+0

更多代碼可能會有所幫助。你添加了Observer來檢查狀態嗎? [[SKPaymentQueue defaultQueue] addTransactionObserver:observer]; –

+0

是的,我在應用程序啓動時添加了觀察者。我使用單身類來管理也是觀察者的購買。稍後會發布一些代碼。 –

+0

發佈你的代碼,以便它可以被審查。我會重新審查一下,你是否遵循了Apple的步驟(http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/AddingaStoretoYourApplication/AddingaStoretoYourApplication.html) –

回答

0

我終於找到答案了。根據In App Purchase Programming Guide,我確實已經正確實施了一切。

看來我一直在做錯的是在收到驗證碼之前添加事務觀察器。在我更改了訂單(首先驗證收據,然後添加觀察員)後,所有工作都正常進行。這個細節應該在某處提及。它引起了很多頭痛。

相關問題