Google Play支付更新了!

2019的Google I/O大会带来了很多Android相关的新功能,其中也包括Google Play支付的重大更新。这里先整理出相关更新点,后续米大师会针对新功能出版本优化接入,已接入米大师Google Play支付渠道的公司业务可先关注变更。

传送门:

What's New with Google Play Billing (Google I/O'19)

Use the Google Play Billing Library

Google Play Billing Library更新

背景

Google目前提供了两种集成Google Play支付的方式,AIDL和Google Play Billing Library,其中:

1. AIDL

开发自己封装Google提供的AIDL接口,支付操作通过AIDL与Google Play Store交互解决。目前米大师采用的是这种方式,特点是:定制度高,可自己实现线程和安全特性封装,当然Google也提供了IabHelper的范例,但同样存在新功能难更新问题。

2. Google Play Billing Library

子17年6月份开始,Google对外提供了Google Play Billing Library的Maven库,该库在原有的AIDL接口上再封装了一层,对外提供统一的接口,解决了一些大家吐槽的问题。简直是开发者的福音,然而并没有。。。

该Library存在的主要问题:

缺失developer payload字段

这是个透传字段,支付时外部传入,支付完成后在支付票据中带回。该字段很重要,通过这个字段实现订单关联等逻辑。

Note:AIDL接口一直有该字段,但billing library封装时将该字段去掉了!这是大家吐槽的地方,也是很多开发不敢升级的理由。鉴于Google在论坛回复后续将在AIDL中移除这个字段,米大师也做了相关备案,这里略去不表。

更新点

回到正题,似乎Google也听到了广大开发者的吐槽,在新版的Google Play Billing Library 2.0中,解决了开发者一直关心的问题,终于可以痛快的开始升级了。

上图是Google Play Billing Library的更新点,一个个细看下。

1. Pending transactions

即暂停交易或延时付款,在东南亚一些国家,本地支付渠道有限,很多地方不支持信用卡支付,即不能实时完成线上交易。用户通过线下现金支付或银行转账等方式,完成交易。

Google Play支付更新了!_第1张图片

1、用户在应用内购买物品

2、Google Play弹框显示交易码,提示用户通过该交易码去线下商店支付。

3、用户现在支付完成,Google Play通知支付完成。

API实现

1、调用新增接口enablePendingPurchases(),支持pending transaction。

2、在应用初始化调用查询接口BillingClient.queryPurchases()查询未消耗票据,并在支付回调onPurchasedUpdated中接收支付票据。

3、处理票据:处理票据的不同支付状态

Google Play支付更新了!_第2张图片

2. New purchase surfaces

新版Google play store支持应用外购买订阅。当应用有订阅物品时,应用下载界面会展示订阅信息,并提供购买界面。

Google Play支付更新了!_第3张图片

待验证:通过应用外购买订阅,在进入应用时,应该可以通过BillingClient.queryPurchases()接口查到新支付票据。

3. Acknowledge all purchase

新版Google Play Billing Library要求,开发者在用户支付完成、并发货给用户后,通过acknowledge api尽快告诉google:用户已经支付成功,并收到支付的物品了。否则:如果google在三天内没有收到acknowledge通知,会自动退款给用户,并撤销这笔交易!(该规则只适用于支付成功的交易,即票据状态为:SUCCESS

发送确认通知的3中方式:

可消耗物品,调用cosumeAsync()接口

不可消耗物品(如订阅),调用acknowledgePurchase()接口,订阅需要在产生新token时(初次购买、取消再购买等)都调用该接口。

也可通过后台接口发送:google play developer api:acknowledge

API实现

Google Play支付更新了!_第4张图片

 4. Consistent offers

Google Play Billing Library新增了两个接口:getOriginalPriceAmountMicros()和getOriginalPrice()。用于购买折扣物品时,查询物品原价的功能。

该功能还在测试,疑问的是:google play的折扣物品具体指的是啥?兑换码?配了入门价格的订阅?google也没明确说明,还是等上线了再来细看。

5. Faster purchase experience

新版Billing Library通过缓存优化了支付弹窗的弹出时间,相较于老版弹窗弹出时间,新版Library能缩短一半,有利于提升Google Play支付转化率。

Google Play支付更新了!_第5张图片

6. Revamped developer payload

前面在背景介绍中,已经说过老版的Google Play Billing Library移除了developer payload字段,导致很多开发不敢升级的问题。惊喜的是,在新版Google Play Billing Library 2.0中,这个字段又开放了!

Google Play支付更新了!_第6张图片

但是,设置的透传字段的方式跟之前AIDL不一样了!

老的AIDL接口,是在支付的时候传入payload,支付完成后在票据中返回该payload。

新Billing Library是在向google发送Acknowledge通知时设置payload,后续可通过票据获取该payload。

按前面理解,新Billing Library只能在支付后,并向用户发货后才能设置payload!那如果首次发货失败,payload没设置,后续用户变化了openid,一样存在票据关联错了openid的问题。

API实现

Google Play支付更新了!_第7张图片

7. Improved error codes

新Library优化统一了各接口的结果码,目前没看到相关文档说明,后续补上。

8. Predictable Release & Support

即google规范了billing library的发布方式,以及AIDL的过期时间。

后续每年的google的I/O大会,都会发布google play billing library的主版本。

google play billing library将成为官方支持的支付接入方式,老的AIDL方式将被废弃。

下图是Google Play Billing Library版本变更时间,以及AIDL方式废弃时间。

Google Play支付更新了!_第8张图片

Subscription更新

 订阅正逐渐成为海外收入的主要来源,google针对订阅带来的更新有:

1. Subscribe & Install

即前面提到的New purchase surface功能,google play store在下载应用页提供了购买订阅的ui。

2. Promotion codes

订阅支持兑换码功能,之前google play兑换码只支持兑换普通物品。

Google Play支付更新了!_第9张图片

3. Subscription Pause

订阅暂停。用户可以在google play store上管理订阅时,选择是否暂停当前订阅。之前老的管理方式,只支持取消订阅,通过新增暂停订阅入口,可以让用户在取消订阅前选择是否暂停。

订阅暂停期间,用户不能访问订阅。

订阅暂停快结束时,google会尝试恢复订阅,即尝试扣款。扣款成功,订阅恢复;扣款失败,订阅进入账户保留期。

下图是订阅暂停并进入账户保留期:

Google Play支付更新了!_第10张图片

下图是订阅暂停后恢复:

Google Play支付更新了!_第11张图片

需要先在google play console开启订阅暂停功能选项:

Google Play支付更新了!_第12张图片

参考:Google Play Billing Subsription

4. Cancel survey reports on Console

在google play console上,新增查看应用订阅取消原因报告。路径:财务报告->订阅

5. Longer Grace Periods

更长的订阅宽限期。之前只支持3天和7天的订阅宽限期,先新增14天和30天的订阅宽限期。

你可能感兴趣的:(Google Play支付更新了!)