美文网首页
关于自动订阅(auto renewal)

关于自动订阅(auto renewal)

作者: Harry_Coding | 来源:发表于2019-06-03 17:07 被阅读0次

    关于内购项目的基本配置,在此就不啰嗦了,需要注意的是我们配置内购项目的时候,选择类型为“自动续期订阅”即可。具体的内购项目的配置在这里

    本篇文章主要记录代码实现自动续期订阅与普通内购的区别,以及上架的注意事项 !

    1. 代码实现区别

    1> 需要在app启动的时候添加观察者到支付队列,因为续期订阅之后的凭证都是无交互,应用启动的时候下发。

    - (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
      [[SKPaymentQueue defaultQueue] addTransactionObserver:self];
    }
    

    建议设置一个支付管理类,此类为单例,去监听管理内购。
    2> 建议应该有一个重发的机制。
    防止一些网络原因造成验证失败、丢单,设置一个凭据管理类(负责凭据的存储和删除)。当服务器验证某个凭证成功之后删除这个凭证,当验证失败之后保留凭证,启动时再次上传凭证验证。(这里的成功是指的服务器已经验证了,并且可以删除的凭证,而非只有验证成功的凭证,比如重复订单等...)

    代码上处理与普通的内购没有很大的区别。

    2. 关于自动订阅服务端

    1> 关于验证
    服务端验证基本姿势不变,但是传参有些变化,除了receiptData之外,还需要一同上传“共享秘钥”。
    如果您有多个App,可以使用主共享秘钥,也可以自己单独生成app专用秘钥。具体的位置下图标出:

    这里可以生成主共享秘钥(所有账号下app共用) 这里可以生成app专用
    2> 苹果提供了端到端的异步通知服务
    statusUpdateNotification, 我们需要提供一个https的接口,添加到App connect 中app Store信息中的“订阅状态url”。
    apple 会给我们返回5中状态
    如下图:
    订阅状态返回状态表
    具体官方文档:点击这里
    注意:1.沙盒环境中不会无法模拟取消订阅的操作,所以并无“cancel”的状态。2. 自动续期订阅的产品凭证中会返回一个“original-transaction-id”首次订阅我们可以用这个id和用户关联,以确保每次订阅正确订阅。

    下面附上沙盒凭证具体字段(凭证中的purchase-info 可以用base64解码获得):


    凭证中的具体字段

    3. 自动续期订阅测试注意事项

    1>我们需要注意,利用沙盒测试自动续期订阅的产品,相关的时间都会缩短方便测试。


    沙盒测试时限

    官方文档点击这里
    2> 由于apple 测试服务器不稳定,所以有可能下发凭证不及时,或者偶然会下发50条以上的凭证,需要注意避免上传机制。尽量使用新账号测试。

    4. 自动续期订阅上架注意

    1> 需要在app内部订阅的位置、appStore说明出添加“自动续费说明”,否则审核被拒。


    喜马拉雅
    喜马拉雅appstore描述

    2> 需要在app内部订阅的位置、appStore说明出添加"会员服务协议"、“自动续费协议”、“隐私协议”。并且app内部协议交互性明显(也就是用户一看就知道可点击),否则也会被拒。

    相关被拒原因:
    We noticed that your app and its metadata
    did not fully meet the terms and conditions for auto-renewing subscriptions, as specified in Schedule 2, section 3.8(b) of the Paid Applications agreement...

    3> 订阅总价尽量明显, 明显度要高于其他细分价格,否则会拒绝。价格造成用户困惑😪

    还是跟进中....

    相关文章

      网友评论

          本文标题:关于自动订阅(auto renewal)

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