iOS内购实现及测试Check List 在内购使用中存在的几种丢单的情况 1.客户端获取到交易
来源:互联网 发布:打电话软件下载 编辑:程序博客网 时间:2024/05/21 18:41
源地址:http://www.aiuxian.com/article/p-1803307.html
在内购使用中存在的几种丢单的情况
1.客户端获取到交易回调后-(void) purchasedTransaction: (SKPaymentTransaction *)transaction 后在交易成功的情况下,要拿到
transactionReceipt凭证,给后台验证的时候用户推出。(用户已经付钱但商家还没给商品)
解决方法:在支付之前需要通过自己的服务器创建订单,在交易成功回调之后,立马将该订单和本次交易凭证存储到数据库中。在用户下次登录的时候,要首先验证该数据库中的交易凭证是否都经过后台验证过并成功给玩家商品。
2.这种情况是当交易回调有延时或者没有成功回调的时候,用户推出游戏。这个时候没有回调的transaction,无法将transactionReceipt和自己创建的订单绑定,也就是无法知道交易的用户。(感觉苹果这边有BUG,起码在交易对象中包含用户的数据)。这个时候,用户再下次登录的时候可以获取到transaction,但无法确定该交易的用户。
解决方法:在下次购买的时候,从购买队列中获取交易集合,对已经成功购买,但没下载的不需要重复购买,终止本地交易,将其存入已购买数据库中。
但还有一个问题,对于上次没有回调回来的交易,我们无法处理,以为虽然拿到了交易集合,但只凭借交易对象是无法知道用户信息的,也就无法充值。也就是说无法避免的丢单问题.................
找到解决办法了:ios7 苹果增加了一个属性applicationusername,SKMutablepayment的属性,所以用户在发起支付的时候可以指定用户的username及自己生成的订单,这样用户再下次得到回调的时候就知道,此交易是哪个订单发起的了进而完成交易。回调中获取username。
transaction.payment.applicationUsername(订单)将该属性连同transactionReceipt 传给后台做验证。完美解决问题 perfect
阅读全文
0 0
- iOS内购实现及测试Check List 在内购使用中存在的几种丢单的情况 1.客户端获取到交易
- iOS内购实现及测试Check List
- iOS内购实现及测试Check List
- iOS内购实现及测试Check List
- iOS内购实现及测试Check List
- iOS内购实现及测试Check List
- iOS内购实现及测试Check List
- 获取当前ios设备的内存使用情况,获取客户端ip地址
- 性能测试的 Check List (不断更新中)
- iOS内购实现及测试排查错误列表
- 由前端获取的字符串,多种情况,分割成数组保存到集合List中
- 获取iOS内存的使用情况
- 测试使用zookeeper的c客户端的情况
- 在内部类中如果要使用函数中定义的变量的情况
- iOS内购IAP及交易安全相关(以游戏道具购买为例)
- STL中list的使用及模拟实现
- 无线客户端发布前必须做的Check list
- iOS: 实现苹果的内购
- 代码存放细谈
- 小白博客
- 百度地图热力图转海量点炫酷特效带源码
- 获取字符串长度和字符串连接
- Apache Hadoop 3.0.0 GA版正式发布,可以部署到线上
- iOS内购实现及测试Check List 在内购使用中存在的几种丢单的情况 1.客户端获取到交易
- Unity UGUI实现可编辑下拉框(dropdown)
- Spring中ContextLoaderListener和DispatcherServlet的区别
- 主要空间数据挖掘方法
- oracle 解析soap报文XML报错
- Java Thread线程基础总结
- 说说ES6 Class里面的this对象
- Alpha,Beta,RC,GA版本解释
- 丢棋子问题