Android 开发之接入Google Billing-Inapp支付

一. 能使用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内支付已完成,到这时你会觉得其实也很简单。

猜你喜欢

转载自my.oschina.net/u/2987490/blog/1549813