前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IAP的几个问题

IAP的几个问题

作者头像
meteoric
发布2018-11-19 18:01:34
1.5K0
发布2018-11-19 18:01:34
举报
文章被收录于专栏:游戏杂谈游戏杂谈

IAP是(In-APP Purchase),苹果商店内购。先来看看它的流程:

而实际运营过程中,经常会遇到这二个问题:

只要应用玩的人比较多,基本上都会遇到过此类问题,下面是来自搜索引擎的结果:

这种情况应该得到重视,对于用户而言实际上是钱已经消费掉了,但是元宝或者物品没有获得,这会让人很焦虑的。的确,作为一名开发人员,遇到这种情况,第一反映确实是苹果出了问题,流程(逻辑)上没有什么问题,但是在苹果自己处理的那些步骤里,它可能就出异常了,导致了上面的问题。而我们实际上应该有相应的解决方案,哪怕它并不“完美”,总比二手一摊什么事不做要强很多吧

“您已购买此APP内购买项目,此项目将免费恢复。”这个字面意思的确不好理解,“已购买”这三个字,个人推断是钱已经被苹果给扣掉了(点击这里可以查看一个例证>>)。但是并没有发货,订单已经创建而且钱也已经被扣,但在关闭订单的时候似乎遇到了异常。这个异常,我曾经这样测试过:

在同一wifi下,使用不同的二台设备,用同一个沙盒帐号、对同一款应用“同时”进行购买遇到过一次这个问题。

注:“同时” –>  指几乎同一时刻去点击商店来执行购买操作

得到的结果是,设备A购买物品M,与设备B购买物品之前没有关联,绝大多数情况下都能购买到物品。

“尚未下载”与“项目将免费恢复”其实有些类似,为什么呢?因为钱已经被扣掉了,不然不会提示“已购买”。

而我测试自己的应用,它的逻辑是收到SKPaymentTransactionStatePurchased状态后,通知后台发货,后台发货成功后返回客户端,客户端再将订单给关闭掉([[SKPaymentQueue defaultQueue] finishTransaction:transaction]; )。并不是收到苹果的响应后关闭订单,如果这样做会导致一个问题,玩家钱扣掉了,但是对应的商品始终未到帐,而且也无法恢复了(因为你调用了finish,将它从购买队列中删除了,后台苹果提供了[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];来进行恢复,但实际上这样做会比较复杂)。

而如果是苹果回调并返回SKPaymentTransactionStatePurchased状态,客户端在传给后台处理时出了问题了,而导致一至未调用finishTransaction方法关闭订单,这的确会出问题,但不应该是那种提示,如果有也应该是http响应内容的提示。不调用半单,再重启进游戏时,会进入补单流程,如果补单成功倒还好,如果失败,那么在该设备上将无法使用该Apple ID来购买该商品了(其它商品还是可以购买的),无论是你卸载应用再删除还是重启设备都没有用。唯一的办法就是先关单。

如果苹果IAP有一个超时的机制,上面所遇到的情况就能解释的通。这个超时,可能是手机客户端与苹果服务器通信的时长,因为遇到这类问题的时候,通常网络都较慢,而且这个提示绝不是某个应用的程序员写出来的(语句读起来都反人类)。

虽然说了这么多,依然还是没能把这个问题的前因后果原原本本讲清楚,尽管如此还是需要有一个解决方案来避免此类问题。我自己后来想到的一个方案是这样:

用户遇到这类问题肯定会找客服反馈,客服通过它提供的登录服务器id、角色名,来查找他的登录信息,从登录信息里再查找它的设备唯一标识,比如IDFA,然后在登录的时候给这个设备返回一个特殊的标记位(仅本次登录返回),如果满足条件,则执行“清单动作”,关闭所有未关闭的订单,让用户能继续消费。至于已经被苹果扣掉的钱,二种选择:

1、用户向苹果申诉,退款给他;

2、用户截取充值的记录,然后研发这边对比它的充值时的信息来甄别订单,对它进行补单操作;

参考链接:

ios内购(iap)关于问题“您已经购买了此程序内购买(In App Purchase)项目,但尚未下载"的解决方案

IAP有问题,提示你已经购买了此程序内购买项目,但尚未下载

[转]IAP 苹果官方文档翻译 超级详解

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-06-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档