2010-07-29 2 views
3

의 취소 이벤트를 잡기, 사과는 storekit을 발표하고 우리는 사용자가는 [[SKPaymentQueue defaultQueue] restoreCompletedTransactions]

위해 그/그녀의 이메일과 비밀번호에두고 때 이벤트를 취소에 대한 콜백을 얻을조차 수 없다

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions]

. 구매를 취소 할 때 취소를 누를 때이 문제가 발생하지 않도록하십시오. 이는 트랜잭션을 복원하려고 시도 할 때 취소를 누르는 것입니다. 사용자가 취소를 누르거나 ok 버튼을 눌러도 콜 백이 발생하지 않습니다. 당신이 얻는 유일한 콜백은 서버로부터의 정보가 성공했는지 여부를 나타내는 정보가 되돌아 왔을 때입니다. 용납 될 수없는. 누구든지 대답을 해주시면 제발 대답 해주세요. 당신이

답변

9

시도 감사이 하나

@protocol SKPaymentTransactionObserver <NSObject> 

.... 

@optional 

// Sent when an error is encountered while adding transactions from the user's purchase history back to the queue. 
- (void)paymentQueue:(SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError:(NSError *)error __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0); 


@end 
+2

사람 사이의 차이를 구별하는 방법을 알고 싶은 경우 취소 및 paymentQueue 내부에서 연결 문제 : restoreCompletedTransactionsFailedWithError이 :, 다음 error.code 봐야한다. 복원을 취소하면 오류 코드 2가 표시되고 복원 중에 연결 문제가 발생하면 오류 코드 -1009가 표시됩니다. 두 오류 모두 "iTunes Store에 연결할 수 없습니다"와 같은 현지화 된 설명이 포함되어 있습니다. 다른 오류 코드에 대해 잘 모르겠습니다. 코드 2이면 요청을 자동 종료하고 그렇지 않으면 일반 오류 메시지를 표시합니다. – aiham

+0

값 2를 확인하는 것은 현명하지 않으며 http://developer.apple.com/library/ios/#documentation/StoreKit/Reference에 제공된 오류 코드를 확인하는 것이 훨씬 안전하다고 덧붙여 야합니다. /StoreKitTypes/Reference/reference.html 취소의 경우 오류 코드를 SKErrorPaymentCancelled와 비교해야합니다. – aiham

+1

... 'StoreKit/StoreKitDefines.h>'에 정의 된 명명되지 않은 열거 형의 세 번째 인덱스는 현재 2와 동일하지만 물론 변경 될 수 있습니다. 'SKErrorPaymentCancelled'와의 비교는 가장 현명한 행동 방침으로 보인다. –