我們有一個IAP硬幣購買的應用程序。我們最近收到了一些用戶的郵件,說他們無法購買任何硬幣。我查看了他們的會話日誌並看到失敗的IAP事件,每個事件都沒有記錄失敗原因。下面是相關的代碼:SKPaymentTransactionStateFailed,但沒有NSError
- (void)_purchaseRequestFailed:(SKPaymentTransaction *)transaction state:(StoreTransactionState)state error:(NSError *)error
{
IAPProduct *product = [self getProductWithId:transaction.payment.productIdentifier];
if (error.code==SKErrorPaymentCancelled) {
[_metricsManager logFailIAP:product failReason:@"Payment canceled"];
} else {
[_metricsManager logFailIAP:product failReason:error.localizedDescription];
}
if ([_delegate respondsToSelector:@selector(didSucceedPurchasingProduct:)]) {
[_delegate didFailPurchasingProduct:product];
}
}
內logFailIAP,我登錄之類的東西時,UDID,事件名稱和error.localizedDescription。
if (failReason != nil && failReason.length > 0) {
[metricsDictionary setObject:failReason forKey:MetricsEventParameterFailReason];
}
在日誌中,我收到失敗的IAP事件,但沒有記錄失敗的原因。有沒有任何情況下,你會得到「SKPaymentTransactionStateFailed」,但是,有一個空的error.localizedDescription?我可以確認日誌正常工作,並且看到其他設備中記錄的錯誤(如「付款已取消」)和「無法連接到iTunes」。該問題並非特定於設備或iOS。
您的paymentQueue如何:updatedTransactions:方法看起來像。尤其是如何遍歷事務數組。 – neoneye 2013-09-29 22:55:22