一. 能使用Google支付的必備條件:android
1.手機上可以安裝Google Play而且可以打開。app
2.在Google Play Console上發佈本身的應用(有支付權限的,下面會講),能夠只發布Beta版本(未開發完也能夠發佈,要簽名過的app)。以下圖:(若是達到了下圖的結果,app狀態爲已發佈狀態,就能夠測試Google支付了,可是要綁定一張銀行卡,具體能夠Google。在Develop Console 添加測試gmail帳戶,這樣就不會真正扣費啦!):工具
二. Android Studio上的有關配置測試
1.加上權限:google
<uses-permission android:name="com.android.vending.BILLING" />
2.須要導入在工具類:spa
a. 在 Android Studio 中打開Android SDK Manager(在Tools-->Android 裏面),找到並安裝Google Play Billing Library這一項。code
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內支付已完成,到這時你會以爲其實也很簡單。