这几天接入google支付,这里记录一下:
一、账号
1、申请开发者账号,认证,付费,
2、注册应用,填写应用基本资料;
二、开发接入
1、在manifest.xml中添加代码:
<uses-permission android:name="com.android.vending.BILLING" />
2、添加aidl文件:
将IInAppBillingService.aidl文件添加到工程中正确的地方,支付代码能引用到的模块,注意aidl的包名一定只能是:
com.android.vending.billing
3、代码混淆,开启后一定注意加入以下规则:
-keep class com.android.vending.billing.**
三、发布测试版,测试google支付
1、打包上传到google后台,发布测试,未接入完成,先发布测试版,beta测试版,
2、添加商品,商品分为受管理的商品,和不受管理的商品(即订阅商品)。
受管理的商品每次支付完成后记得及时消费这样下次可以继续购买,适用于游戏道具,充值,实物等多次购买的商品;消费代码:
mHelper.consumeAsync(Purchase purchase, mConsumeFinishedListener);
不受管理的商品时按周期订阅的,每周期结束过后可能会自动给你续费,也有一定免费期,可以退订,注意处理,订阅商品不能重复购买,只能是到期后续订或者购买,不受管理的商品不能消费
四、代码集成:
1、示例代码地址:https://github.com/googlesamples/android-play-billing/tree/master/TrivialDrive
2,google 后台-开发工具-服务和api下获取base64的秘钥,替换demo中的base64EncodedPublicKey
3、代码:
//初始化
mHelper = new IabHelper(activity, base64EncodedPublicKey);
mHelper.startSetup(result -> {
if (!result.isSuccess()) {
return;
}
if (mHelper == null)
return;
// IAB is fully set up. Now, let's get an inventory of stuff we own.
//查询已经订阅的和买了没有消费的商品
mHelper.queryInventoryAsync(mGotInventoryListener);
});
//购买商品
mHelper.launchPurchaseFlow();
//消费受管理的商品
mHelper.consumeAsync(purchase, mConsumeFinishedListener);
具体代码看demo
以上做一个记录。