ios 内购

iOS-内购

96  
作者   靓模袭地球  
2017.03.29 10:14*   字数 168   阅读 232 评论 13

前言:
关于iOS内购,参考两篇博文
iOS-iOS内购流程(手把手图文教程)
iOS内购你看我就够了(埋坑篇)

PS : 接下来,你可以下载demo将bundleID改为你自己的app,可以测试你的app内购商品购买,前提是:你需要APP开发者账号,

我自己写了一个小的demo.
GitHub : IAPKit


内购过程.png
逻辑:
 1.查询到内购商品后,同时都会向服务器请求订单.
 2.每次请求查询内购商品的时候,同时都会请求服务器生成一笔新的订单.
 3.每次处理新的订单的时候,选择处理:购买与取消购买.
 4.如果向苹果付款了,会收到一个交易凭证和交易事务.将这两个内容传会给服务验证器.
 5.服务器根据当前的交易凭证,来判断该订单是否完成交易.根据判断发送对应的信息给客户端.
内购最核心的方法,需要处理的方法就是监听交易事务的状态的改变.

监听方法.png

整个内购的逻辑其实很简单理解,这要主要就是注意细节:

 第一步:请求商品(消费型,非消费型)
 第二步:返回请求结果
 第三步:将获取的商品信息发送给服务器
 第四步:返回一个订单
 第五步:发起购买
 第六步:购买成功后返回购买凭证
 第七步:将购买凭证发送给服务器验证
 第八步:告诉客户端发货

这里比较关键的是第六步:
要将购买凭证发送至服务器,给服务器验证.这里就要考虑客户端出现的情况.
我自己思考了一种情况就是:

1.恰好在这个时候,用户已经支付钱给appStore了,
2.但是发送给服务器验证的时候卡主了,客户端出现网络一次,发不出去,服务器并没有收到交易凭证,
3.这就导致于说,服务器不通知客户端发货.
4.如果我是个用户,我等待的时间久了,我也不会重新再购买一次,因为我明明已经付钱了.
5.我会直接结束整个app,重新进入app.
6.当我重新进入这个app的时候,我要重新验证收据凭证来补单.
7.所以我得需要每次交易完成之后将一些交易凭证内容保存到本地.
8.每次applicationDidBecomeActive的时候验证这些订单是否已经购买.
9.也验证这些订单是否已经发货(根据服务器返回的参数决定)

还有:iOS内购你看我就够了(埋坑篇)最后提到要禁止越狱的用户内购(这个就自己另行考虑了,我还没有仔细考虑到)

思维导图 :


IAP.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值