2013-03-15 24 views
10

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.

+0

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

Trả lời

1

Tôi đã gặp một con số không error trong các tình huống sau:

  • cập nhật tài khoản iOS trên thiết bị của họ.

  • Ngay sau khi cập nhật, người dùng truy cập vào ứng dụng của bạn và cố thực hiện mua hàng.

  • Thay vì hộp thoại mua thông thường, họ nhận được "Điều khoản dịch vụ của iTunes đã thay đổi. Bạn cần chấp nhận T & C" (hoặc điều gì đó dọc theo đường), chuyển hướng đến ứng dụng iTunes và hiển thị chúng mới T & C. Sau đó, thanh toán sẽ bị hủy và bạn nhận được số nil error và rõ ràng là số không error.localizedDescription.

Để ứng dụng này xảy ra, ứng dụng của bạn cần phải là điểm tương tác đầu tiên của người dùng với iTunes Store sau khi cập nhật hệ thống.

Các vấn đề liên quan