ウェブアプリ向けIAP APIについて


ウェブアプリ向けIAP APIについて

ウェブアプリにアプリ内課金(IAP)機能を追加できます。Amazon Servicesライブラリは、シンプルなAPIをアプリに提供し、ネイティブのIAP APIとのやり取りを管理します。

IAP APIの概要

ウェブアプリ用のアプリ内課金は、次の3つの主要な要素で構成されます。

  • Amazon Servicesライブラリ - ウェブアプリとAmazonのネイティブなIAP APIとのやり取りを管理するJavaScriptクラスです。
  • 購入ハンドラー - 開発者は、Amazon Servicesライブラリからのコールバックに応答するメソッドをウェブアプリに実装します。
  • レシート検証サービス - ユーザーの購入レシートを検証するために使用できるAmazonのサービスです。

アプリ内課金APIをアプリに組み込むには、以下を実行します。

  • 購入ハンドラーをAmazon Servicesライブラリに登録する。
  • アプリ内の適切な場所でIAP APIのメソッドを呼び出す。
  • コールバックメソッドに応答する。

コールバックは、アプリによってトリガーされる場合もあれば、非同期に呼び出される場合もあります。アプリでは、どちらの場合も適切に処理する必要があります。アプリはステートレスになるように構成し、特定の実行状態に依存しないようにしてください。たとえば、アプリの前回のセッションで購入リクエストが開始されたものの、アプリが終了されたためにリクエストが配信されなかったとします。アプリが再起動して購入ハンドラーを登録すると、キューに入っていた購入が新しいセッションに配信されます。

APIフロー

次のリストは、Amazon Servicesライブラリを使用するウェブアプリのフローをまとめたものです。リストの項目番号は、後に示す図の引き出し線の番号に対応しています。

  1. 購入ハンドラーのメソッドを実装する。
  2. ​​​購入ハンドラーをAmazon Servicesライブラリに登録する。
  3. アプリでアプリ内課金を開始する。
  4. 購入ハンドラーのメソッドでレスポンス通知が処理される。

    ここまでが必要最小限の手順になります。実際の実装には、次の手順を追加することをお勧めします。

  5. アプリでレシートを保持する。
  6. アプリからアプリサーバーにレシートを送信する。
  7. アプリサーバーが、検証のためにレシートをAmazonレシート検証サービス(RVS)に送信し、レスポンスを受信する。
  8. アプリサーバーからアプリにレスポンスを送信する。
  9. アプリで結果を保持する。

Amazon Servicesライブラリ

Amazon Servicesライブラリは、アプリ内課金APIに不可欠な要素です。アプリ内課金APIを使用して購入プロセスを開始すると、ライブラリでAmazonのユーザーインターフェイスが表示され、トランザクションが実行されます。

アプリにJavaScriptライブラリを組み込むには、ウェブアプリのメインHTMLファイルに次の<script>タグを追加します。

<script src="https://resources.amazonwebapps.com/v1/latest/Amazon-Web-App-API.min.js">
</script>

Amazonアプリ内課金APIを使用するコードでは、Amazon HTML5フレームワークによって生成されるamazonPlatformReadyイベントを待機する必要があります。

document.addEventListener('amazonPlatformReady', function () {
    if(amzn_wa.IAP) {
        //APIを使用するコードをここに記述します
    }
});

ユーザーがAmazonに認証されていないときにアプリからIAP APIを呼び出すと、Amazon Servicesライブラリがユーザー認証を行います。優れたユーザーエクスペリエンスを確実に提供するために、また、Amazonサービスへのユーザーのログインを確認するために、アプリが起動したらすぐにユーザーの資格をチェックしてください。

ライブラリとAmazonのサービスには、購入ワークフローのあらゆる要素に対応するユーザーインターフェイスが用意されています。購入可能アイテムの表示、1-Click購入そのものの実行、前提条件やエラー状況の処理を行うロジックが含まれています。

購入に失敗した場合は、Amazonクライアントからユーザーにメッセージが表示されます。このため、アプリではメッセージを表示しないでください。たとえば、有効なクレジットカードが登録されていない場合、ユーザーは、ライブラリの処理により支払い情報の更新ページにリダイレクトされます。購入フローに関するユーザーへの確認画面やそのほかのインタースティシャルダイアログを開発者が用意する必要はありません。