iOS收藏IOS

苹果订阅付费 app多账号订阅归属解决方案

2020-12-22  本文已影响0人  酥酥速速

iOS订阅开发相关

本章不讨论 iOS订阅开发,详细的自行参考大神的文章
iOS 自动订阅开发
从上面文章得知,苹果设计自动订阅的初衷是 ,订阅一个服务, 这个服务需要跟着 Apple ID走
但国内的应用关联的是App的User ID,而不是Apple ID,但文章只是简单的描述“App自身做处理,就是记住首次购买的transaction-id,并且绑定某个用户”。
那么同一个Apple ID, A UID已订阅, B UID 购买订阅,客户端需要做哪些处理,后端做哪些处理呢?
本章只讨论多账号订阅的归属问题,与前后端的处理

订阅receipt结构

receipt通过base64解码可得:

{ 
"signature" = "dfreree...."; //也是base64 
"purchase-info" = "ewoJIm9x....."; //也是base64,这个里面存放详细时间,流水号等 
"environment" = "Sandbox"; 
"pod" = "100"; 
"signing-status" = "0"; 
} 

“purchase-info”可以再次base64解码可得:

{ 
"original-purchase-date-pst" = "2017-08-29 23:52:45 America/Los_Angeles"; 
"purchase-date-ms" = "1504144439749"; 
"unique-identifier" = "a063c2c321dd885642a5cddd9160e0ad8291d978"; 
"original-transaction-id" = "1000000328915948"; 
"expires-date" = "1504144739749"; 
"transaction-id" = "1000000329310742"; 
"original-purchase-date-ms" = "1504075965000"; 
"web-order-line-item-id" = "1000000036091900"; 
"bvrs" = "1"; 
"unique-vendor-identifier" = "B78549AC-58D4-4750-8E6F-F4CCE6138A5A"; 
"expires-date-formatted-pst" = "2017-08-30 18:58:59 America/Los_Angeles"; 
"item-id" = "1276511095"; 
"expires-date-formatted" = "2017-08-31 01:58:59 Etc/GMT"; 
"product-id" = "lcm.denachina.pickle.38.1month"; 
"purchase-date" = "2017-08-31 01:53:59 Etc/GMT"; 
"original-purchase-date" = "2017-08-30 06:52:45 Etc/GMT"; 
"bid" = "com.denachina.pickle"; 
"purchase-date-pst" = "2017-08-30 18:53:59 America/Los_Angeles"; 
"quantity" = "1"; 
} 

其他参数都可以在官网上查看到,这里重点看”original-transaction-id“与”transaction-id“

苹果订阅升降级收费处理

现在假设 AppstoreConnect后台配置一个订阅
| product ID | 包月 | 包季 |
| —— | —— | —— |
| com.xx.autoVip | 10元 | 30元 |
同Apple ID情况下,未订阅的情况下

苹果这样的设计应该是为了收益最大化
知道苹果收费策略后,接下来多账号的就好办了

多账号归属

original-transaction-id 绑定到UserID上就可以了
订阅配置同上,同Apple ID情况下

运营策略

用户订阅进行升降级,对于项目是减少了订阅的,A用户换绑B用户,其实A的订阅是失去的,所以尽量减少让用户换绑操作,其实一些运营策略也可以减少换绑概率,从而提高订阅收入

上一篇下一篇

猜你喜欢

热点阅读