您现在的位置: 爱51代码网 >> 范文 >> 文章正文
应用内购买 In-App Purchase
请求成功,就能获取Products,一个NSArray,里面就是SKProduct 对象的产品信息了。产品信息有名称,价格,等等,很容易找到。这些东西只是在显示信息时有用,购买时不需要,只要用SKProduct就行了

Step 7:购买


SKPayment *payment = [SKPaymentpaymentWithProduct:product];

[[SKPaymentQueuedefaultQueue] addPayment:payment];

代码如上。然后就开始连接App Store了。主要看下面

#pragma mark - SKPaymentTransactionObserver

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

{

   for (SKPaymentTransaction *transactionin transactions) {

       switch (transaction.transactionState) {

            caseSKPaymentTransactionStatePurchased:

                [selfcompleteTransaction:transaction];

               break;

            caseSKPaymentTransactionStateFailed:

                [selffailedTransaction:transaction];

               break;

            caseSKPaymentTransactionStateRestored:

                [selfrestoreTransaction:transaction];

               
           default:

               break;

        }

    }

}


这里说一下上面的第三种交易状态Restore,恢复。这个是这样的。如果有些人在iPhone上用一个账号购买了一个产品,那么在iPad上又下载了这个应用,还要再重新购买吗?不用了,通过Restore在App Store中检测你这个账号的购买记录,如果有购买记录存在,那就不用再次购买了,直接restoreTransaction。

 

接下来就是根据购买的状态分别进行处理


- (void) completeTransaction: (SKPaymentTransaction *)transaction
{
    // Your application should implement these two methods.
    [self recordTransaction:transaction];
    [self provideContent:transaction.payment.productIdentifier];
    // Remove the transaction from the payment queue.
    [[SKPaymentQueue defaultQueue] finishTransaction: transaction];
}
一般我们用NSUserDefaults来进行交易的记录就行了。

注意程序中finishTransaction这一行代码,这样TransactionObserver就不再监测这个交易了。

其他状态Restore,failed都是差不多的处理,这些代码在开发文档中有。

 


当然,对于restore,还有一个Method要注意


- (void)paymentQueue:(SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError:(NSError *)error

如果restore失败,可以显示相应的信息提示毕业论文 

 

Step 8:附加

在整个购买过程中,我们一般要给用户一下提示信息,比如等待,比如正在连接,比如交易已完成。要实现这些功能,就应该用notification,在上面的交易环节加入postNotification,然后对notification进行有效处理。本文只讲In-App Purchase,关于notification的编程不做介绍。

 


基本上,通过上面的环节就能完成整个应用内购买了。当然,从安全性上考虑,Apple在交易完成后会发送验证信息,通过发送验证信息给App Store来判断这笔交易是否出自App Store,从而确认交易的合法性。

关于这方面,Apple 有一个代码包提供了validationController来实现很方便的验证。

上一页  [1] [2] 

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    mysql主从同步延迟方案解决的学习
    青岛科学六年级下册教材分析
    生日旅行总结
    中小板生日快乐随感
    送生日快乐桑葚乳酪小蛋糕
    写给女儿的生日快乐
    总分公司财务核算
    恢复使用繁体字可行性研究报告
    青少年吸烟心理探析
    保险受益人制度相关问题的探讨
    mysql主从同步延迟方案解决的学习
    生日旅行总结
    中小板生日快乐随感
    送生日快乐桑葚乳酪小蛋糕
    写给女儿的生日快乐
    总分公司财务核算
    恢复使用繁体字可行性研究报告
    保险受益人制度相关问题的探讨
    初中生地理读图能力培养的研究
    搞笑生日祝福
    Android之Activity的taskAff
    Redis系列-key相关主要操作函
    Redis存储篇sorted set主要操
    把oracle rac 转化为单机数据
    sqlplus spool 到动态日志文
    ios开发之UIButton 点击两张
    android蓝牙串口连接代码
    Preview of Qt 5 for Androi
    VS2010 cocos2d-x 工程配置 
    windows正在配置Windows Ins
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |