谷歌 Play

国内应用接入google play支付较少,在这分享下google play接入使用。


配置篇


1、准备google play账号

2、业务应用上传

3、业务应用内物品配置

4、开放测试权限

准备google play账号

google play账号分为:普通账号和开发者账号。

大家注册的google play账号一般为普通账号,不具备支付能力。普通账号升级到开发者账号,首先账号需要具备支付能力,然后付费升级。如果个人开发者开发的app需要发布到google play store中,他必须具备一个开发者账号,这样他才能登录到google play console中上传应用、添加测试人员等。

开发者账号

企业业务的开发者账号都是由mig统一管理的,业务接入google play支付,一般是不需要开发者账号的。只需要用普通账号登录,然后向开发者账号申请测试权限,这样该普通账号同样可以进行应用上传、开发测试权限等。

普通账号开启支付

大家注册的账号一般为普通账号,不具备支付能力。虽然业务不需要开发者账号,但如果要进行应用购买,账户是必须要有支付能力的。普通账号开启支付有两种方式:

方式一:绑定信用卡

绑卡有两种方式:

1、手机登录gw账号,未绑卡用户,登录完成后会提示绑卡

2、google play store中点击账户入口,付款方式—>添加信用卡或借记卡。

方式二:买入google play礼品卡

之前碰到过一种情况,业务绑定了信用卡,但是仍旧不能支付,可能是绑卡存在延期。相对于绑定信用卡,购买谷歌 Play礼品卡更为简单:

礼品卡其实就是google play兑换码的一种,业务可以在淘宝上购买礼品卡,但礼品卡存在一定的限制。

礼品卡是分区域的,只能购买账户归属地礼品卡,否则不能充值到账号中。如:账号归属地为香港,只能买香港的礼品卡,购买其它地区礼品卡不能充值到账号中。

礼品卡只能购买该区域币种的物品,如香港礼品卡只能购买港元的物品。

礼品卡兑换入口如上图所示。

建议账号归属地修改为应用发布的国家,修改地方在谷歌付款中心:


业务应用上传

账号准备好后,接下来时将业务应用上传到google play中。

没有谷歌 Play Console权限

应用和物品等的配置都在谷歌 Play Console中进行,如果账号登录进去,看到下面页面:

界面提示你付款成为开发者账号,说明你账号还没有权限。

前文讲过业务是不需要开发者账号的,只需要向开发者账号申请权限。此时,只需联系开发者账号所有者,让他添加你的账号权限。

上传应用

1、假如你已经成功进入google play cosonle,点击创建应用

2、弹框提示,填写应用名称

3、点击创建后,填写应用信息

4、上传测试版本apk,发布测试版本

点击上图中的管理ALPHA版,上传apk(上传的apk需要签名),确保信息无误,按提示发布。

谷歌 Play测试版本分为ALPHA版和BETA版,区别在于两者面向的测试对象不同,具体参考:设置Alpha/Beta版测试


业务应用内物品配置

应用在google play console上传成功后,下一步就是配置应用内物品。

1、进入google play console,点击上传应用

如果应用上传成功的话,会看到你上传的应用,点击该应用:

2、创建应用内物品

如上图,应用物品配置分为普通物品配置(受管理物品)、订阅物品配置。

3、配置受管理物品

进入受管理物品配置页,填写物品Id等信息,点击“添加价格”,为物品设置价格:

这里有必要讲下google play价格配置问题,如上图:

——上图首先配置一个默认价格(基准价格),如果选中了国家/地区,则会按基准价格和实时汇率计算出每个国家的价格,表中价格是可以手动配置的(即不按汇率计算)。

——当用户购买了该物品时,google play是按用户绑卡归宿地来决定币种的。如上图,基准价格是1美金,如果用户绑的卡是阿尔及利亚的,那google play按阿尔及利亚币种进行收费。

????????如果物品配置时,如上图选中了国家地区,即按上图显示的价格110(也可以配置其它值)扣费。

????????如果物品配置时,未选中国家地区,则按用户购买时那天的汇率和基准价格计算出扣费金额。

4、配置订阅

订阅配置类似于受管理物品,但有更多选项:

如上图:

结算周期:指定了订阅是按周、月、年还是其它周期进行结算

免费试用:可不配置,表示用户在购买该订阅前,可以免费试用的天数

入门价格:可不配置,表示用户在正价购买该订阅前,可以按较低的入门价格先购买该订阅。

宽限期:可不配置,即用户可以延迟宽限期在扣款,一般用于营销奖励用户一定的宽限期。


开放测试权限

开放测试权限的目的是为了让测试人员能免费购买应用内物品,进行测试。

1、在google play console中找到你上传的应用,点击

如上图,找到你上传的Alpha版本应用,点击管理Alpha版本。

2、管理测试人员

如上图,进入Alpha版页,点击“封闭式Alpha版测试”

3、添加测试人员

如上图所示:不同的测试方法支撑不同的添加测试人员方式:

方式1:设置测试人员列表

方式2:将测试连接发送给他人,他人打开即成为测试人员


支付篇


物品

谷歌 Play应用内购买的物品分为标准应用内物品和订阅,各物品特点如下:

标准应用内物品

一次结算

购买完成后进行结算。

普通物品、可兑换物品

标准应用内物品又分为:普通物品、可兑换物品。

可兑换物品:是指可通过兑换码进行兑换的物品。

购买完后需消耗

即标准应用内物品购买完成后,需要调用谷歌 Play提供的消耗接口进行消耗,否则该物品不能再次购买。

订阅

定期结算

即在订阅周期开始时进行结算。

订阅无需消耗

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


应用内购买 API

API版本

谷歌 Play通过进程间通信(IPC)方式,实现应用与谷歌 Play服务的通信。谷歌 Play提供的API支撑物品的查询、购买、订阅、订阅升级等功能,现API最新版本为5.0,各版本特点如下:

Version 5

用户可以手动延长现有订阅,订阅将延长相应的时间。

用户可以在订阅有效时升级或降级订阅。旧订阅将取消,未使用部分将按比例应用于新订阅。

Version 4

未引入任何公共功能

Version 3

标准应用内物品操作,要求谷歌 Play客户端版本3.9.16或更高版本

订阅物品操作,要求谷歌 Play客户端版本3.10.10或更高版本

接口更新

Version 2及以下版本

已停止支撑


API操作

新版API中,谷歌 Play提供了一个类IabHelper,该类封装了物品购买的相关操作(当然,也可以自己实现相关API,不过还是建议采用官方提供的IabHelper)。

查询

返回结果包括:查询的物品信息+购买未消耗的物品票据信息+已订阅的物品票据信息。

注意:标准应用内物品购买后未消耗,则每次都能查询到该物品票据信息;若该物品已经消耗,则下次查询不到该物品信息。而订阅物品,一旦购买,则每次都能查询到该物品票据信息,除非该订阅过期。

如下返回查询的物品信息,json格式:

购买/订阅/订阅升级

1、Activity必需重写onActivityResult方法,并在该方法中调用IabHelper的handleActivityResult方法;这样,购买结果才会交给回调处理。

2、extraData是购买时传入的透传字段,该字段会在票据中返回。可用于验证信息,确保安全。

结果以Purchase对象返回票据信息:

?:谷歌 Play 会为购买生成令牌(purchaseToken)。此令牌是不透明的字符序列,最长可为 1,000 字符。 将整个令牌传递至其他方法(例如在您消耗购买时,如消耗购买中所述)。 不要省略或者截断此令牌,您必须保存并返回整个令牌。

消耗

若购买的物品未进行消耗,则下次不能再购买该物品。

订阅不需要消耗,因此订阅物品购买完成后不需要调用该接口消耗。


订阅

自动续订

订阅物品默认是自动续订

如果周期性付款失败,订阅将不会续订。

订阅升级/降级

用户可在订阅的有效期内对其进行升级/降级。 进行此操作,将取消有效订阅,并创建一个新订阅。 旧订阅的未使用余额将按比例应用到新订阅。 新订阅的第一个结算周期将在余额用完后开始。

延迟结算

可以延迟订阅者的下一个结算日期,用户将继续享受订阅内容,但在延迟期内不会被扣款。

需要通过谷歌 Play Developer API设置。

被拒绝付款的宽限期

在谷歌 Play Console中添加订阅物品时,可以为订阅物品设置被拒绝付款的宽限期。

宽限期内,订阅的过期时间为第二天。

免费试用

免费试用期,用户可以在购买前享受订阅内容。 试用期结束后,将自动转换为按照订阅的结算间隔和价格管理的完整订阅。

享受免费试用,用户需要发起一次完成的购买,只是价格为0.

免费试用期内,用户可以取消订阅。

google play现支撑配置应用即免费试用,即可为每个订阅物品让用户免费试用一次;之前google play策略时,一个用户一个应用内只能享受一次免费试用。

取消订阅

可在谷歌 Play商店中取消订阅。

订阅取消后,用户能继续享受订阅,直到当前结算周期结束。

注意:用户如果取消订阅,然后在订阅有效期内再次购买该订阅。此时,google play视其为订阅的激活,用户不会被扣款,但会生成新的票据,扣款在下次订阅周期开始时扣款。

应用卸载

当用户卸载包含已购买订阅的应用时,Play 商店应用将通知用户存在有效订阅。 如果用户选择继续卸载,应用将被移除,订阅仍保持有效,重复结算也将持续。

其它

测试用户购买订阅,订阅的有效期为一天,即过期时间为第二天。

sdk调google play查询接口查询订阅票据信息时,只能查到初始购买的票据,续费票据查询不到。

google play订阅续费票据的订单号存在关联,这个只能通过google play developer api查询才能看到。


促销/兑换码

谷歌 Play支撑为应用中的物品配置兑换码,每个兑换码都与特定的物品ID关联。

兑换码消耗

通过兑换码购买的物品,同样是需要调用谷歌 Play消耗接口进行消耗的,否则该物品不能再次购买。

应用内兑换码购买

即用户在付款界面中选择兑换码支付。

该流程与物品的正常购买流程相同,此时只需在购买完成后,调用消耗接口消耗即可。

谷歌 Play兑换码购买

即用户在谷歌 Play客户端,通过兑换码完成物品的兑换购买。

此时,由于物品关联的应用可能并未启动,那在进入应用时需要检查是否有兑换的物品未消耗(详见,兑换码消耗)。


票据

物品购买成功后,谷歌 Play会返回购买票据,票据中包含了订单等信息。


谷歌 Play Developer API

谷歌 Play Developer API主要提供了以下功能:

订阅和应用内购买操作

查询购买状态,购买修改、取消和退款等操作

应用发布操作

应用管理,发布等操作

详见官方文档:https://developers.google.com/android-publisher/。

可在后台配置google play developer api,用于订阅票据的校验,判断订阅票据是否为续费票据。


测试篇


注:应用内物品购买测试,可参考官方文档:测试应用内购买结算

Beta/Alpha测试

应用发布后可在谷歌 Play Console上邀请测试人员进行测试,测试人员可以免费测试应用内购买等功能,谷歌 Play提供了Beta、Alpha两种测试方案。关于Beat/Alpha的详细信息,参考:设置Beta/Alpha测试。这里需要注意:

Alpha/Beta 版本号

注:Alpha/ Beta 版 APK 需具有高于正式版 APK 的版本号才能用于测试。

Alpha 版 APK 需要具有高于 Beta 版 APK 的版本号才能供 Alpha 版测试人员使用。

如果上传的 Beta 版 APK 具有高于 Alpha 版 APK 的版本号,那么 Alpha 版将会自动停用。

如果上传的正式版 APK 具有高于 Alpha 版或 Beta 版 APK 的版本号,那么 Alpha 和/或 Beta 版将会自动停用。

三种测试

无论是Beta测试还是Alpha测试都分为以下三种方式:

1、封闭式测试

只有测试列表中的人员才能加入测试。

2、开放式测试

测试连接发送给测试人员,测试人员点开后就可以加入测试。

3、使用 谷歌 网上论坛或 谷歌+ 社群

只有指定 谷歌 网上论坛或 谷歌+ 社群中的用户才能加入测试。

测试条件

当许可测试用户免费测试应用内物品购买,用户安装的APK需满足以下条件:

安装APK包名必须与谷歌 Play Console测试渠道中APK包名相同。

安装APK签名必须与谷歌 Play Console测试渠道中APK签名相同。

安装APK版本号必须与谷歌 Play Console测试渠道中APK版本号相同。

购买失败

在谷歌 Code可以查看谷歌 Play出现的各种问题。


运营篇


币种

币种涉及到两方面:google play如何跟用户结算,google play如何结算给开发者

google play跟用户结算

用户购买时的币种主要由用户的归属地决定,归属地依赖于:

1、绑卡用户由信用卡归属地决定。

2、非绑卡用户,由ip地址决定。

币种为归属地的币种,该归属地如果在配置价格列表中,按配置价格计算。不在列表中,价格则涉及到汇率换算,换算的汇率按用户购买时的汇率确定。

google play跟开发者结算

结算给开发者的币种,按开发者信用卡归宿地确定

价格为用户付费价格结合分成比例和汇率计算,如果涉及到汇率换算,则按用户购买时的汇率计算。


账户

:必须在用户的 Android 设备上设置许可测试帐户。 如果设备上有多个帐户,则必须使用下载应用时所用的帐户进行购买。 如果没有帐户下载过应用,则默认使用第一个帐户进行购买。 用户可以通过展开购买对话框来确认实行购买的帐户。


付款方式

用户可在谷歌 Payment中添加新的付款方式,支撑的付款方式主要有:

信用卡或借记卡

支撑以下信用卡/借记卡:

American Express

Discover

JCB

MasterCard

Visa

Visa Electron

注意:谷歌 Play 所接受的银行卡类型可能会有所不同。在使用信用卡或借记卡时,您可能会在自己的帐号中看到临时授权项。

谷歌 电子钱包余额

美国英国,可使用谷歌 电子钱包余额来支付购物款项。只需确保电子钱包余额内的资金足以支付总购物款项即可。

运营商直接代扣

参与运营商直接代扣的美国运营商

AT&T

Sprint

T-Mobile

US Cellular

Verizon

当购买商品后,相应扣款会在15 分钟后显示在您的运营商帐号中。

:当注册运营商直接代扣服务时,手机可能会收到一条以“DCB_Association”开头的短信。这条 DCB_Association 短信是系统自动生成并发送的,目的是为您的 谷歌 Play 帐号完成运营商直接代扣服务的注册流程。

谷歌 Play 余额和 谷歌 Play 礼品卡

谷歌 Play 余额只能购买谷歌 Play 音乐谷歌 Play 报亭的订阅内容,但不能用于购买其他类型的订阅内容。详细了解谷歌 Play 余额的用途和限制。

谷歌 Play 余额可以通过谷歌 Play 礼品卡和某些促销代码兑换而来。

PayPal

如果您启用了 PayPal 安全密钥,则可以使用计算机或移动网络浏览器将 PayPal 添加到您的 谷歌 Play 帐号。

若无法使用 Play 商店应用关联 PayPal。要添加 PayPal,请将 play.google.com/store/account 复制并粘贴到网络浏览器(例如 Chrome 或 Safari)的地址栏,然后选择“新增付款方式”。

不支撑的付款方式

电汇

电子转帐

Western Union(西联汇款)

Money Gram(速汇金汇款)

虚拟信用卡 (VCC)

健康储蓄帐号 (HSA)

交通卡

任何第三方托管类型的付款方式


退款

应用内购买结算不允许用户向 谷歌 Play 发送退款请求。应用内购买的退款必须定向到您(应用开发者)。 随后,您可以通过自己的 谷歌 Payments 商家帐号处理退款。 在您处理后,谷歌 Play 将收到 谷歌 Payments 的退款通知,并向您的应用发送退款消息。

注:您无法使用 API 发放退款或者取消应用内购买结算交易。 您必须通过 谷歌 Payments 商家帐号手动完成这两种操作。

退款时间

所有?Android?应用和游戏都有两个小时的试用期。在购买应用或游戏之后的两小时内,您可以退回并获得全额退款。同一款应用或游戏只能退回一次

允许退款范围

未经您许可的情况下使用您的帐号或付款方式购物

您没有收到购买的商品、该商品无法使用或不符合您的预期

您无意中误买了商品,或者在购买之后改变了主意

无法退款

如果您将帐号或付款详细信息透露给他人、疑似滥用大家的政策,或者您没有使用身份验证功能保护自己的帐号,大家通常无法发还退款。

退款处理

注:不同商品退款策略不同,此处只关注应用内商品(包括订阅)的退款处理。

1 未经授权的交易退款

退款时间:65天内可申请退款

退款方式:在线提交退款请求

结果反馈:15?分钟内得知结果,最多则可能要等待?2?个工作日

2 商品有缺陷或无意中进行交易退款

48小时内申请退款

在线提交退款请求

48小时后申请退款

如果超过?48?小时,则由开发者负责决定是否退款。请直接与应用开发者联系并申请退款。

退款时间表



备注

请务必遵守目标国家/地区的适用法律

在欧盟国家,不公平商业行为指令的相关法律禁止直接规劝儿童购买广告产品或者劝说其父母或其他成年人为儿童购买广告产品。

谷歌 Play客户端本地缓存

使用Version3 API查询配置的物品信息时,是在谷歌 Play客户端的本地缓存中进行查找。所以,当物品配置更新时,建议先清理谷歌 play本地缓存,在进行物品信息的查询。


参考文档

谷歌 Play 应用内购买官方文档

谷歌 Play Developer API

谷歌 Payments帮助

谷歌 Play說明

Android Developers Blog

Android Developers 网上论坛

谷歌 Play开发者政策中心

结算项目问题跟踪器


这么多人看这个文章,特建了个qq群,用于交流google play相关技术问题,欢迎进群!


推荐阅读更多精彩内容