截至2024年5月21日的更新:
现在可以将收据验证服务 (RVS) 用于亚马逊应用商店计费兼容性SDK。该服务提供了两个RESTful API:purchases.products.get和purchases.subscriptionsv2.get。它们具有与Google Play API相似的接口,有助于简化应用内购买 (IAP) 后端的收据验证流程。
有关适用于亚马逊应用商店计费兼容性的RVS的更多详细信息,请参阅适用于消费品和权利的RVS以及适用于订阅的RVS。
💡 提示:使用动态应用测试服务,针对一组选定用户在实际生产环境中进行应用测试。
如需了解详情,请查阅技术文档。
截至2023年10月31日的更新:
如果您的应用目前通过Google Play In-app Billing提供订阅,则现在无需重构代码即可亚马逊应用商店上线!
除了消费品和权利之外,您现在还可以通过亚马逊应用商店计费兼容性SDK向客户提供订阅。该SDK可以通过平行API方法提高计算流程的效率,从而减少从Android移植到亚马逊Fire OS的工作量。
功能比较表格
下表显示了Google Play结算库、Appstore SDK以及亚马逊应用商店计费兼容性SDK之间的功能比较。
要在应用内添加订阅,您需要在开发者控制台创建订阅方案。如需了解详情,请查阅技术文档。
之前发布于2023年3月15日:
您是否已使用支持Google Play应用内计费的Android应用?使用亚马逊应用商店计费兼容性SDK,将可简化移植具有Google Play结算库(IAB)要求的应用。若您的应用经由Google Play对消费品和权利提供应用内购买,则现在可在亚马逊应用商店上发布该应用,也无需重构代码!
若您是亚马逊应用商店的新手,敬请注意,Android应用现在能够为Fire OS上的亚马逊客户与亚马逊应用商店计费兼容性SDK集成。
如果比较SDK,您会注意到在Google应用内计费(IAB)和亚马逊的应用内购买(IAP)API存在数项差异。为了减少将应用移植到亚马逊应用商店所需的时间和精力投入,我们构建了亚马逊应用商店计费兼容性SDK,以作为将IAB移植到Fire OS的解决方案。若您已经集成Google Play应用内计费库,只需要进行极少的改动,即可完成移植。
为了解决API签名和功能上的差异所带来的问题,我们以与Google应用内计费(IAB)功能并行的方式开发了这些API。我们的终端节点处理相同的参数并且返回预期的值和计费功能。我们的目标在于,一旦您将购买库名称从IAB编辑为IAP,您的应用就可以访问我们的全部功能。具体而言,您需要通过找出所有使用com.android.billingclient.api前缀之处并将其替换为com.amazon.device.iap.billingclient.api前缀,更新应用代码库中的所有Google Play Billing导入,以便使用Appstore SDK导入。
以下示例代码展示了如何在Appstore SDK的AndroidManifest.xml文件中添加BillingResponseReceiver
。
<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>
一旦移植了SDK依赖项,就可以将BillingClient
实例初始化。
private PurchasesUpdatedListener purchasesUpdatedListener = new PurchasesUpdatedListener() {
@Override
public void onPurchasesUpdated(BillingResult billingResult, List<Purchase> purchases) {
// 待实现
}
};
private BillingClient billingClient = BillingClient.newBuilder(context)
.setListener(purchasesUpdatedListener)
.enablePendingPurchases()
.build();
现在两个应用商店在启动购买流程方面就有了相同API:
1. querySkuDetailsAsync()
- 除了SKU类型外,querySkuDetailsAsync API还会从亚马逊开发者控制台检索商品。
2. launchBillingFlow()
- SDK支持在应用的主线程中为每个应用内购买请求购买一个产品。
3. queryPurchasesAsync()
- 将返回已购买商品的列表。
4. consumeAsync()
- 此方法专门用于标记消费品,而acknowledgePurchase()
则用于跟踪权利的交付。
下载亚马逊应用商店计费兼容性SDK,下载内容包括Appstore SDK JAR文件以及API文档。请按照分步骤指南进行操作。