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

来源:互联网 发布:linux怎么yum安装gcc 编辑:程序博客网 时间:2024/06/05 05:07

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 文件中添加以下代码行:

[java] view plain copy
print?
  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”;

//
原创粉丝点击