2013-01-11 48 views
1

在我的iPhone應用程序中,我實現了inAppPurchase,因此用戶可以在應用程序中購買產品。它現在在iTunes應用程序商店。 我在沒有顯示任何信用卡驗證頁面的沙箱中對其進行了良好測試。 在用戶試圖從我的應用程序購買應用程序中的某些內容以批准他/她的信息時進行直播。inapp在返回...時購買調用failetransaction?

enter image description here

當用戶通過所有過程,並且從後臺再次打開我的應用程序。

enter image description here

以上味精提示用戶,我在我的failedTransaction寫道 - (空)paymentQueue:(SKPaymentQueue *)隊列updatedTransactions:(NSArray的*)交易方法。 這種方法如下:

-(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions 
{ 
for(SKPaymentTransaction *transaction in transactions) 
{ 
    switch (transaction.transactionState) 
    { 
     case SKPaymentTransactionStatePurchased: 
      [self completeTransaction:transaction]; 
      break; 
     case SKPaymentTransactionStateFailed: 
      [self failedTransaction:transaction]; 
      break; 
     default: 
      break; 
    } 
} 
} 

誰能指導我什麼錯誤?

回答

1

發生這種情況是因爲您的服務器在驗證部分已實施。

檢查以下幾件事:

{ 
    "status" : 0, 
    "receipt" : { (receipt here) }, 
    "latest_receipt" : "(base-64 encoded receipt here)", 
    "latest_receipt_info" : { (latest receipt info here) } 
} 

首先檢查這些東西在你的服務器端,並調試代碼,讓我知道。

上述響應之一可能會造成問題。

感謝,

Hemang。

+1

你好賀芒,謝謝你的回覆。但實際上,當它在信用卡驗證後回到我的應用程序時,當時如果有completeTransaction調用,那麼只有我有收據,但它會進入failedTransaction。 –

+1

其真的有用..Bro ...真棒... – 2013-01-11 09:38:25

+0

添加此方法:案例SKPaymentTransactionStateRestored: [self restoreTransaction:transaction]; \t \t \t \t break; 也添加此方法。然後檢查它。如果仍然會遇到失敗的事務,那麼服務器端驗證會出現問題。 – Hemang