2
앱 구매시 구현 중입니다. 모든 것이 잘되고 있지만 SKPaymentTransactionStatePurchasing에서 항상 내 흐름이 멈 춥니 다. 아무도 그 이유를 알고 있습니까?. 도와주세요. 당신이 전화하고 있기 때문에SKPaymentTransactionStatePurchasing에서 애플리케이션 흐름이 중지됩니다.
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{
NSLog(@"transactions........%@",transactions);
NSLog(@"transactions count........%d",[transactions count]);
NSLog(@"transactions description ........%@",transactions.description);
[[SKPaymentQueue defaultQueue] removeTransactionObserver:self];
for (SKPaymentTransaction *transaction in transactions)
{
switch (transaction.transactionState)
{
case SKPaymentTransactionStatePurchased:
[self completeTransaction:transaction];
[[SKPaymentQueue defaultQueue] finishTransaction: transaction];
break;
case SKPaymentTransactionStateFailed:
[self failedTransaction:transaction];
[[SKPaymentQueue defaultQueue] finishTransaction: transaction];
break;
case SKPaymentTransactionStateRestored:
[self restoreTransaction:transaction];
[[SKPaymentQueue defaultQueue] finishTransaction: transaction];
break;
case SKPaymentTransactionStatePurchasing:
NSLog(@"purchasing");
// [self completeTransaction:transaction];
break;
default:
NSLog(@"default case");
break;
}
}
}
종종 관찰자를 제거하지 않는 것이 좋습니다. 예를 들어 사용자가 구매를 시작한 후 신용 카드 정보를 업데이트하라는 메시지가 표시되면 설정 앱으로 이전되고 성공적으로 업데이트 한 후 앱 외부에서 구매 프로세스를 완료 할 수 있습니다. 앱으로 돌아 오면 2 회의 연속 거래가 발생하고 실패한 거래는 성공적인 거래가 이어집니다. 이 경우 실패한 트랜잭션 직후 옵저버를 제거하고 성공한 트랜잭션을 놓치고 싶지는 않습니다. – Got99Errors