与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应用程序项目中:
- 展开app文件夹并选择libs(如果没有libs文件夹,请创建一個文件夹)。将appstore-sdk-compat-beta-4.0.0.jar文件粘贴到这个目录中。
- 打开app文件夹中的build.gradle文件,并在appstore-sdk-compat-beta-4.0.0.jar上添加依赖项。例如:
dependencies { implementation files('libs/appstore-sdk-compat-beta-4.0.0.jar') }
- 通过在IDE中的build.gradle文件顶部选择Sync Now(立即同步)来同步项目。
也可从应用中移除Google Play Billing Library依赖项。
步骤2:使用公钥配置您的Android应用程序
每个应用程序的公钥都是唯一的,它会在亚马逊应用商店和您的应用程序之间建立起安全的通信渠道。当您在亚马逊开发者控制台中生成公钥时,亚马逊会生成相应的私钥。这些公钥和私钥会构成密钥对,用于签署许可证响应。通过这种密钥配对,您可以确保应用仅限授权用户安装。
要使用公钥配置您的Android应用程序,请执行以下操作:
- 使用开发者账户登录开发者控制台。
- 转到应用与服务 > 我的应用程序。如果您已有应用程序,请单击该应用。否则,请单击添加新应用程序按钮并选择Android以创建新应用,然后填写“新应用程序提交”页面。
- 转到应用信息选项卡上的添加App Bundle或APK文件部分。
- 单击公有密钥。
- 在显示的“公有密钥”对话框中,单击AppstoreAuthenticationKey.pem链接,下载PEM文件。该文件包含您的公钥。
- 复制AppstoreAuthenticationKey.pem文件。将其粘贴到您的Android应用项目的app/src/main/assets文件夹中。如果没有该文件夹,请创建该文件夹。
也可移除Google Play Billing公钥依赖项。
步骤3:使用接收器配置AndroidManifest.xml文件
Appstore SDK以异步方式执行其所有活动。应用程序需要通过BillingResponseReceiver
类从亚马逊应用商店接收广播意图。在应用程序中,此类从不被直接使用,但要让应用程序能够接收意图,就必须在清单中添加BillingResponseReceiver
条目。
以下示例代码展示了如何在Appstore SDK的AndroidManifest.xml
文件中添加BillingResponseReceiver。如果应用支持Android 12或更高版本,则必须在MainActivity
和ResponseReceiver
中明确将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不支持该语句。请移除或修改应用中使用该语句之处,以使该语句适用于亚马逊应用商店。