iOS内购——自动续订型会员
原文链接:https://blog.csdn.net/HMOnlyou/article/details/139446159
一、内购支付流程
用户选择商品,发起购买操作,支付完成(会从AppleID账号关联的支付宝/微信 /银行卡完成扣款);
拿到APP本地生成的票据信息发送到苹果服务器验证有效性。
1)APP端可以直接向苹果服务器发起验单请求
2)也可以通过自己服务器向苹果服务器发起验单请求。
安全起见,选择后者!
自己服务器验单步骤:
1)获取APP提供的票据信息和预支付订单ID
2)存储预订单ID和票据信息(以备验单失败,定时拿着验单失败的票据信息发起验单请求)
3)拿着票据信息发送到苹果服务器验证有效性
4)请求成功,获取json中的transaction_id信息,查验该transaction_id是否已存在关联的订单信息。
不存在,则发放相关会员权益,将订单信息关联transaction_id并存储,移除步骤2)中存储的票据信息
已存在,则提示该订单已存在,并移除步骤2)中存储的票据信息
5)请求失败
状态码为21007、21008,则去对应的环境进行票据验证;
其他状态码,(可增加失败重试机制,超过重试次数上限)则提示验单失败!
6)请求响应超时,(可增加失败重试机制,超过重试次数上限)则提示验单失败!
预订单ID:是自己服务器的生成的,关联了商品的唯一标识ID、内购商品的ProductID、商品价格等信息
二、创建自动续订会员商品
三、生成APP专用共享密钥+配置服务器通知(V2版本)
选择版本2
版本 2涵盖更多客户生命周期活动,包括订阅项目过期、兑换优惠、退款等
1. 后台开发人员提供服务器通知URL,用于接收苹果服务器发送的续订,退订,升级,降级等通知,便于服务器更新用户相关的会员权益!
2. 提供APP专用共享密钥给后台开发人员,因为自动续订型商品的验单请求必须携带该**共享密钥**
参数,才能验单成功!
四、添加沙盒账号,方便测试
进入苹果应用商店后台进行添加
沙盒账号要求:
1.填写未注册过AppleID的邮箱地址,可以是不存在的邮箱地址!
2.密码包含大小写字母、数字不少于8位的字符,例如Sandbox123
特殊需求
订阅将在续期 12 次后自动取消。
调整订阅项目续期率——多长时间续订一次。
默认续期率如下图所示:
英文:
翻译后:
订阅时长 | 续订间隔时长 |
1 周 | 3 分钟 |
1个月 | 5 分钟 |
2 个月 | 10 分钟 |
3 个月 | 15 分钟 |
6 个月 | 30 分钟 |
1 年 | 1 小时 |
用户管理订阅项目
在非沙盒账号的情况下,项目中可以设置为打开此 URL 启动iTunes 或 iTunes Store 并显示“管理订阅”页面。
https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/manageSubscriptions
五、自动订阅会员说明(自动续费声明) 和 自动续订会员服务协议(会员服务协议)
APP的会员购买页面需要添加自动续费声明
,如下
提交审核时,应用描述中也要在以上说明的基础上添加会员服务协议
的链接地址,例如下图:
原文链接:https://blog.csdn.net/HMOnlyou/article/details/139446159