Android集成Google支付,以及遇到的坑、坑

Google商店的應用被下架,應用內購買必須走Google支付,還要扣去百分之三十的手續費,而且有些國家還會收一定的銷售稅最高達27%,其實Google支付只是自己集成了Paypal支付和銀行卡支付,然後Google收手續費。用戶使用Google正常支付退款時間是48小時,退款只會在商家賬號通知。

我們來談一談集成Google支付吧:

Google上給出了Demo:https://github.com/cafebazaar/TrivialDrive

裏面有購買訂閱和受管理產品的,大家可以下載運行一下試一試。我剛開始是按照Google開發文檔去集成的,可能是我水平有限,並沒有成功。最後是按Demo去搞吧,方便。Google給出的API:https://developer.android.com/google/play/billing/billing_integrate.html

要在您的應用中實現應用內購買結算,您需要執行以下操作:

  1. 將應用內購買結算庫添加到您的項目中。
  2. 更新您的 AndroidManifest.xml 文件。
  3. 創建 ServiceConnection 並將其綁定到 IInAppBillingService
  4. 從您的應用發送應用內購買結算請求至IInAppBillingService
  5. 處理來自 Google Play 的應用內購買結算請求響應。

將 AIDL 文件添加到您的項目中


IInAppBillingService.aidl 是一種定義應用內購買結算版本 3 服務接口的 Android 接口定義語言 (AIDL) 文件。 您可以使用此接口通過調用 IPC 方法調用來發送結算請求。

要獲取 AIDL 文件,請執行以下操作:

  1. 打開 Android SDK 管理器
  2. 在 SDK 管理器中,展開 Extras 部分。
  3. 選擇 Google Play Billing Library
  4. 點擊 Install packages 完成下載。

IInAppBillingService.aidl 文件將安裝到 <sdk>/extras/google/play_billing/

要將 AIDL 添加到您的項目,請執行以下操作:

  1. 首先,下載 Google Play Billing Library 到您的 Android 項目:
    1. 選擇 Tools > Android > SDK Manager
    2. 在 Appearance & Behavior > System Settings > Android SDK 下面,選擇 SDK Tools 標籤以選擇並下載 Google Play Billing Library
  2. 接下來,複製 IInAppBillingService.aidl 文件到您的項目。
    • 如果您使用的是 Android Studio,請執行以下操作:
      1. 導航至 Project 工具窗口中的 src/main
      2. 選擇 File > New > Directory,然後在 New Directory 窗口中輸入 aidl,再選擇 OK
      3. 選擇 File > New > Package,然後在 New Package 窗口中輸入 com.android.vending.billing,再選擇 OK
      4. 使用您的操作系統文件資源管理器,導航至 <sdk>/extras/google/play_billing/,複製 IInAppBillingService.aidl 文件,然後將其粘貼到項目中的 com.android.vending.billing 軟件包。
    • 如果您在非 Android Studio 環境中開發,請執行以下操作:創建目錄 /src/com/android/vending/billing,並將IInAppBillingService.aidl 文件複製到此目錄。 將 AIDL 文件添加到您的項目中並使用 Gradle 工具構建項目,從而生成IInAppBillingService.java 文件。
  3. 開發您的應用。您會在項目的 /gen 目錄中看到名爲 IInAppBillingService.java 的生成文件。

更新您的應用清單


應用內購買結算依賴於 Google Play 應用,後者將處理應用與 Google Play 服務器之間的所有通信。 要使用 Google Play 應用,您的應用必須請求適當的權限。 您可以通過將 com.android.vending.BILLING 權限添加到 AndroidManifest.xml 文件執行此操作。 如果您的應用未聲明應用內購買結算權限,但試圖發送結算請求,Google Play 將拒絕請求並使用錯誤響應。

要爲您的應用授予必要的權限,請在 AndroidManifest.xml 文件中添加以下代碼行:

  1. <uses-permission android:name=“com.android.vending.BILLING” />  
<uses-permission android:name="com.android.vending.BILLING" />
這個權限是一定得加的。

按照例子,先把所需Google aidl放好,位置一定不能錯。

IInAppBillingService.aidl


還有所需的Util,都拷貝到項目中:


然後Clean一下,不讓IInAppBillingService不能用。

下面開始代碼集成:

先把所需要的常量定義一下:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
//google支付部分:
// 聲明屬性The helper object
private IabHelper mHelper;
private String TAG = “MyLog1”;
/**
* Google是否初始化成功:
*/
boolean iap_is_ok = false;

/**
* Google支付需要的
* 購買產品的id
*/
static String purchaseId = “”;

// (arbitrary) request code for the purchase flow
//購買請求回調requestcode
static final int RC_REQUEST = 1001;
//base64EncodedPublicKey是在Google開發者後臺複製過來的:要集成的應用——>服務和API——>此應用的許可密鑰(自己去複製)
String base64EncodedPublicKey = “MIIBIjANBgkqh******************************DAQAB”;

//
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章