購入保留機能の実装
購入の保留は、Amazon Kidsの子ども用プロフィールのユーザーがアプリまたはゲーム内でアプリ内課金(IAP)をリクエストした場合に発生します。子どもがアプリ内課金をリクエストすると、親に通知が送信されます。親はペアレントダッシュボードで購入を承認または却下できます。承認を待つ間、購入は保留状態になります。親がリクエストを承認すると、アプリでIAPを提供できます。購入保留フローの詳細については、購入の保留を参照してください。
購入の保留状態は、消費型アイテムと非消費型アイテムのIAPでサポートされます。定期購入型アイテムIAPは保留状態をサポートしていません。
購入の保留を有効にするには、購入の開始前に、アプリでPurchasingService.enablePendingPurchases()
メソッドを呼び出す必要があります。保留となるIAPをユーザーが開始すると、RequestStatus
がPENDING
のPurchaseResponse
が返されます。保留となるIAPを設定するコードの例を以下に示します。
アクティビティクラスで以下を実行します。
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PurchasingService.registerListener(...);
// アプリでPENDING RequestStatusを受け取るには、enablePendingPurchasesの呼び出しが必要です
PurchasingService.enablePendingPurchases();
}
@Override
public void onResume() {
super.onResume();
PurchasingService.getPurchaseUpdates(...);
}
void requestInAppPurchase() {
PurchasingService.purchase(...)
}
}
PurchasingListener
の実装では、以下を実行します。
class MyListener implements PurchasingListener {
public void onPurchaseResponse(final PurchaseResponse response) {
if (response.getRequestStatus() == PurchaseResponse.RequestStatus.PENDING) {
// ここで中断して何もしないか、リクエストが保留中であることを示すモーダルを表示します。
// アプリにレスポンスを返す前に、Amazonアプリストアでも、リクエストが保留中であることを
// 示すモーダルがユーザーに表示されます。
}
}
// ...
}
Fireデバイスでは、購入が承認されるとユーザーがシステムから通知を受け取ります。したがって、購入リクエストのステータスをモニタリングしてください。リアルタイム通知(RTN)を使用するか、getPurchaseUpdates()
を定期的に呼び出して、購入ステータスの通知を受け取り、購入を完了する必要があります。getPurchaseUpdates()
の実装方法の詳細については、getPurchaseUpdatesメソッドの実装を参照してください。
購入が承認されると、RequestStatus
はSUCCESSFUL
に更新され、アプリは通常のロジックに従ってトランザクションを正常に完了させます。親が購入を拒否する、または購入リクエストの有効期限が切れるなど、購入が未承認の状態にある場合は、アプリでそれ以上のアクションを実行する必要はありません。未承認の場合、getPurchaseUpdates()
を呼び出しても、RTNからの通知や新しいトランザクションは発生しません。
消費型アイテムの購入保留機能を実装するサンプルアプリを確認するには、SDKの次のパスに移動します: Appstore_SDK_<version>/examples/SampleIAPConsumablesApp
。
非消費型アイテムの購入保留機能を実装するサンプルアプリを確認するには、SDKの次のパスに移動します: Appstore_SDK_<version>/examples/SampleIAPEntitlementsApp
。
関連リソース
- 購入保留機能のテスト
- 購入の保留の配信フロー
- Appstore SDK IAPの実装
- Amazon Kidsとは?
- Appstore SDKのダウンロード
- Appstore SDK APIリファレンス
Last updated: 2024年5月22日