美文网首页支付
苹果内购(IAP)调研报告

苹果内购(IAP)调研报告

作者: 4VZhang | 来源:发表于2016-07-25 08:18 被阅读417次

    一.适用情况:

    什么时候使用苹果内购?为什么时候苹果内购?

    在苹果制定的游戏规则中,所有在App内提供的服务需要付费时,都应当使用IAP,比如解锁软件功能、游戏道具;所有在App外提供的服务需要付费时,都应使用其他支付方式,比如比如淘宝、京东等一堆电商,他们的商品都是不存在于App中的。

    列举一些相关实例,

    1.在IAP里,可以出售:

    数字内容:比如杂志、图片、游戏关卡解锁、相机付费滤镜等;

    软件功能:如各种扩展features;

    一次性服务:比如一次语音通话等。

    2.在IAP里,不能出售:

    现实世界的商品或服务

    3.现在有很多比如网易云课堂,腾讯课堂等等在线教育App,可以在App中购买视频并在APP中观看,也就是说'观看视频'这个功能是本身就存在于APP中的,只是需要你先购买视频,才能使用'观看视频'这个功能,这个时候,这种解锁APP已有功能的操作,就必须要使用iap

    当然,肯定有APP不是这样,毕竟谁也不愿意让苹果抽那么多钱,那些APP也许是用了一些什么欺骗手段,比如后台写个开关,审核的时候打开,所有功能都能使用,上线后再关闭开关啊什么的。这样的APP有可能随时会被警告并下架,严重点的封号也不是没可能  o(╯□╰)o

    第三点就提到了为什么使用苹果内购? 极大降低了应用审核被拒的风险以及被迫下架的可能性,还可以大力推广应用的付费功能.

    二.关于商品类型:iap创建商品时选择的商品类型大概分三类

    1.消耗型商品:

    就是类似游戏中的钻石,还有现在某些APP中的货币,比如什么鱼丸,鱼翅什么的,会被消耗的,要选择消耗型商品

    2.非消耗型商品:

    无法被消耗的商品,比如上文提到的视频课程,一次购买,就应该永久可以观看,视频你怎么消耗?打赏多少多少视频?o(╯□╰)o

    3.订阅类型商品:

    多用于会员,需要注意的一个地方就是苹果似乎没有保存期限,所以这个期限要后台保存的.另外需要注意的一个地方是当APP中有过订阅类型商品,注意是有过,曾经有过删除也算的,这个APP是无法转移账号的.

    三.在itunes connect 里面签署相关协议

    将上图标注的关于联系人信息,税务,银行信息填写完成就ok.

    四.添加内购项目

    五.应用内代码实现 && 沙盒测试

    可以参考此博客,博客中介绍的比较详尽.

    六.内购的两种模式---内置模式 && 服务器模式(相对可靠,安全,首选)

    使用内置模式。 需要交付的产品已经在程序内部。 这种方式通常用在一些被锁定的功能上。 也可以用来交付在程序束(App Bundle)中的内容。 该方式的一个重要的优点是你可以及时的给客户交付产品,大多数的内置产品应为非消耗性商品。

    使用服务器模式,要提供另外的服务器将产品发送给程序。 服务器交付适用于订阅、内容类商品和服务,因为商品可以作为数据发送,而不需改动程序束。 例如,一个游戏提供的新的内容(关卡等)。 Store Kit不会对服务器端的设计和交互做出定义,这方面工作需要你来完成。 而且,Store Kit不提供验证用户身份的机制,你需要来设计。 如果你的程序需要以上功能,例如,纪录特定用户的订阅计划, 你需要自己来设计和实现。

    1.内置模式的流程:

    app从app store 获取产品信息

    用户选择需要购买的产品

    app发送支付请求到AppStore

    AppStore处理支付请求,返回transaction信息

    app将购买的内容展示给用户

    2.服务器模式的流程:

    app从服务器获取产品标识列表

    app从app store 获取产品信息

    用户选择需要购买的产品

    app 发送支付请求到AppStore

    AppStore处理支付请求,返回transaction信息

    app将 transaction receipt 发送到服务器

    服务器收到收据后发送到app stroe验证收据的有效性

    app store 返回收据的验证结果

    根据app store 返回的结果决定用户是否购买成功

    上述两种模式的不同之处主要在于:交易的收据验证,内建模式没有专门去验证交易收据,而服务器模式会使用独立的服务器去验证交易收据。内建模式简单快捷,但容易被破解。服务器模式流程相对复杂,但相对安全

    开发之初,苹果官方就很负责的告知:我们的服务器不稳定。真正开发之后,发现苹果方果然是很负责的,不仅是不稳定,而且足够慢。app store server验证一个收据需要3-6s时间

    用户能否忍受3-6s的等待时间

    如果app store server 宕机,如何确保成功付费的用户能够得到正常服务。

    对于第一个问题,我们有理由相信用户完全无法忍受,所以采用异步验证的方式,服务器收到客户端的请求后,就将请求放到MCQ中去处理。

    对于第二个问题,由于苹果人员很负责人的告知:我们的服务器不稳定,所以不排除收据验证超时的情况。对于验证超时的收据,保存到数据库中并标记为验证超时,定时任务每隔一定的时间去app store验证,确保能够获取收据的验证结果。此处摘自博客

    相关文章

      网友评论

      • zolobdz:楼主最近,我最近再做一个新的项目也是要走内购的虚拟货币。有几个问题想问一下,1.创建内购项目的时候选择价格我看只有正数,例如30,40,这个是代表的只能是30和40元,还是说他们代表了两个区间,30:30~40,40:40~50; 2.我看其他博主会提到一个叫做二进制码的东西。请问楼主知道是做什么的吗
        zolobdz:@夜空_守望者 好的,十分感谢!
        4VZhang:@zolobdz 只能是整数,就如你说的30,40;我不晓得二进制码的东东,也许就是项目打包后生成的App的二进制文件
      • 706ac7a75123:楼主有服务端相关接口开发的资料吗?比如说请求apple strore服务器验证,请求的url是多少,参数的格式是什么,这些资料在哪儿找啊?
      • 超_iOS:请问楼主这个搞定没,有问题想请教下
        4VZhang:@李二超 搞定了,有什么可以帮你的

      本文标题:苹果内购(IAP)调研报告

      本文链接:https://www.haomeiwen.com/subject/iuhirttx.html