如何在inAppPurchase中获取事务ID

时间:2016-05-10 08:13:57

标签: ios objective-c in-app-purchase

在我的应用中,我正在实施inAppPurchase。 问题:在测试帐户中测试应用程序时,我显示交易完成的弹出窗口。但我不知道如何获得交易ID。

这是我的代码

-(void)paymentQueue:(SKPaymentQueue *)queue

updatedTransactions:(NSArray *)transactions {     for(SKPaymentTransaction *交易中的交易){

    switch (transaction.transactionState) {
        case SKPaymentTransactionStatePurchasing:
            NSLog(@"Purchasing");
            break;
        case SKPaymentTransactionStatePurchased:
            if ([transaction.payment.productIdentifier
                 isEqualToString:kTutorialPointProductID]) {
                NSLog(@"Purchased ");
                UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:
                                          @"Purchase is completed succesfully" message:nil delegate:
                                          self cancelButtonTitle:@"Ok" otherButtonTitles: nil];
                [alertView show];
                _shipbutton.hidden=FALSE;
            }

            if ([transaction.payment.productIdentifier
                 isEqualToString:kTutorialPointProductID45]) {
                NSLog(@"Purchased ");
                UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:
                                          @"Purchase is completed succesfully" message:nil delegate:
                                          self cancelButtonTitle:@"Ok" otherButtonTitles: nil];
                [alertView show];
                _shipbuttonPremium.hidden=FALSE;
            }


            [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
            break;
        case SKPaymentTransactionStateRestored:
            NSLog(@"Restored ");
            [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
            break;
        case SKPaymentTransactionStateFailed:
            NSLog(@"Purchase failed ");
            break;
        default:
            break;
    }
}

}

我正在申请产品并获得该产品标识符甚至交易也会给出成功消息。那么如何获得交易ID?

1 个答案:

答案 0 :(得分:1)

//我认为这会对你有所帮助

        for (SKPaymentTransaction * transaction in transactions) {
    switch (transaction.transactionState)
    {

        case SKPaymentTransactionStatePurchased:
           NSLog(@"id ===> %@",transaction.transactionIdentifier);
            break;
        case SKPaymentTransactionStateFailed:
            break;
        case SKPaymentTransactionStateRestored:
            NSLog(@"id ===> %@",transaction.transactionIdentifier);
        default:
           NSLog(@"Deafault");
            break;
    }
};