신청서에 인앱 구매에 대한 추가 영수증 확인을 구현했습니다 (영감을 얻은 https://developer.apple.com/library/ios/#releasenotes/StoreKit/IAP_ReceiptValidation/_index.html). 내가 SKPaymentTransactionStatePurchased을 얻을 후 그래서, 나는이 유효성 검사를 수행하고, 성공에, 나는 게임의 새로운 콘텐츠를 잠금을 해제하고, 마지막으로 내가 확인 과정을 완료 할 수없는 경우 어떻게됩니까iOS 인앱 미완료 구매
[[SKPaymentQueue defaultQueue] finishTransaction:myTransaction];
로 거래를 마무리 말 때문에 인터넷 연결 실패 또는 사용자가 확인 프로세스 중에 응용 프로그램을 종료 한 경우 이 경우 콘텐츠를 잠금 해제하지 않고 거래를 완료하지 않습니다. 그리고 나는 그것이 오히려 논리적이라고 생각합니다.
그러나 "미완료 트랜잭션"상태에서 종료 된 응용 프로그램을 다시 시작하고 인앱 구매를 시도 할 때 transaction.error.code == SKErrorPaymentCancelled로 SKPaymentTransactionStateFailed 상태가되었습니다.
"이 항목을 이미 구입했지만 아직로드되지 않았습니다. 지금로드하려면"확인 "을 누르십시오."
"확인"을 누르면 콜백 호출이 없어서 콘텐츠를 잠금 해제하지 않았습니다.
내 질문은 : 1) 미완료 상태로 트랜잭션을 남겨 두어도 괜찮습니까 (확인할 수없는 경우)? 2) 어떻게 복원합니까? 어쩌면 내가 "당신은 이미 구입했습니다 ..."메시지 박스와 함께 콜백을 놓치고 있을까요?
P. 내 인앱 구매는 '소모품'입니다. 사용할 수 없으므로
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
무엇 당신은 소모품 제품을 제공하고있다? –