美文网首页
IAP内购丢单处理

IAP内购丢单处理

作者: 栋柠柒 | 来源:发表于2018-08-13 11:46 被阅读208次

要想处理丢单,就要搞清楚哪些环节会出现丢单的情况。
首先来理一下支付流程:
1.调用IAP接口发起支付
2.支付成功,获取App Receipt票据,调用充值接口验证
3.验证通过,给用户充值虚拟货币并回调给 App

在IAP支付的机制中,每次支付行为或每笔交易被认为是一个SKPaymentTransation,只有当SKPaymentTransation被finishTransaction:,这次支付(交易)行为才算是正常结束了。即使这次支付途中被中断,其实也并没有丢失。假设支付没有完成 App 就退出了(比如崩溃),那么当下次 App 重启之后,只要设置了监听addTransactionObserver:,之前被中断的支付就会接着进行。

1.第一步,客户端发起支付之后,苹果那边正在处理支付,客户端由于某种原因被kill了,支付结果并不能返回到客户端,但是苹果那边确实扣款成功。
2.第二步,客户端拿到支付结果和支付凭证之后,向服务端发送App Receipt票据之前,客户端被kill,也会导致扣款成功,服务端订单状态没有修改。

针对第一种情况,可以在 App 一启动就设置监听,如果有未完成的支付,则会回调- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions;这个方法,在这个方法里调用接口充值。

针对第二种情况,客户端可以在收到苹果返回支付成功,获取支付凭证App Receipt票据之后,将订单号,App Receipt票据缓存到本地,待发起验证订单请求,服务端返回正确结果之后,将该缓存结果删除,结束本次交易。每次app启动之后,就检查是否有未删除的订单,如果有,就向服务端重试验证支付结果,服务端返回正确结果之后,将该缓存结果删除,结束本次交易。

相关文章

  • IAP内购丢单处理

    要想处理丢单,就要搞清楚哪些环节会出现丢单的情况。首先来理一下支付流程:1.调用IAP接口发起支付2.支付成功,获...

  • 应用内支付 IAP支付流程 自动续期订阅 丢单处理 问题 流程详

    应用内支付 IAP支付流程 自动续期订阅 丢单处理 问题 流程详解 关于iOS的应用内支付(IAP), 我曾在项目...

  • 记录一下IAP内购的流程

    前段时间做了点内购的东西,记录一下内购流程,对于丢单的处理留到下一篇再记录,本次先不考虑丢单的情况。开发者中心设置...

  • 苹果内购(IAP)及掉单处理

    官方文档In-App Purchase 首先Xcode里的Capabilities中的In-App Purchas...

  • 苹果内购零丢单处理

    @[TOC](苹果能够的零丢单操作) # 文章的主要内容 你好!这是我发表的第一段关于苹果技术的博客,如果有说的不...

  • iOS 内购丢单处理策略

    漏单等情况预防与处理方案 1.漏单处理所谓的漏单就是玩家已经正常付费,却没有拿到该拿的道具。 解决:只要购买成功,...

  • iOS内购丢单处理流程

  • iOS 内购 IAP

    1. iOS内购IAP(一) —— 基础配置篇(一)2. iOS内购IAP(二) —— 工程实践(一)3. iOS...

  • ios内购IAP相关内容

    ios内购IAP相关内容 iOS IAP应用内购详细步骤和问题总结指南 - 简书https://www.jians...

  • IAP内购

    第一部分(填写协议、税务、银行相关信息) 第二部分(App内申请商品)

网友评论

      本文标题:IAP内购丢单处理

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