从Google Play结算库迁移到Appstore SDK
使用本指南将您的应用从Google Play结算库迁移到Appstore SDK应用内购买 (IAP) API。要查看其他移植解决方案,请参阅从Google Play结算库迁移到Amazon IAP。
- 迁移到Appstore SDK
- 步骤1:下载并配置Appstore SDK
- 步骤2:配置AndroidManifest.xml文件
- 步骤3:实现在Google Play结算库和IAP之间进行调解的逻辑
- 步骤4:添加并实现Appstore SDK IAP API
- 步骤5:测试您的应用
迁移到Appstore SDK
要从Google Play结算库迁移到Appstore SDK,请按照以下说明进行操作。
- 下载并配置Appstore SDK。
- 配置AndroidManifest.xml文件以支持Appstore SDK IAP。
- 在应用中,实现在Google Play结算库和IAP之间进行协调的逻辑。
- 添加并实现Appstore SDK IAP API。
- 测试您的应用。
以下部分将指导您完成这些步骤。
步骤1:下载并配置Appstore SDK
在此处下载Appstore SDK:
要为您的应用配置Appstore SDK,请按照集成Appstore SDK中的说明进行操作。
步骤2:配置AndroidManifest.xml文件
配置AndroidManifest.xml文件来为应用定义IAP ResponseReceiver。IAP ResponseReceiver确保应用截获来自亚马逊客户端的意图通信。如果您同时支持Google Play结算库和Amazon IAP,则无需删除与Google Play结算库相关的元素;IAP将忽略它们。
在AndroidManifest.xml文件中,为IAP ResponseReceiver添加适当的<receiver>标签。如果您的应用以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.ResponseReceiver" 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>
步骤3:实现在Google Play结算库和IAP之间进行调解的逻辑
无论在哪里托管您的应用,均可以为其使用同一代码库。只需向您的应用添加逻辑,以确定应用是从亚马逊应用商店还是从Google Play下载的。根据用户从哪里下载的应用,运行适用于IAP或Google Play结算库的方法。
以下示例代码可确定程序包是从Google Play还是从亚马逊应用商店安装的:
PackageManager pkgManager = context.getPackageManager();
try {
   String installerPackageName = pkgManager.getInstallSourceInfo(context.getPackageName()).getInstallingPackageName();
} catch (PackageManager.NameNotFoundException e) {
   // 处理异常
}
if (installerPackageName.startsWith("com.amazon")) {
   // 亚马逊
} else if ("com.android.vending".equals(installerPackageName)) {
   // Google Play
}
步骤4:添加并实现Appstore SDK IAP API
Appstore SDK IAP的工作原理与Google Play结算库基本类似。在您的代码中创建路径以实现IAP API时,您应该能够使用类似于Google Play的逻辑流,但需要考虑到不同的门类和方法名称。
下表将最常用的IAP方法映射到其Google Play等效方法:
| PurchasingService方法 | PurchasingListener回调 | 响应对象 | Google Play等效类型 | 
| getUserData() | onUserDataResponse() | UserDataResponse | 无 | 
| getPurchaseUpdates() | onPurchaseUpdatesResponse() | PurchaseUpdatesResponse | queryPurchases() | 
| getProductData() | onProductDataResponse() | ProductDataResponse | getSkuDetails() | 
| purchase() | onPurchaseResponse() | PurchaseResponse | launchBillingFlow() | 
| notifyFulfillment() | 无 | 无 | consumeAsync() | 
步骤5:测试您的应用
下载并安装App Tester工具来测试集成了Appstore SDK的应用。按照测试应用内购买 (IAP) 中的说明和链接安装和使用App Tester。
在本地测试应用后,您可以使用动态应用测试服务通过一组选定用户在实际生产环境中对应用进行Beta测试。
Last updated: 2025年8月12日

