Google Play請求サービスからAppstore SDKへの移行
このガイドでは、アプリをGoogle Play請求サービスからAppstore SDKアプリ内課金(IAP)APIに移行する方法を説明します。その他の移植ソリューションについては、Google Play請求サービスからの移行を参照してください。
- 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をダウンロードして構成します。
- Appstore SDK IAPをサポートするようにAndroidManifest.xmlファイルを構成します。
- 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
により、Amazonクライアントからのインテントの伝達をアプリが確実に取得できるようになります。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を仲介するロジックを実装する
アプリがどちらでホストされる場合でも、アプリには同じコードベースを使用することができます。AmazonアプリストアとGoogle Playのどちらからダウンロードされたかを判定するロジックをアプリに追加します。アプリのダウンロード元に応じて、IAPまたはGoogle Play請求サービスの適切なメソッドを実行します。
次のコード例では、パッケージがGoogle PlayとAmazonアプリストアのどちらからインストールされたかを判定します。
PackageManager pkgManager = context.getPackageManager();
try {
String installerPackageName = pkgManager.getInstallSourceInfo(context.getPackageName()).getInstallingPackageName();
} catch (PackageManager.NameNotFoundException e) {
// Handle exception
}
if (installerPackageName.startsWith("com.amazon")) {
// 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:アプリをテストする
Appstore SDKを組み込んだアプリをテストするには、App Testerツールをダウンロードしてインストールします。アプリ内課金(IAP)のテストについてで説明されている手順とリンクに従って、App Testerをインストールして使用してください。
アプリをローカルでテストした後は、ライブアプリテストサービスを使用して、特定のユーザーグループを対象に本番環境でアプリのベータテストを行うことができます。