タイトル通り、自作のalexaスキルに課金機能(以下スキル内商品)を実装したのでわかる範囲で書こうと思います。参考にしたサイトは下にリンクを貼ってあるので参照してください。
前提として、esaに上がっている川村先輩のalexa勉強会、入門編および初級編を修了しているものとしています。
概要としては、以下の通りです。
1.スキル内商品用のインテントの作成
2.スキル内商品の実装
3.コードを書くときに使うスキル内商品用のパラメーターと応答
1.スキル内商品用のインテントの作成
画像のように最低でも”課金をするためのインテント”と”課金を取りやめるためのインテント”の2つのインテントを用意します。”課金をするためのインテント”ではサンプル発話例として「課金をしたい」「追加機能を購入したい」といったフレーズを入れると良いかと思います。”課金を取りやめるためのインテント”では「返金して」「課金を取りやめる」といったフレーズを入れましょう。
2.スキル内商品の実装
カスタムバーの下の方にあるスキル内商品のタブを選択します。
画面右上のスキル内商品を作成を選択し、商品の参照名と商品の種類を選択します。参照名はコードの中に組み込むものなのでユーザーには知られることはありません。設定が完了したら”スキル内商品を作成”を選択します。
次に商品の内容を編集していきます。
商品ID...あとでコードに記述することで商品とスキルを結びつけます。今は無視でOKです。
参照名...先ほど自分でつけた名前です。
サポートされる言語..."+新しい言語を追加"を選択します。自分が対応させたい言語を追加します。
上の画像のように必要事項を書いていきます。アイコンは持っていなければ矢印先のサイトからアイコンを作成することができます。
あとは商品の価格の設定、税金の種類、あとは審査の時の操作手順を書いていきます。価格の設定は日本でのみサービスを提供する場合はamazon.co.jpにチェックを入れて値段を設定しましょう。税金の種類は当てはまるものがなさそうだと感じたらソフトウェアでいいはずです。
全項目入力できたら保存しましょう。
3.コードを書くときに使うスキル内商品用のパラメーターと応答
コードについては以下のリンク3のgithubページを参照してください。ここではコードの中で登場するパラメーターと応答について書いていきます。詳しくはリンク2をご参照ください。
①productId...スキル内商品の商品Idです。
②referenceName...先ほど自分で設定したスキル内商品の参照名です。
③type...スキル内商品の種類です。(消費型or買い切り型orサブスクリプション型)
④name...商品名です。
⑤summary...スキル内商品内で規定した商品の説明です。
⑥entitled...スキル内商品が購入済みかどうかを表しています。ENTITLED(購入済み)、NOT_ENTITLED(未購入)のどちらかの値を返します。
⑦purchasable...スキル内商品がまだ購入可能かどうかを表しています。PURCHASABLE(購入可能)、NOT_PURCHASABLE(購入不可能)のどちらかの値を返します。
⑧activeEntitlementCount...ユーザーがスキル内商品を購入した回数を表します。消費型の場合はどんどん加算されていきますが、買い切りorサブスクリプション型の場合は常に1or0の値を返します。
⑨purchaseMode...テスト下での購入(TEST)か公開中のスキルでの購入(LIVE)かを表します。
購入処理後、JSONのINPUTに200が返されていれば正常に購入が完了しています。200以外の数字が返されている場合は何らかのエラーが出ています。それについても以下のリンクをご参照ください。
終わり。
リンク1: https://developer.amazon.com/ja/docs/in-skill-purchase/create-isp-dev-console.html
リンク2: https://developer.amazon.com/ja/docs/in-skill-purchase/in-skill-product-service.html
リンク3: https://github.com/alexa-labs/skill-sample-nodejs-simple-hello-world