我这里说的可能不太详尽,所以,我先把再网上看到的一些帖子贴在这里,以便大家做内购的时候,方便查找相关信息。
这里是一篇写的比较全面的帖子,但是没有写中间问题处理: <iOS开发内购全套图文教程>
在网上搜了一些相关的帖子,简单归纳总结了一下,觉得论坛里有一个叫Teng的世界的大神,写了三篇博客,写的很详细:
【IAP支付之一】In-App Purchase Walk Through 整个支付流程
【IAP支付之二】In app purchase 本地购买和服务器购买两种购买模式
【IAP支付之三】苹果IAP安全支付与防范 receipt收据验证
大家在做内购之前,推荐看一下!
但是,毕竟我们开发的IAP是在苹果的平台上面运行,所以,如果英语能力好的话,最好去苹果官网无看<官方指南>,里面涉及到了一些论坛的贴子里没有提到过的问题,而这些内容,也很有可能会被大家忽略。下面是<官方文档中文翻译>,可以对照官方文档查看。但有时候还会出现相关的问题。好吧,废话不多说,下面开始说IAP的实现以及具体会遇到的问题,我这里可能会涉及到好多需要注意的问题,流程性的东西会少一些。大家尽量在读本篇博客之前,先把上面的几个博客看一下。
首先,我们要去iTunes store创建几个我们需要在内购中使用到的产品,记住,产品的ID一定要唯一。苹果官方提到了,IAP购买项有几种类型:
-
Consumable products:消耗类产品
-
Non-consumable products:非消耗类产品
-
Auto-renewable subscriptions:自动更新订阅产品
-
Non-renewable subscriptions. 非自动更新订阅产品
-
Free subscriptions. 免费订阅产
我们通常再游戏中用到的游戏币属于消耗类产品,赛车轨道等属于非消耗类产品,通常这2种会比较常见。我当时用的是消耗类产品。
当完成产品创建之后,去iTunes store申请一个测试账号,就要开始编写代码了。在编写代码之前,最重要的,是要了解整个内购实现的流程。这里找到了一个比较好的对<流程解说的帖子>,下面是流程图:
归根结底,其实,我们一直在和APP store在打交道,而并不是和苹果的服务器进行打交道,所以,大家要避免这个误区,而APP store才和苹果服务器进行打交道,这一层,其实我们基本是不需要考虑的。
流程:
1.首先,从图上的第一步,客户端向自己的服务器发送了一个请求,请求产品列表,然后,我们自己的服务器会返回