向服务器请求OrderID,向ios发起内购时传递给payment:
SKMutablePayment *payment = [SKMutablePayment paymentWithProduct:product]; payment.applicationUsername = @"OrderID";
在付款成功时applicationUsername会被ios返回,取出orderid连同收据传给服务器。
问题就出在那个orderid上,不知道为什么总有用户的orderID为null,导致充值失败。
多方查找后确定原因如下:
通过公司渠道咨询了苹果的人员,得到的回应是:使用applicationUsername来存储订单号或者username等用法其实是一种错误的用法,这个参数其实是给苹果自己用的,用于识别出非法欺诈的内购,而不是给开发者使用(我特么晕死)。 目前线上发现上iOS13和以下还是有数据,但是预计后续的所有iOS版本这个值将不再可用。
原文链接:https://www.cnblogs.com/jxst441192/p/13711709.html
目前暂无替代方案。
另:App处于审核状态时,该测试版本无法进行内购操作是正常的,不必惊慌。
网友评论