关于内购的那些坑

作者: 乔兰伊雪 | 来源:发表于2017-07-24 17:03 被阅读604次

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

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

iOS内购你看我就够了(埋坑篇)

iOS-iOS内购流程(手把手图文教程)

iOS开发内购全套图文教程

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

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

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

写上就不报错 不写+86报错

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

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

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

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

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

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

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

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

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

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

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

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

总结

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

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

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

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

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

6、游客身份解决方案:

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

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

相关文章

  • 内购

    关于内购的那些坑

  • 关于内购的那些坑

    最近做的一款项目用到了苹果内购,此前并没有做过相关功能,所以我当时的心情是拒绝的(内购那么多坑,吓死宝宝了),毕竟...

  • 苹果内购In-app purchase

    关于苹果内购(IAP)的一些问题以及那些坑: 最近在研究苹果内购功能,所以,在网上找了一些资料,进行学习。但是,内...

  • iOS-内购

    前言:关于iOS内购,参考两篇博文 iOS-iOS内购流程(手把手图文教程)iOS内购你看我就够了(埋坑篇) 我自...

  • 关于iOS内购的坑

    现在我的工作重点转向python方向了,但是还会做一些与iOS相关的开发内容。 之前一直做应用开发而且大部分都是工...

  • iOS内购从放弃到上架

    iOS内购方面的坑

  • 关于内购那些事

    网上关于如何集成内购的文章有很多,我用的是IAPHelper这个框架,用起来非常的简单,集成的问题就不说了,怎么创...

  • 关于iap内购遇见的坑

    1.请求苹果购买信息时候调用了- (void)productsRequest:(SKProductsRequest...

  • applePay

    # iOS应用内支付(内购)的个人开发过程及坑!

  • iOS关于内购那些事

    在开发中我们会遇到应用内购买的场景,特别是一些虚拟物品的购买,就要用到内购. 一 什么时候需要用到内购? 大家都知...

网友评论

  • Lonely__M:你好,请教下,如果用户登录后将游客模式的权益转移到正式账号上,那么如果此时用户退出登录(此时为游客模式),用户还享有之前的权益吗?
    Lonely__M:@乔兰伊雪 好的,谢谢回答
    乔兰伊雪:权益转让到正式账户了,就清除本地信息了,权益只能存在一个地方,他再退出就没权益了,只能登录才有
  • zrasd:你好,我的内购产品没有提交审核,我本地的工程请求不到产品信息。是怎么回事啊
    zrasd:@乔兰伊雪 好的,谢谢了
    乔兰伊雪:提交内购产品,变成正在等待审核试试,产品列表是从服务器获取的。产品id要跟创建内购产品时候的id保持一致,当用户点击购买某一个产品的时候,拿服务器给的产品id去找苹果验证,如果id一致是能拿到的,具体怎么验证按照文中那几个链接里面的教程试试
  • 3fdb581ec682:大神,请教一下,那个内购的话,被苹果拒绝3次了,必须的加游客模式,但是我们的项目做的是账号登陆后购买付费资源,自己有一个虚拟账户,通过内购充值,怎么可以避开游客模式
    乔兰伊雪:@南海一页扁舟 登陆后充值或者购买是在iOS 设备通用,充值和购买都需要你们后台生成订单存在服务器,换了设备登录后这些信息是从服务器拉下来的,跟设备无关,如果是游客就只能在本机
    3fdb581ec682:@乔兰伊雪 再问个问题,就是充值的金额通过内购,如果是游客模式的话,在当前苹果设备可以使用,在其他苹果设备可以使用吗?谢谢
    乔兰伊雪:@南海一页扁舟 避开不了,加上游客模式,否则永远不过,按照我文中说的那种方式做游客登录即可
  • a浮生若梦a:你好,我现在有一个问题,苹果填写内购产品,最多6个吗?我在添加的时候,显示已储存,但是返回列表后还是没有添加的那条数据,请问这是苹果什么原因吗,
    乔兰伊雪:@a浮生若梦a 不好意思啊,最近忙着项目上线忘了回复你,我这边是可以添加好多内购买项目的,不止6个
    a浮生若梦a:@乔兰伊雪 好的,谢谢:pray:
    乔兰伊雪:我明天给你看看

本文标题:关于内购的那些坑

本文链接:https://www.haomeiwen.com/subject/ltybkxtx.html