大话Google Play

什么是Google Play?

受国内政策影响,大部分android用户是没有接触过google play的。Google Play是什么呢?是下载应用的Google Play Store?是必须安装的Google Play服务框架?还是在Store中买物品时的Google Play支付。我更乐意将Google Play划分为以下几个部分:

Google Play Store

Google Play Services

Google Play支付

Google Play Server

Google Play Store


Google Play Store

提供了应用下载,类似与应用宝。提供的应用分为付费/免费应用,付费应用指支持google play应用内购买的应用。

Google Play Services

Google Play Services提供了google play支持服务,如google账户服务等。

Google Play支付

Google Play支付,其作用类似于微信支付或qq钱包,是本文介绍的重点。当用户在google play store下载某个付费应用,并进行购买时,实际的购买是通过google play支付完成。

Google Play Server

Google Play的服务端,提供支付订单管理、票据验证等各种操作。

《大话Google Play》

如何测试Google Play支付?

小A开发了某款应用,该应用具有应用内购买功能(用户能在应用内进行购买,如在游戏中购买钻石游戏币)。小A现在需要将该应用发布到Google Play Store中,发布前希望能测试该应用的购买功能。Google Play提供了免费测试购买功能,即测试用户可以免费购买应用内物品。

该测试需要在Google Play Console中进行配置

Google Play应用内购买

什么是应用内购买?

简单来说,就是用户能在应用内购买物品,如用户能在王者荣耀中买游戏币买钻石等。

Google Play提供了应用内购买的能力,说人话就是:用户可以通过Google Play支付来完成应用内物品的购买。

回到小A发布应用的例子上,先回答几个问题:

1. 小A为什么要发布应用到Googel Play Store呢?

答:推广应用,提高下载量,赚钱。

2. 应用发布到Google Play Store有什么要求呢?

答:这么说吧,发布到Google Play Store的应用如果具有应用内购买功能的话,Google要求一定要用Google Play支付。为什么呢?Google 要分成,分30%。那Google当然得知道每个应用的账单流水了,要不然怎么计算这30%。

那Google Play应用内购买是怎么玩的呢?

ps: 为防讲的不清楚,先贴个官方版:google play应用内购买

先举个例子:深圳有很多大商场,如天虹,天虹中有各种品牌的店面,如adidas,nike。5号小B发工资了,带着妹子来逛天虹,想给妹子买双运动鞋。逛了一大圈后,决定在nike店里买鞋x。服务员给小B开了单子,叫他出门左拐去收银台付款;小B拿着单在收银台付钱后,收银员给小B一个付钱后的票据;小B拿着票据,回到nike店,取回买好的鞋子。

上面例子中,可类比成:

《大话Google Play》

小B买鞋的例子涉及到几个概念:

物品

下单

支付

票据

发货


物品

国外都是物品概念,这就话怎么理解呢?

即一个物品对应一个物品Id,用户一次只能购买一个物品。

假设某游戏存在游戏币x,假如小C想购买5个游戏币x,有两种方法,方法A:一次购买5个游戏币x;方法B:购买5次,每次购买一个游戏币x。国内支持方法A、B,但在国外如google play或iap,只支持方法B。如果想一次购买5个游戏币x,那在google play中只能将5个游戏币x配置成一个物品。

Google Play将物品划分为:消耗型物品订阅型物品。

消耗型物品

用户物品购买完成后必须消耗,否则不能再次购买该物品。

回到上面例子,小C想购买5个游戏币x,现只能通过购买5次来实现。那小C在每次购买完游戏币x后,都必须通过Google Play的消耗接口消耗该物品,否则下次小C不能再购买游戏币x,并提示小C“已拥有该物品“”。

消耗接口:Google Play提供的API,用来物品购买后的消耗。

订阅型物品

订阅物品购买后不需要消耗。

订阅型物品类似于国内的包月、7天特权等概念。如腾讯视频的月卡会员、vip7天特权,对应到Google Play就是:按月订阅型物品,按周订阅型物品。

示例

《大话Google Play》

上图是配置在Google Play应用的物品信息,可以看出:

每个物品对应一个唯一的物品Id

每个物品有对应的价格

后两个订阅型物品,是按3个月订阅的,即用户购买三个月后,用户不再拥有该物品。

下单/支付

Google Play是不区分下单和支付的,即当用户购买物品时,用户支付完成后,Google Play Server会为这次购买生成一个唯一的订单号。

用户购买完成后,Google会将订单信息发送到用户关联的GMail邮箱中:

《大话Google Play》

测试用户购买

应用的测试用户可免费购买该应用内的物品,Google Play Server同样会为其生成唯一的订单号,但该订单号是由字母组成,而真实付费购买订单是由数字组成,如上图所示。

《大话Google Play》

票据

当用户支付完成后,开发者在支付接口回调中,会收到这次购买的票据信息。如:

《大话Google Play》

如上所示,票据主要包含了以下部分:

订单号

应用包名

购买的物品Id

购买时间

购买状态

透传字段

该字段是开发者调用Google Play支付接口时传入,支付完成后,在票据中返回。其作用主要有:

安全验证,通过判断该字段是否相同来判断是否为虚假票据。

信息关联,如在米大师中,米大师会为每次购买生成唯一的订单号,通过该字段可以实现米大师订单号与Google Play订单号的关联。

GW返回令牌

该字段主要用于Google Developer API的使用。

发货

Google Play不存在发货概念,当用户支付完成后,开发者只需在Google Play支付回调中通知应用服务端进行发货,并在发货完成后,调用Google Play的消耗接口进行消耗即可。

举个栗子:

小B在王者荣耀韩国版买了1000点券,支付通过Google Play完成,小B在完成支付后,查看账户余额发现购买1000点券已经发放。这1000点券由谁发放呢?当然是由应用自身去完成发货,即王者荣耀,而由于王者荣耀韩国版接的是米大师,物品托管在米大师,所有这1000点券就交由米大师去发放了。

发货通知方式

Google Play

Google Play采用SDK通知方式,通知应用服务器发货:

用户支付完成后,开发者在Google Play支付回调中通知应用SDK发货;

应用SDK通知应用Server发货

国内渠道

国内大部分渠道采用的是Server通知方式,即由支付渠道Server通知应用Server进行发货。

Google Play存在问题

Google Play从发布到现在已历经多个版本,当年的业务场景发展到现在也暴露出了不是问题。业务在接入Google Play时也经常会碰到各种疑惑,这其中包括:

汇率

币种

退款


汇率

Google使用用户下单时的汇率,并将买家币种换算成Google账号所有币种。现在汇率是全天候更新,Google会自动完成币种换算。

这意味着啥?

意味着开发者再也不用关注汇率带来的坑了!在之前,Google Play的汇率不是实时更新的,那就可能存在用户通过汇率差低价买入物品,而导致开发者损失。

关于汇率差,还存在一个问题:就是Google Play结算问题。

Google Play结算采用的方式应该是固定周期结算(降低结算费用),那可能存在以下情况:

开发者银行账户是香港的,用户在美国购买了物品,购买时汇率为A,而到Google Play结算时美元兑换港币汇率发生变化,此时汇率为B。如果B小于A,用户是否有损失,此时Google Play是如何进行处理的?

币种

当用户点击够买某物品时,会弹出Google Play确认框,上面会显示物品的价格和币种:

之前测试发现,不同的情况,该币种不一样。这个币种是由什么决定的呢?

绑卡用户

什么是绑卡用户,即用户在Google Payment完成信用卡的绑定,绑卡时需要填写用户的归属地。

绑卡后,以后用户的支付币种就由绑卡用户的归属地决定。

非绑卡用户

如果用不未绑卡,那这个币种就是根据用户的IP决定的。如用户IP在香港,显示的就是HK了,在美国显示的就是US。

固定币种

某些区域,如南非,可能由于当地货币汇率变化太快。Google Play在这些区域采用默认币种进行支付,默认币种为美元。

退款

Google Play允许用户在购买物品两小时内全额退款,但一个用户下一个物品只能退款一次。

Google Play允许的退款范围包括:

购买两小时内退款

未经授权的交易退款:65天内可申请退款

商品有缺陷或无意中进行交易退款:48小时内可申请退款,48小时后由开发者决定是否退款。

退款存在问题:

用户在某游戏中购买了物品x,两小时内进行退款,此时物品已经发货。此时物品已发货,但开发者并未收到钱,导致开发者损失,而Google Play并不补偿这部分损失。

解决方法:

首先Google Play针对退款进行限次,两小时内同一物品只能退款一次,其它退款需要进行审核。其次,应用开发者可以通过接入风控系统来发现恶意退款。米大师接入了风控系统,能根据用户设备账号等信息判断用户是否是恶意退款,从而避免业务损失。

    原文作者:空同定翁
    原文地址: https://www.jianshu.com/p/94d6201eafbd
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞