在传统手游开发中免不了和苹果支付打交道,而且苹果也会有各种奇奇怪怪的问题和BUG 。
曾经有一次某一个游戏出现了调单问题,现象如下(我有点懒,不想画泳道图或者时序图):
客户端拉起支付付款成功,OC底层收到支付成功回调->发送支付成功的收据到服务器验证->服务器去苹果服务器验证收据超时了->返回给客户端验证失败了->客户端重启走恢复购买流程->从苹果拿到的可恢复购买项是空的->无法恢复购买。
某一个合作过的客户端大佬很认真的说,你们服务器有问题,苹果那么NB的服务器,怎么会验证超时呢?人家某某某游戏都没有这种情况,我笑而答道:“只要涉及到网络连接和传输,你能百分之百确定是可靠的吗?那你知道http在传输之前和传输过程中发生了什么事情吗?”,客户端大佬一时间支支吾吾,还是有点怀疑,后来我让他知道贸然怀疑别人而且出口就不负责任的把锅甩给别人不是那么好甩的。
首先,很明显客户端的处理流程上是有问题的,那么为什么第二次拿到的可恢复购买项是空的,最直接的还是去苹果官方文档和论坛里找方法和结论,
他们的收据也有可能会出现无效的或者丢失,
你可以查看苹果官网开发者文档说明: