開発者コンソール

Google Play請求サービスからAppstore SDKへの移行

Google Play請求サービスからAppstore SDKへの移行

このガイドでは、アプリをGoogle Play請求サービスからAppstore SDKアプリ内課金(IAP)APIに移行する方法を説明します。その他の移植ソリューションについては、Google Play請求サービスからの移行を参照してください。

Appstore SDKへの移行

Google Play請求サービスからAppstore SDKに移行するには、次の手順に従います。

  1. Appstore SDKをダウンロードして構成します。
  2. Appstore SDK IAPをサポートするようにAndroidManifest.xmlファイルを構成します。
  3. Google Play請求サービスとIAPを仲介するロジックをアプリに実装します。
  4. Appstore SDK IAP APIを追加して実装します。
  5. アプリをテストします。

以下のセクションでは、これらの手順について説明します。

手順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以降を対象としている場合は、次の例に示すように、MainActivityResponseReceiverandroid: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をインストールして使用してください。

アプリをローカルでテストした後は、ライブアプリテストサービスを使用して、特定のユーザーグループを対象に本番環境でアプリのベータテストを行うことができます。