Tôi sử dụng xác minh biên nhận phía máy chủ.Tôi có nên gọi finishTransaction khi xác minh biên nhận trên máy chủ không thành công không?
Khi khách hàng
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
được gọi, và transactionState
là SKPaymentTransactionStatePurchased
, khách hàng gửi biên nhận đến máy chủ của chúng tôi, và máy chủ của chúng tôi kiểm tra nó.
Khi xác minh biên lai bên máy chủ thành công, khách hàng rõ ràng gọi finishTransaction
, không sao cả.
Khi xác minh biên lai bên máy chủ không thành công, vì tạm thời không trả lại json hoặc khách hàng đã gửi biên nhận không hợp lệ hoặc máy chủ trả lại thông tin đó cho khách hàng.
Tiếp theo, khách hàng của chúng tôi nên làm gì? Chúng ta có nên gọi finishTransaction
không?
Điều này dẫn đến các giao dịch không hợp lệ tồn tại mãi mãi trong hàng đợi? như đã nói trong câu hỏi này: iPhone in-app purchase: receipt verification
Nhưng nếu bạn thấy rằng biên lai không hợp lệ, bạn nên kết thúc giao dịch liên kết. Nếu không, bạn có thể có các giao dịch bổ sung tồn tại mãi mãi trong hàng đợi giao dịch. Điều đó có nghĩa là mỗi khi ứng dụng của bạn chạy, paymentQueue: updatedTransaction: sẽ được gọi một lần cho mỗi giao dịch ...
Nhưng nếu chúng ta làm finishTransaction
, sử dụng quý của chúng tôi được tính bằng cách nhận này (mà chúng tôi không thể xác minh), đúng?
Hoặc giao dịch xác minh không thành công có hết hạn trong một khoảng thời gian không?
Tài liệu này có ở đâu đó trong tài liệu của apple không? Tôi không thể tìm thấy bất kỳ hình thức nào trong số http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/Introduction/Introduction.html
Tôi thấy nhận xét này thường xuyên về việc chỉ cung cấp nội dung nếu biên lai không thành công.Nếu bạn có kế hoạch làm điều đó, tại sao phải trải qua những rắc rối của việc xác nhận nhận được? Chỉ tò mò về ý kiến của bạn về điều đó. – Scooter