2013-07-07 2 views
0

앱 구매 완료 시점에 대한 알림을 등록하는 방법이 있습니까? IE는 구매 또는 복원이 실패하거나 성공할 때 중 하나입니까? 이러한 4 가지 경우를 처리하여 인앱 구매가 이루어지는보기 컨트롤러에서 사용자에게 경고를 표시 할 수 있습니다. 누구든지이 작업을 수행하는 방법을 알고 있습니까?앱 구매가 완료되면 알림을받을 수 있습니까?

+0

"SKPaymentTransactionObserver"구현에 대해 이야기하고 있습니까? 그것은 Objective-C의 "Observer Pattern"을 따라 트랜잭션이 완료 될 때 통보되어야합니다 (http://www.a-coding.com/2010/10/observer-pattern-in-objective-c.html) –

답변

1

(void) paymentQueue : updatedTransactions : 트랜잭션 상태가 업데이트되면 호출됩니다. 트랜잭션을 완료 할 때 경고 창을 표시 할 수 있습니다.

- (void) purchaseItem:(SKProduct *) item 
{ 
    NSLog(@"Purchasing item %@", item.localizedTitle); 
    SKPayment *payment = [SKPayment paymentWithProduct:item]; 
    [[SKPaymentQueue defaultQueue] addPayment:payment]; 
} 

- (void) paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions 
{ 
    for (SKPaymentTransaction *transaction in transactions) 
    { 
     switch (transaction.transactionState) 
     { 
      case SKPaymentTransactionStatePurchased: 
       [self completeTransaction:transaction]; 
       break; 
      case SKPaymentTransactionStateFailed: 
       [self failedTransaction:transaction]; 
       break; 
      case SKPaymentTransactionStateRestored: 
       [self restoreTransaction:transaction]; 
       break; 
      default: 
       break; 
     } 
    } 
} 

- (void) completeTransaction:(SKPaymentTransaction *) transaction 
{ 
    [[SKPaymentQueue defaultQueue] finishTransaction:transaction]; 
    UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Transaction" 
               message:@"Your purchase is complete" 
               delegate:nil 
             cancelButtonTitle:@"OK" 
             otherButtonTitles:nil]; 
    [message show]; 

    // or 

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(finishTransactionSuccessfully:) name:PURCHASE_NOTE object:nil]; 
} 
관련 문제