谷歌支付体系(仅适用GooglePlayBillingV4及其以下)

1,968 阅读8分钟

商品类型

一次性产品

  • 消耗品

是用户消费以接收应用内内容的产品。当用户消费该产品时,您的应用会分发相关内容,然后用户可以再次购买该产品。比如汽油,如果你加满了(购买了),不去跑几公里消耗一下(消耗掉),你的油箱是加不了油(无法再次购买)。

  • 非消耗性产品(暂时不考虑)

是仅购买一次以提供永久利益的产品。

注:目前在谷歌后台设置商品类型的时候只有subs、inapp两种类型,并无消耗、非消耗的类型区分。

订阅

是一种可定期访问内容的产品。订阅会自动续订,直到被取消。订阅的示例:VIP周卡、月卡、年卡。订阅的可设置时长

  • 按周
  • 4周
  • 1个月
  • 3 个月
  • 6 个月
  • 按年
  1. 生命周期

image.png 备注:订阅续存期为自定义名词,为了描述【取消订阅但订阅未过期】的状态。其他名词均为Google官方词汇。

  1. 优惠

为了吸引用户,可以给用户一些甜头。比如不要99,不要89,只要9.9抢先体验(体验价)。免费送、免费送,统统免费送(免费试用)。

体验价

让用户以低于正常订阅价格的价格去体验订阅的权利。正常办会员月卡99,开业大酬宾,只要9.9。

  • 初次体验期最短为 3 天,最长为 12 个月。
  • 初次体验价必须低于订阅的全价。(要是搞个优惠更贵了,谁买呀)
  • 对于每项订阅产品 (SKU),用户只能享受一次初次体验价。
一次性付款:前两个月,总共只需要9.9,第三个月99

谷歌后台示例截图:

周期性付款:前两个月,每个月9.9,持续两个月,第三个月99

谷歌后台示例截图:

免费试用:一定周期内免费让用户试用

谷歌后台示例截图:

注:如果您提供免费试用和初次体验价,那么当免费试用期结束后,系统将按初次体验价向您的用户收取费用。

image.png

  1. 促销代码

能够向有限数量的用户免费提供一次性产品或试用订阅,他是一串字符串。

  • 使用场景(包括但不仅限于)

    • 线下活动(推广),广发促销代码,吸引用户
    • 搞特殊:给员工福利,给员工发一些促销码可以兑换一些内购福利;给大V发一些专属的道具
  • 数量

    • 一次性商品:一个季度500个
    • 订阅:一个季度10,000个
  • 兑换方式

    • APP内:用户可以通过点击 Google Play 购买屏幕中付款方式旁边的向下箭头,然后点击“兑换”链接输入代码来发起购买。
    • 谷歌商店中:用户可以通过单击 Play 商店左侧导航菜单并点击 兑换 代码 在 Google Play 商店中手动输入“ 代码 ”。
  1. 升降级

可以为用户提供不同等级的权益。比如VIP卡(10块/月)、黄金VIP(20块/月)、铂金VIP(30块/月)、钻石VIP(60块/月)。从铂金VIP到钻石VIP,升级。从铂金VIP到黄金VIP,降级。默认升降级是立马就生效的,有几种模式可以选择。

按比例计费模式说明
IMMEDIATE_WITH_TIME_PRORATION订阅会立即升级或降级。任何剩余时间都会根据差价进行调整,并通过向前推下一个结算日期,将余额记入新订阅。这是默认行为。
IMMEDIATE_AND_CHARGE_PRORATED_PRICE订阅会立即升级,结算周期保持不变。用户随后需要补足剩余订阅期的差价。
IMMEDIATE_WITHOUT_PRORATION订阅会立即升级或降级,在订阅续订时将按新价格收取费用。结算周期保持不变。
DEFERRED只有在订阅续订时,订阅才会升级或降级。
IMMEDIATE_AND_CHARGE_FULL_PRICE订阅会立即升级或降级,并且系统会即刻按全价向您收取新订阅权利的费用。上一订阅的剩余费用会按如下方式处理:如果您订阅的是同一权利,则剩余费用会结转过来;如果您要切换到不同的订阅权利,则会按比例折算成时间加到新订阅的期限中。

例子:

升级:铂金VIP(30块/月)从1月1号开始订阅,到1月20号改为钻石VIP(60块/月),因为铂金VIP还剩下10天,折算余额为10块,钻石VIP每天:60/30=2块,余额/钻石每天:10/2 = 5,所以从25号(1月20号+5)开始就已经算为下一个周期,扣费60块

降级:铂金VIP(30块/月)从1月1号开始订阅,到1月10号改为VIP(10块/月),因为铂金VIP还剩下20天,折算余额为20块,刚好两个月,所以从3月11号才回开始扣账户的钱,就算在3月11号之前不续订了,VIP的周期也会持续到3月10号。

  1. 宽限期

比如当用户绑定的银行卡没钱了,给用户一些时间,让账单飞一会儿。对于新的订阅产品,系统将默认设置以下宽限期

  • 按周订阅:3 天
  • 按月订阅:7 天
  • 其他订阅周期:14 天

可以更改具体订阅的宽限期(3 天、7 天、14 天或 30 天)或停止提供宽限期。

谷歌后台示例截图:

  1. 账号保留

  • 当扣款失败且任何关联的宽限期都已结束而没有解决付款问题时,进入账号保留期。
  • 账号保留期间,用户失去订阅内容访问权限,若在此期间用户主动恢复付款,则会恢复续订。
  • 直到账号保留结束,都没有修正付款,则订阅终止。

暂时无法在文档外展示此内容

  1. 取消续订

  • 取消订阅后在当前订阅周期内仍有权访问订阅内容
  • 可在Google Play内相应订单点击“重新订阅”,恢复续订(应用内也支持此功能用于召回流失用户)
  • 当前订阅周期结束后,则失去订阅内容的访问权限
  1. 退款或撤消

  • 退款:退款后,用户可以继续使用订阅内容,且当前订阅周期结束后,仍会继续扣费续订。
  • 撤消:撤消后,用户会立即失去对订阅内容的访问权限,并取消订阅。
  1. 暂停订阅

  • 当前订阅周期结束后,暂停订阅才会生效,暂停期间用户失去订阅内容访问权限
  • 暂停期间,用户可手动恢复订阅,结算日期将更改为手动恢复日期
  • 暂停结束后,Google Play会自动恢复续订,结算日期从恢复续订时算起

image.png

停止续订退还款项撤消访问权限
取消
退款
撤消

购买令牌(purchaseToken)和订单 ID(orderId)

Google Play 使用购买令牌和订单 ID 跟踪商品和交易

  • 购买令牌是一个字符串,表示买家对 Google Play 上的商品的权利。它表明 Google 用户有权使用由 SKU 表示的特定商品。您可以将购买令牌与 Google Play Developer API 一起使用,需要去请求products.get(developers.google.com/android-pub…
  • 订单 ID 是一个字符串,表示 Google Play 上的财务交易。此字符串会包含在通过电子邮件发送给买家的收据中。您可以在销售和付款报告中使用订单 ID 来管理退款。

每当发生财务交易时,系统都会创建订单 ID。只有当用户完成购买流程时,系统才会生成购买令牌。

  • 对于一次性商品,每次购买交易都会创建一个新的购买令牌。大多数购买交易还会生成一个新的订单 ID。这条规则有一种例外情况,那就是不向用户收取任何费用时,如促销代码中所述。
  • 对于订阅,首次购买交易会创建一个购买令牌和一个订单 ID。对于每个连续的结算周期,购买令牌将保持不变,但系统会发放一个新的订单 ID。升级、降级、替换和重新注册都会创建新的购买令牌和订单 ID。

关于订阅,请注意以下几点:

  • 订阅升级、降级和其他订阅购买流程会生成购买令牌,这些令牌必须替换之前的购买令牌。您必须使出现在 Google Play Developer API 的 linkedPurchaseToken 字段中的购买令牌无效。如需了解详情,请参阅正确实现 linkedPurchaseToken 以防止重复订阅
  • 订阅续订的订单号包含一个额外的整数,它表示具体是第几次续订。例如,初始订阅的订单 ID 可能是 GPA.1234-5678-9012-34567,后续订单 ID 是 GPA.1234-5678-9012-34567..0(第一次续订)、GPA.1234-5678-9012-34567..1(第二次续订),依此类推。

常见的几种异常情况的处理

  1. ResponseCode = 5 or 3

  • 解决方案:这个一般都是网络问题,需要确认是已经翻墙的网络,需要自己去买个VPN翻墙。操作步骤:

    1. 找到:设置-应用程序-Google服务-缓存-清理;设置-应用程序-Google商店-缓存-清理;
    2. 连接VPN
    3. 重新打开APP

相关链接: