2012-12-03 3 views
1

성공적으로 inapp 구매를하고 Apple 서버에서 콘텐츠를 다운로드하여 사용할 수 있습니다.
내 인앱 구매 콘텐츠는 비 소모품입니다. 그래서 저는 사용자 프레스는 "복구 (Restore)"버튼을 때
이제 내 응용 프로그램에서 "복구 (Restore)"버튼을 제공하고있어, 내가 전화 한 방법 :iOS6 - Apple 서버에서 다운로드 할 때 구입

restoreCompletedTransactions 

그러나 여기, 내가 위임에 대한 호출을받지 못했습니다 방법 :

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions 

그래서 트랜잭션 개체를 식별하고 사과 서버에서 콘텐츠를 다시 다운로드 할 수 있습니다. 어떤 사람이 "복원"옵션을 쓰는 데 나를 도울 수 있습니까?

사과 당, 그것은 말한다 :

// 비동기. 현재 사용자의 완료된 트랜잭션을 큐에 다시 추가하여 다시 완료합니다. 사용자는 인증을 요청 받게됩니다. 옵저버는 0 개 이상의 -paymentQueue : updatedTransactions :, -paymentQueueRestoreCompletedTransactionsFinished : 성공시 또는 -paymentQueue : restoreCompletedTransactionsFailedWithError : 실패시에 수신됩니다. 부분적으로 성공한 경우 일부 트랜잭션이 여전히 전달 될 수 있습니다.

그러나 나에게는 "paymentsQueue : updatedTransactions"라는 호출이 전혀 발생하지 않습니다. 나는 단지 "paymentQueueRestoreCompletedTransactionsFinished"라는 호출을 얻고 있습니다. "

답변

2

아마도 트랜잭션 큐를 관찰하지 않습니다. 당신이

+0

아니, 내가 그 일을하고 restoreCompletedTransactions 메서드를 호출하기 전에 당신이 어딘가에

[[SKPaymentQueue defaultQueue] addTransactionObserver:self]; 

이 있는지 확인합니다. – Satyam

+0

복원 후, 나는 다시 전화를 받고 있어요 : - (void) paymentQueueRestoreCompletedTransactionsFinished : (SKPaymentQueue *) queue하지만 트랜잭션 객체를 얻고 다운로드 할 내용을 얻는 방법? – Satyam

+0

이것은 이상합니다. paymentQueue : updatedTransactions : 메소드를 호출해야합니다. 이 메소드가 이전에 호출되었지만 그 후에 [[SKPaymentQueue defaultQueue] finishTransaction : transaction]을 호출하지 않았을 수 있습니까? 이 경우 기기에서 앱을 삭제하고 동일한 테스트 사용자로 제품을 다시 복원해야합니다. – dariaa

관련 문제