一.内购沙盒测试账号在支付成功後再次购买相同 ID 的物品,会提示如下内容的弹窗您以购买过此APP内购项目,此项目将免费恢复
您以购买过此APP内购项目此项目将免费恢複.PNG
当使用内购购买过商品后没有把这个交易事件关,所以当我们再次去购买商品后就会调用以前已经购买成功的交易事件去购买因为已经購买过才会有这个提示
defaultQueue] finishTransaction:transaction];方法通知苹果的支付队列该交易已经完成,否者就会调用已经购买成功的支付队列就会出现您以购买过此APP内购項目,此项目将免费恢复这句提示
2.在买次购买之前检测是否有未完成的交易如果有就关闭。
//检测是否有未完成的交易一般情况下是需要填的选项没有填写完整还有要填写完整不然审核内购项目可能会不通过。
三.iOS 内购 您已经购买了此项目您想免费再获取一次吗
这个是内購选择类型不匹配原因导致。
非消耗型就是消耗一次后在该appid下都能使用
消耗型比如一些直播平台的货币 使用完以后可以在充值。
我有这個问题是 最开始我们的项目是购买完产品以后可以永久使用后来修改成充值余额购买,但是我没有去修改类型才导致的这个错误
四.测試时记得把App Store上的账号注销,不然会出现购买失败注销账号后,在进行内购时登录沙盒测试账号
IOS在沙箱环境下购买成功之后,向苹果进荇二次验证确认用户是否购买成功。
当应用向Apple服务器请求购买成功之后,Apple会返回以下四个数据给应用
- Receipt:很长的一段字符串大概49行,作為二次验证的重要依据
- 交易标识符: transaction Identifier 我们需要把Receipt发送給苹果的苹果的服务器验证用户的购买信息是否真实
等待确认,儿童模式需要询问家長同意 |
receipt服务器当前不可用 |
receipt合法但是订阅已过期。服务器接收到这个状态码时receipt数据仍然会解码并一起发送 |