一. 能使用Google支付的必备条件:
1.手机上能够安装Google Play并且能够打开。
2.在Google Play Console上发布自己的应用(有支付权限的,下面会讲),可以只发布Beta版本(未开发完也可以发布,要签名过的app)。如下图:(如果达到了下图的结果,app状态为已发布状态,就可以测试Google支付了,但是要绑定一张银行卡,具体可以Google。在Develop Console 添加测试gmail账户,这样就不会真正扣费啦!):
二. Android Studio上的有关配置
1.加上权限:
<uses-permission android:name="com.android.vending.BILLING" />
2.需要导入在工具类:
a. 在 Android Studio 中打开Android SDK Manager(在Tools-->Android 里面),找到并安装Google Play Billing Library这一项。
b. 找到上面下载的东西,在你Android Studio的SDK安装的路径下的----> \extras\google\play_billingsamples\TrivialDrive\src\com\example\android\trivialdrivesample\util, 复制这个util这个文件夹里面的所有类到你的Android Studio里面,如下图:(里面的所有类,要用到 的)。
c. 找到你Android Studio的SDK安装的路径下的\extras\google\play_billing下面的 IInAppBillingService.aidl文件,复制它到你的Android Studio 项目如下图的位 置:(确保位置要一样)
三. 开始测试Google支付
1.初始化IabHelper类(参数base64EncodedPublicKey是如下图,在Google Play Console中找到,前提app已经发布了):
mHelper = new IabHelper(context, base64EncodedPublicKey);
然后初始化,相关的参数可以参考官方文档:
mHelper.startSetup
初始化成不成功取决于测试设备成功安装Google Service之类的,最后体现为能不能成功打开Google Play 2.在Google Play中设置app内商品的类型(包括它的ID,购买时候会用到) :
a.受管理的商品---单个购买,比如游戏里面的金币
b.订阅---如,VIP的购买
如果是受管理的商品,买了之后就要消耗,购买了没有消耗它,下次是不能购买的,这点很重要。
3.和Google支付相关的一些方法
a.购买--launchPurchaseFlow(Activity, String, int, OnIabPurchaseFinishedListener, String)
b.consumeAsync(Purchase, OnConsumeFinishedListener) 消耗商品(如果你的商品是可重复购买,需 要在购买成功后将商品消耗掉).
c.queryInventoryAsync(boolean, List, QueryInventoryFinishedListener) 查询用户所拥有的商品信息
4.要在Activity的onActivityResult方法中调用mHelper.onActivityResult(requestCode,resultCode,data), 否者购买后不会调用他的购买结束监听方法。
总结:只是讲了核心的东西,有些细节没有讲,但是都是小问题,都可以Google的出来(如购买参数,消 耗参数等)但是有个坑,Google都很难解决,就是如果手机不给Google Play这个app,允许后台弹窗 权限,当执行购买的时候,什么也没反应,购买成不成功,也不返回,很烦。这个点需要注意到。
。。。。。。。。。。。。最后希望你们能够在测试中出现如下图类似的购买单图:
那就说明你的google app内支付已完成,到这时你会觉得其实也很简单。