苹果内购流程

苹果内购流程

1.客户端通过我们的服务器创建订单,创建成功我们服务器记录订单状态为未支付
2.客户端在app请求苹果内购支付订单
3.用户在客户端支付完成并拿到苹果的支付验证信息,客户端请求我们服务器验证支付,同时我们服务器记录该订单的订单号和苹果后台返回的支付交验信息
4.我们服务器请求苹果后台验证支付
5.客户端请求验证成功,app设置该订单的状态为已完成([[SKPaymentQueue defaultQueue] finishTransaction:transaction]):
    验证成功,服务器记录订单状态为已完成,给用户打款
    验证超时,服务器记录订单状态为等待支付验证,同时app可以在手机订单列表中再次发起支付检验(服务器通过第2步保存的信息去验证)
    验证失败,服务器记录订单状态为支付失败,同时记录失败原因,用户在客户端订单列表可以看到该订单为何支付失败
6.网络原因等导致客户端请求验证失败,app不要置该订单的状态为完成:
    客户端记录该订单的订单号和苹果后台返回的支付交验信息(用keychain记录到数组中),订单列表显示为未检验,同时在app的订单记录里面可以再次向我们服务器发起该订单的支付交验(通过客户端保存的信息)

7.客户端再次发起之前订单的支付验证逻辑 为4-6步
注意:如果客户端没有登录,则必须要去用户登录之后才能再次发起支付交验

你可能感兴趣的:(苹果内购流程)