Chúng tôi có một ứng dụng với mua đồng xu IAP. Gần đây, chúng tôi đã nhận được thư từ một vài người dùng của chúng tôi, nói rằng họ không thể mua bất kỳ đồng xu nào. Tôi đã xem nhật ký phiên của họ và thấy các sự kiện IAP không thành công, mỗi sự kiện không có lý do thất bại nào được ghi lại. Dưới đây là các mã liên quan:SKPaymentTransactionStateFailed, nhưng không 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];
}
}
bên trong logFailIAP, tôi đăng nhập những thứ như thời gian, UDID, tên sự kiện và lỗi.localizedDescription.
if (failReason != nil && failReason.length > 0) {
[metricsDictionary setObject:failReason forKey:MetricsEventParameterFailReason];
}
Trong nhật ký, tôi nhận được sự cố IAP không thành công nhưng không có lý do đăng nhập nào bị lỗi. Có trường hợp nào, bạn nhận được "SKPaymentTransactionStateFailed", nhưng, có một error.localizedDescription trống không? Tôi có thể xác nhận rằng nhật ký hoạt động và đã thấy các lỗi như "Thanh toán bị hủy" và "Không thể kết nối với iTunes" đang được ghi lại trong các thiết bị khác. Sự cố không dành riêng cho thiết bị hoặc iOS.
Phương thức thanh toán của bạnQueue: updatedTransactions: trông như thế nào. Đặc biệt là làm thế nào để bạn đi qua mảng giao dịch. – neoneye