php++内购续期订阅,关于自动订阅(auto renewal)

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

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

1. 代码实现区别

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

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {

[[SKPaymentQueue defaultQueue] addTransactionObserver:self];

}

建议设置一个支付管理类,此类为单例,去监听管理内购。

2> 建议应该有一个重发的机制。

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

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

2. 关于自动订阅服务端

1> 关于验证

服务端验证基本姿势不变,但是传参有些变化,除了receiptData之外,还需要一同上传“共享秘钥”。

如果您有多个App,可以使用主共享秘钥,也可以自己单独生成app专用秘钥。具体的位置下图标出:

ae391fbe6f76

这里可以生成主共享秘钥(所有账号下app共用)

ae391fbe6f76

这里可以生成app专用

2> 苹果提供了端到端的异步通知服务

statusUpdateNotification, 我们需要提供一个https的接口,添加到App connect 中app Store信息中的“订阅状态url”。

apple 会给我们返回5中状态

如下图:

ae391fbe6f76

订阅状态返回状态表

具体官方文档:点击这里

注意:1.沙盒环境中不会无法模拟取消订阅的操作,所以并无“cancel”的状态。2. 自动续期订阅的产品凭证中会返回一个“original-transaction-id”首次订阅我们可以用这个id和用户关联,以确保每次订阅正确订阅。

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

ae391fbe6f76

凭证中的具体字段

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

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

ae391fbe6f76

沙盒测试时限

官方文档点击这里

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

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

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

ae391fbe6f76

喜马拉雅

ae391fbe6f76

喜马拉雅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> 订阅总价尽量明显, 明显度要高于其他细分价格,否则会拒绝。价格造成用户困惑😪

还是跟进中....

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值