iOS审核3.1、2.1内购相关问题整理

4,528 阅读8分钟

Create by lexin 2020/09/01

前言:

  • 本文主要记录一些我司在审核阶段遇到的内购相关被拒问题,希望大家看完能够少踩一些坑,同时也警醒自己不要重复踩进同一个坑两次,毕竟近期苹果对开发者账号的审查进入了丧心病狂的地步,大有一种宁杀错毋放过的架势,动不动就给你长时间调查,主动去问就给你封号警告,少一次被拒,就少一次封号危险。

内购限制

内购范围:在App内需要付费使用的产品功能或虚拟商品、服务,如游戏道具、电子书、音乐、视频、订阅会员、App的高级功能等。App内购买实体商品不适用IAP,不在App内使用的虚拟商品或服务也不适用IAP。

限制:苹果规定,适用范围内的虚拟商品或服务,必须使用IAP购买支付,不允许使用支付宝、微信支付等其它支付方式(包括Apple Pay),也不允许以任何方式(包括跳出App、提示文案等)引导用户通过应用外部渠道购买。

情况①:应用内的付费功能符合苹果内购范围,但没有只使用IAP购买支付
情况②:应用内包含提示文案、跳转链接等方式引导用户通过应用外部渠道购买符合内购范围的功能或内容
  • 根据苹果对内购的限制上,这两种情况是没有回旋余地的,一旦被苹果发现就会被拒,收到3.1.1大礼包,坚持不只走内购的话,只能在审核时候隐藏相关内容,但谁也保证不了会不会被苹果发现,收到2.3.1隐藏功能大礼包
情况③:某个功能是用户在App内购买的,但该功能需要与实体商品结合起来使用
  • 这种情况我们可以选择将该应用内购买内容包装成免费产品,跟苹果解释说该功能的付费点是在实体商品上,从而绕过内购,正大光明的去走第三方支付

付费项目购买类型不正确

被拒原文示例


Guideline 3.1.1-Payments-Payments-In-App Purchase

We noticed that your in-app purchase product is set to an incorrect product type.

Next Steps Based on product functionality, please use the non consumable in-app purchase product type. Non- consumable products are only purchased once by users and are always available on all devices that are associated with that user's App Store account.
  • 付费项目可购买类型分为如下四种: 产品类型
情况:应用内的购买项目在itunes connect后台创建商品时,需要选择上述4种购买类型中的一种,当审核人员在审核应用的时候,他们会主观去判断该购买项目是否适用于该购买类型,如果审核人员觉得不适合,就会被3.1.1条款打回,打回邮件内会给出审核人员建议的购买类型。
  • 坑点:这里面存在一个坑,我司亲身经历,遇到这种审核打回时,我们按照苹果的建议更换了购买类型,重新打包提审,结果这次的审核人员反而认为修改后的购买类型不合适,反而建议我们使用原本选择的购买类型,白费一番功夫又绕回了原点,审核人员主观判断就是任性。

  • 处理方法:遇到这种情况的时候,可以先尝试回复苹果,围绕功能解释选择该购买类型的原因,尝试说服苹果先,我司尝试过,还是可以说服的,实在说服不了了再去按照审核人员给出的建议去修改,避免白费功夫。


审核人员找不到付费点

情况:明明你已经将付费板块入口放在了特别显眼的位置了,轻轻一点,就能找到付费点的存在。但是你还是有可能遇到审核人员以找不到付费点的理由将你打回,瞎到你怀疑审核人员是不是眼里只能看到你想要隐藏的功能,正常的功能他永远看不见
  • 处理方法:遇到这种情况,只要录制一个操作视频,手把手教审核人员找到付费点,在苹果后台回复给苹果看,就能解决。为了避免审核人员突然眼瞎,每次增加新的付费点的时候, 最好先录制好操作视频,与应用一起提交上去,避免审核人员习惯性眼瞎。

服务器收据验证失败

被拒原文示例:

Guideline 2.1 - Performance - App Completeness
We found that your in-app purchase products exhibited one or more bugs when reviewed on iPad running iOS 13.3.1 on Wi-Fi.

Specifically, an error message displayed when we tried to make a purchase using IAP.
Next Steps
When validating receipts on your server, your server needs to be able to handle a production-signed app getting its receipts from Apple’s test environment. The recommended approach is for your production server to always validate receipts against the production App Store first. If validation fails with the error code "Sandbox receipt used in production," you should validate against the test environment instead.
Resources
You can learn more about testing in-app purchase products in your development sandbox environment in App Store Connect Developer Help.
For more information on receipt validation, please see What url should I use to verify my receipt? in the In-App Purchase FAQ.
Learn how to generate a receipt validation code in App Store Connect Developer Help.
Please see attached screenshot for details.
  • 处理方式: 出现这种情况,一般是后端在验证服务器上的收据时,没有处理好,应该让我们的生产服务器始终首先根据生产应用程序商店验证收据。如果验证失败,错误代码为“Sandbox receipt used in production”,则针对测试环境进行验证。

  • 坑点:我司遇到过一次特殊情况,审核时购买失败了,审核人员用上述原文打回了,一开始我们也以为是不是后端没处理好,后面通过我们内部自己验证,排除了是后端问题,怀疑是审核人员使用的WiFi自己连接不到他们自家的苹果服务器,就直接回复邮件让审核人员重新尝试,最后还是购买失败,原路打回。既然改变不了这个审核人员去切换其他网络,那我们就想办法换个审核人员,所以我们什么都没改动,通过重新打包提审,达到了换审核人员的目的,这一次直接顺利通过审核了,证实了确实是前一个审核人员WiFi不给力。


订阅付费点没有配备订阅协议、相关说明文字

  • 被拒原因:订阅付费点,没有在支付页面上加上订阅协议和相关文字说明。

  • 处理方式:如图,在支付页面写明写明付款、续费和取消续费的操作,不能使用跳转页面的方式展示;会员服务协议和自动续费协议也需要有,但是可以使用跳转页面的方式。在App Store Connect提交版本页面中的【描述】中,也需要加入自动续费的相关说明。 订阅相关说明


需要提供恢复购买功能

  • 被拒原文示例
Guideline 3.1.1 - Business - Payments - In-App Purchase

We found that your app offers in-app purchases that can be restored but does not include a "Restore Purchases" feature to allow users to restore the previously purchased in-app purchases, as specified in the "Restoring Purchase Products" section of the In-App Purchase Programming Guide:

"Users restore transactions to maintain access to content they've already purchased. For example, when they upgrade to a new phone, they don't lose all of the items they purchased on the old phone. Include some mechanism in your app to let the user restore their purchases, such as a Restore Purchases button."
To restore previously purchased in-app purchase products, it would be appropriate to provide a "Restore" button and initiate the restore process when the "Restore" button is tapped by the user.
  • 除消耗类型的付费点以外,其他三项付费点,苹果要求提供恢复购买的入口,让用户可以使用“恢复购买”功能保持对已购买内容的访问。例如,当他们升级到新手机时,他们不会丢失在旧手机上购买的所有商品。而且最好是把该入口放到显眼一点的位置,有时候审核人员没有看到的话,也会被打回。

刻意引导某个订阅付费点

刻意引导订阅付费点

  • 被拒原因:订阅付费点提供了免费试用优惠,在支付界面的时候,主要凸显了免费试用按钮,弱化了实际价格的显示,在审核人员看来,这是误导或混淆用户的行为

  • 处理方式:将实际价格设置为支付页面最凸显的元素,将免费试用和计算定价信息放到次要位置

最后

  • 附上同事整理的我司对审核的尝试 《iOS审核那些事》
  • 若大家在审核上也遇到类似的问题或者对审核有一些独到的见解,欢迎进群共同交流~ 微信交流群