苹果内购的坑

虽为转载,但就刚好是自己在爬的坑,特别感谢原作者!点击打开链接

最近做的一款项目用到了苹果内购,此前并没有做过相关功能,所以我当时的心情是拒绝的(内购那么多坑,吓死宝宝了),毕竟涉及到支付,涉及到钱还是要很慎重对待的。

于是,我在网上这一通搜索,查看别人的笔记,好在广大程序员们还是很有共享精神的(此处应有掌声,非常感谢),有的只记录了一些关键点,有些记录的非常全面,从填写内购协议到代码,以及过程中遇到的一些坑都图文并茂的写下来了,给大家提供下链接,拿走不谢:

www.jianshu.com/p/ecc4f53a83c8  

blog.csdn.net/u014220518/article/details/55253275

www.jianshu.com/p/86ac7d3b593a

根据这些教程终于磕磕绊绊的写完内购,提交审核的时候发现没有能选择APP内购买项目的地方,根据教程第一次提交包含内购的APP时要将所有内购买项目一起提交审核,审核过后再添加新的内购买项目就可以单独审核了。然后我就想是不是我的内购买项目创建的不对,我的内购买项目创建时有一些描述文字没填,保存后显示元数据丢失,百度一搜有人说数据填全了就好了,我就把每个内购买项目能填的地方都填了,保存后显示等待审核,这样APP提交审核的时候就可以选择内购买项目了。



第一次提交审核,过了两天,被打回来了,还附带几张截图,原因“我的钱包”充值页面不能包含任何解释内购的文字,比如跟用户解释为什么充值要使用内购,比如苹果公司对内购的一些规定,不能提现这些内容,修改后再次提交。

第二次打回来,说是找不到内购的地方,找不到APP需要用到后台播放音频的功能。我就将找到内购的详细流程回复给他们,还录了一段使用音频播放功能的视频。还说打我的电话打不通,让我提供另一个联系方式(提交审核的时候光写手机号会报错,手机号前面必须加上+86才行,但是加上+86后手机号就打不通了,这个有点坑),最后回复邮件的时候我写了两个手机号,一个加上+86的,一个不加的。


写上就不报错

不写+86报错

过了大概几个小时,苹果那边给我打电话,让我协助她审核我的APP,我教她一步步找到登陆的地方,然后充值,购买音频,播放。

整个流程都跑通了,她说充值页面不需要再多一个“确定支付”的按钮,用户选择了某一个内购项目,就代表他确定要买了。

我点头,好,我一会就改。

然后又问我为什么限时免费的音频和内购一定要登录才可以使用。

我说要登录了我们才能知道是谁充值了,该给谁的账户充钱呀,至于限时免费的音频我们需要统计播放人数以及其他的一些行为。

她就跟我强调既然是免费的,就得允许用户不登陆就可以享受到,还有内购也必须可以不登陆购买,将购买信息保存在本地就行。

我说万一用户换手机了,充值数据都在原来手机上,他在新手机上不就不能用这些钱了么?

她说你怎么知道用户会换手机,万一不换呢?

我俩又讨论了一阵,最后她说咱们现在讨论这个没有意义,我也不是要告诉你为什么要这样,而是跟你说我们有这个规定,用户必须不登陆就可以使用内购,你可以诱导用户登录后再购买,但不可以强制用户去登陆(好霸气,我竟无言以对,谁让我没好好看苹果规定呢)。

后来我们把充值功能改成购买会员,然后特意查看了其他的一些购买会员的APP,他们都有游客购买的方式,购买会员后就可以拥有会员的所有权限,不过游客不能发表评论点赞这些操作,当用户登录后会提示用户"当前设备已开通VIP,是否与此账号绑定?",用户点击绑定就可以将保存在本地的购买信息跟实际账户绑定。

第三次提交又被打回来,说是不支持IPV6,获取不到信息(此时我的心中真是一万个xxx奔腾而过啊,上次电话沟通的时候我明明一步步教她登陆,购买成功了,我还从电话里听到她播放我们音频的声音了,明明是没问题的啊,这是闹哪样)。没办法,我撤回审核,又打包提交了一次,万幸,审核过了。

所以啊,有时候因为IPV6被拒,不一定就是我们不支持,有可能是审核那边的网抽疯了,多提交几次就好了。

总结

1、创建内购买项目时,如果有某些地方没填,保存后会显示“元数据丢失”,这种状态的内购买项目是无法提交审核的,需要把内购买项目的每一个可填的地方都填写清楚,都填写完保存后会显示“准备提交审核”

2、充值或者有内购的地方不允许有苹果内购相关规定的提示语

3、内购项目必须点击即可购买,无需点之后再确认购买

4、内购买项目不允许强制用户登录注册后再购买,可以用游客身份购买

5、所有免费的东西都要允许用户在未登录状态下播放观看

6、游客身份解决方案:

1)服务器端做一个苹果审核机制,审核期间游客身份可以进行一切行为,一旦审核通过,修改服务端即可达到强制用户登录进行内购买的目的(这个有点。。。)

2)游客可以进行内购买,购买时以设备UUID为准,生成一个游客账号,将购买信息保存在服务器和本地,当用户登录正式账户后判断此设备是否进行过内购,有的话提示用户将游客身份购买的权益与现有账号绑定,如果绑定,游客权益则迁移到正式账户,如果不迁移,则游客身份和正是账户是两个独立账户,正式账户不享有游客身份的权益(我用的这个)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
uniapp可以通过使用uni-pay插件来实现苹果内购功能。首先,您需要从插件市场导入uni-pay示例项目,并确保示例项目能够成功运行。这样可以确保您的配置和证书是正确的。然后,您可以将uni-pay集成到您自己的项目中。 在接入自己的项目之前,您需要注册iOS开发者账号并支付年费。还需要在iOS开发者平台上添加内购商品并获取商品ID。在进行iOS沙箱测试时,您需要先在iOS开发者平台上添加沙箱测试账号,并在测试手机上登录该沙箱账号。 需要注意的是,目前uniapp的热刷新会导致iOS支付无法正常调用。因此,每次修改代码后,需要先关闭手机App,然后重启uniapp项目,再打开手机App。这个问题将会在后续版本中修复。 在成功获取到产品ID后,您可以将其填入代码中进行配置。然后,可以选择自定义基座的方式来运行测试。 如果苹果内购的支付弹窗没有出现,在控制台报错了,可能是由于iOS内购支付漏单重试时请求服务端回调出错。您可以先将其注释掉。如果还有其他报错,可以查看控制台提示或手机弹窗并进行相应的修改。常见的报错可能包括配置回调URL、拼接URL等。 运行成功后,弹出内购界面时,您可以使用注册的沙箱账号进行支付测试。需要注意的是,同一个产品ID的沙箱账号只能购买一次,如果需要再次测试,需要清除历史购买记录。 以上是关于uniapp苹果内购的相关信息和步骤。希望对您有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [uniapp实现iOS支付苹果内购支付踩过的以及具体操作步骤](https://blog.csdn.net/weixin_43449246/article/details/128559142)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值