开发者控制台

与Google Play Billing兼容的Appstore SDK

与Google Play Billing兼容的Appstore SDK

如果您现有的Android应用程序已与Google Play Billing Library集成,则可使用与Google Play Billing API兼容的Appstore SDK,只需进行极少的更改即可将应用程序移植到亚马逊应用商店。与Google Play Billing API兼容的Appstore SDK支持消费品和权利的应用内购买 (IAP)。不支持订阅IAP。

下表所示为Google Play Billing Library、亚马逊应用商店SDK v3.0.3以及与Google Play Billing API v4.0.0兼容的亚马逊应用商店之间的功能比较。

功能比较
功能 Google Play Billing Library Appstore SDK v3.0.3 与Google Play Billing API兼容的Appstore SDK v4.0.0
订阅 参阅备注
权利
消费品
数字版权管理(DRM)

下载Appstore SDK

要下载与Google Play Billing API兼容的Appstore SDK,请访问SDK下载。下载项包括Appstore SDK JAR文件和API文档。

集成Appstore SDK

按照此分步指南,将与Google Play Billing API兼容的Appstore SDK与您的应用程序集成。

步骤1:将Appstore SDK添加到您的应用程序

手动将Appstore SDK添加到您的Android应用程序项目中:

  1. 展开app文件夹并选择libs(如果没有libs文件夹,请创建一個文件夹)。将appstore-sdk-compat-beta-4.0.0.jar文件粘贴到这个目录中。
  2. 打开app文件夹中的build.gradle文件,并在appstore-sdk-compat-beta-4.0.0.jar上添加依赖项。例如:
     dependencies {
         implementation files('libs/appstore-sdk-compat-beta-4.0.0.jar')
     }
    
  3. 通过在IDE中的build.gradle文件顶部选择Sync Now(立即同步)来同步项目。

也可从应用中移除Google Play Billing Library依赖项。

步骤2:使用公钥配置您的Android应用程序

每个应用程序的公钥都是唯一的,它会在亚马逊应用商店和您的应用程序之间建立起安全的通信渠道。当您在亚马逊开发者控制台中生成公钥时,亚马逊会生成相应的私钥。这些公钥和私钥会构成密钥对,用于签署许可证响应。通过这种密钥配对,您可以确保应用仅限授权用户安装。

要使用公钥配置您的Android应用程序,请执行以下操作:

  1. 使用开发者账户登录开发者控制台
  2. 转到应用与服务 > 我的应用程序。如果您已有应用程序,请单击该应用。否则,请单击添加新应用程序按钮并选择Android以创建新应用,然后填写“新应用程序提交”页面。
  3. 转到应用信息选项卡上的添加App Bundle或APK文件部分。
  4. 单击公有密钥
  5. 在显示的“公有密钥”对话框中,单击AppstoreAuthenticationKey.pem链接,下载PEM文件。该文件包含您的公钥。
  6. 复制AppstoreAuthenticationKey.pem文件。将其粘贴到您的Android应用项目的app/src/main/assets文件夹中。如果没有该文件夹,请创建该文件夹。

也可移除Google Play Billing公钥依赖项。

步骤3:使用接收器配置AndroidManifest.xml文件

Appstore SDK以异步方式执行其所有活动。应用程序需要通过BillingResponseReceiver类从亚马逊应用商店接收广播意图。在应用程序中,此类从不被直接使用,但要让应用程序能够接收意图,就必须在清单中添加BillingResponseReceiver条目。

以下示例代码展示了如何在Appstore SDK的AndroidManifest.xml文件中添加BillingResponseReceiver。如果应用支持Android 12或更高版本,则必须在MainActivityResponseReceiver中明确将android:exported设置为true

<application>
...
    <activity android:name="com.amazon.sample.iap.entitlement.MainActivity"
              android:label="@string/app_name" android:exported="true" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    
    <receiver android:name="com.amazon.device.iap.billingclient.api.BillingResponseReceiver" android:exported="true"
              android:permission="com.amazon.inapp.purchasing.Permission.NOTIFY">
        <intent-filter>
            <action android:name="com.amazon.inapp.purchasing.NOTIFY" />
        </intent-filter>
    </receiver>
...
</application>

步骤4:更新导入声明

通过找出所有使用com.android.billingclient.api前缀之处并将其替换为com.amazon.device.iap.billingclient.api前缀,更新应用代码库中的Google Play Billing导入,以使用Appstore SDK导入。

如果任何Appstore SDK导入语句未被解析,则表示Appstore SDK不支持该语句。请移除或修改应用中使用该语句之处,以使该语句适用于亚马逊应用商店。

后续步骤

请参阅实现Google Play Billing接口