第一次接入内购,懵逼到家了,什么都可能有疑问,记载下问点以及解答。

IAP相关疑问点:

1、首先恳求账号,然后开通付款协议

2、生成证书,勾选内购,对应的XCode也要设置打开内购。

3、创立内购产品,该填写的信息都填好,如果报:元数据缺失,就是还有信息没填完好。都按要求填好,保存,直到变成「预备提交」状态。

4、添加测验内购产品,等到产品变成「预备提交」即可进行测验了,不需要提交审阅,实际你也不能单独提交测验产品审阅。 当然也就更不必提交APP审阅了。 (IAP没接入,不完好,也没办法提审,提审也不会过。 这里苹果客服误导过我,说要先提交应用审阅,测验产品才能用)

5、添加沙盒测验账号, 随意填是邮箱地址就行,怎样简略怎样来吧,因为后面测验要输入账号,密码呢。

6、进行内购产品测验时分,测验机iPhone的账号不需要登录为你的沙盒测验Appleid的。 如果你调不起测验产品,就去看前面过程,是否完成了。

7、建议恳求的时分,传入的产品ID是你创立测验产品的ID,不是苹果自动映射的那个ID。

8、建议内购恳求后,如果能够调起IAP,会让你输入之前创立的沙盒测验Appleid,输入密码进行付出。

9、购买框会提示是在沙盒环境的,随意付出,横竖不出钱的。

10、沙盒地址和生产地址填写: 如果有自己服务器验签,要填自己后端服务器地址,Post接口。 沙盒测验时分,就填沙盒地址哇。 沙盒账号大区设置要对应,在哪个上架开通就挑选设置在哪个大区。

11、具体IAP过程:

A。获取产品ID,产品比较少,你能够直接本地获取内购产品ID。 你也能够让后端做好映射,恳求他们回来产品ID

B。获取到产品ID后,恳求后端创立预付出订单信息,记载后端回来订单信息,后续作为比对订单用。

C。拿到预订单信息后,建议IAP恳求,等付出成果回来。 回来信息后,发送订单数据给后端做二次校验, 最终的成果以后端回来为准。

D。记载最近最终一笔订单信息,防止特殊情况漏单。 在每次APP发动时分,获取记载订单去查询是否有未处理的订单,处理后删去信息。

遇到的问题:

测验产品一向报「没有供给APP内购买的相关信息。请稍后重试。 21102」这个过错,查资料说新APP才会,之前都不会。 基本能确定是Apple服务那儿的问题,各个开源SDK等也在收集等候成果, 而且就是11月20日前后,新包直接接入IAP呈现的。。

各种方案都试了,V1、V2单独/混合方案都试过了,与付出API版本没关系,而且xcode本地测验能够,沙盒与Apple服务器交互就报异常。
看样子只能先提交一个不带IAP的包试试了,很大概率就能够了,等我成果哈,现在在收拾不带IAP的占坑包。。。 看来上面4条里,苹果客服没有骗我,还得听Apple粑粑的啊。

能够调起付出,输入沙盒账号,能够付出成功,可是最终给回这么一个信息。21102, ErrorCode=3539 付出完报错: Error Domain=ASDServerErrorDomain Code=3539 "没有供给 App 内购买的相关信息。请稍后重试。" UserInfo={NSLocalizedDescription=没有供给 App 内购买的相关信息。请稍后重试。, AMSServerErrorCode=3539} 提示框:没有供给APP内购买的相关信息。请稍后重试。 21102

苹果内购IAP记载

问题参考链接:

developer.apple.com/forums/thre… Apple也不解决回复 ask.dcloud.net.cn/question/18… 网友支招

具体实现代码等后面弥补。

官方文档:

因为要支持最低iOS12体系,所以只能用V1版本。V2要iOS15体系以上。 V1 文档:original api for in APP Purchase developer.apple.com/cn/document…

V2 文档: in APP Purchase developer.apple.com/cn/document…

参考文章:

常见过错码

具体过程