更新日:2024年5月21日
Appstore請求サービス対応SDK用のレシート検証サービス(RVS)を使用できるようになりました。このRVSには、Google Play APIと同様のインターフェイスを備えた2つのRESTful API(purchases.products.getとpurchases.subscriptionsv2.get)が用意されており、アプリ内課金(IAP)のバックエンドのレシート検証プロセスを効率化できます。
Appstore請求サービス対応用RVSの詳細については、消費型アイテムおよび非消費型アイテム用RVSと定期購入型アイテム用RVSを参照してください。
ヒント: ライブアプリテストサービスを使用して、特定のユーザーグループを対象に本番環境でアプリをテストできます。
詳細については、テクニカルドキュメントを参照してください。
更新日:2023年10月31日
Amazonアプリストアでは、Google Playのアプリ内課金対象定期購入型アイテムをご利用の場合、既存のコードをリファクタリングせずにアプリを配信できるようになりました。
これにより消費型アイテム、非消費型アイテムに加え、定期購入型アイテムも、Appstore請求サービス対応SDKを使用してユーザーに提供することが可能になりました。SDKを使用することで、並列APIアプローチによって請求フローが効率化され、AndroidからAmazon Fire OSへ移植する際の労力を軽減できます。
機能の比較一覧
次の表は、Google Play Billing Library、Appstore SDK、Appstore請求サービス対応SDKの機能を比較したものです。
アプリに定期購入型アイテムを追加するには、開発者コンソールで定期購入型アイテムのプランを作成する必要があります。詳細については、テクニカルドキュメントを参照してください。
※下記2023年3月15日に公開された投稿
既存のAndroidアプリでGoogle Playアプリ内課金を利用している場合、 Google Play請求サービス対応Appstore SDKを使用すると、Google Play Billing Library(IAB)の要件が適用されるアプリの移植が容易になります。消費型アイテムおよび非消費型アイテムのアプリ内課金をGoogle Play経由で提供するアプリであれば、コードをリファクタリングすることなく、すぐにAmazonアプリストアへの移植を開始できます。
Amazonアプリストア向けのアプリ開発が初めての場合、Fire OSのAmazonユーザー向けに、Google Play請求サービス対応Appstore SDKをAndroidアプリに統合できます。
SDKを比較すると、Google Playアプリ内課金(IAB)APIとAmazonアプリ内課金(IAP)APIにはいくつかの違いがあります。Amazonアプリストアへの移植に費やす時間と労力を軽減するために、Amazonでは、IABをFire OSに移植するためのソリューションとして、Google Play請求サービス対応Appstore SDKを開発しました。アプリにGoogle Play Billing Libraryが既に統合されている場合、最小限の変更でアプリをAmazonアプリストアに移植できます。
APIの署名や機能の違いを緩和するために、Amazonは、Googleアプリ内課金(IAB)と同様に機能するAPIを開発しました。エンドポイントは同じパラメーターを処理し、予期された値と請求機能を返します。課金ライブラリ名をIABからIAPに変更すれば、アプリがすべての機能にアクセスできるようにすることを目標としています。具体的には、アプリのコードベースでAppstore SDKのインポートを使用するようにGoogle Play請求サービスのインポートをすべて更新します。そのためには、使用されているcom.android.billingclient.apiプレフィックスをすべて検索し、com.amazon.device.iap.billingclient.apiプレフィックスに置き換えます。
次のコード例は、BillingResponseReceiver
をAppstore SDK用のAndroidManifest.xmlファイルに追加する方法を示しています。
<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()
- QuerySkuDetailsAsync APIは、Amazon開発者コンソールからSKUのタイプに加えてアイテムを取得します。
2. launchBillingFlow()
- Appstore SDKは、アプリのメインスレッドでの1回のアプリ内課金リクエストにつき1つの商品の購入をサポートしています。
3. queryPurchasesAsync()
- 購入済みアイテムのリストを返します。
4. consumeAsync()
- 消費型アイテムをマークするためのメソッドです。acknowledgePurchase()
は非消費型アイテムの配信を追跡します。
Google Play請求サービス対応Appstore SDK(Appstore SDK JARファイルとAPIドキュメントが含まれています)をダウンロードし、手順に従ってください。