Twilio PayでStripe決済を試してみた

私は仕事で決済サービスに関わることがあり、Stripeにも関わったことがあるのですが、Twilio PayがStripeに対応していることを知りまして試してみました。

試すにあたっては、下記の記事を参考と言いますか、そのまま手順を追って設定するだけで無事テストができました。

StripeとTwilio Payで電話決済

ですので、この記事の内容としては私も同じように試してみたらできました、といったものになります。

それにしてもTwilioの<Pay>Connectorsのおかけで、ちょっとの設定でStripeを使った電話での決済ができるということを確認できました。

テクノロジーの進化はすごいです。

前提

  • Twilioアカウントが開設済みであること
  • 電話番号を1つ取得済みであること
  • Stripeアカウントを開設済みであること

設定手順

<Pay>Connectors(Stripe)のインストール

Twilioの管理画面にログインし、メニューのProgrammable Voice > <Pay>Connectorsを選択します。

PCI Modeというものを有効にする必要があるので、画面上のリンクをクリックします。

Enable PCI Modeをクリックします。

内容についてAcceptします。

PCI ModeのSTATUS Enabledになっていることを確認したら、画面下にあるSaveボタンを押します。

もう一度、メニューのProgrammable Voice > <Pay>Connectorsを選択します。 Stripe Connectorを選択します。

インストールをクリックします。

確認画面が出るので、同意してインストールします。

<Pay>Connectors(Stripe)の設定

ユニーク名Defaultという値にしておくと、<Pay>Connectorsの設定を変更しないで済むそうなので、そのようにしました。 あと、Stripeにはテストモードと本番モードがあり、今回はテストをするだけですので、MODEtestを選択します。 デフォルト値がそのようになっております。

Twilio PayのStripe Connectへ自身のStripeアカウントを接続

Connect with Stripeをクリックします。

Stripeの画面にリダイレクトします。

これはStripe Connectというプラットフォームサービスへ、自身(Twilio Payの利用者(事業会社など))のStripeアカウントを参加させるための手続きになります。

Stripeを使用してサインインをクリックします。

Stripeへのログイン画面が表示されますので、自身のアカウント情報を入力して、ログインします。

ログインが完了すると、Twilioの画面に戻ってきます。

画面上のSTATUSConnected in Test Modeになっていることを確認します。 これでStripeアカウントの接続操作は完了です。

TwiML Binsの作成

TwilioのメニューのDEVELOPER TOOLS > Runtimeを選択します。

遷移先画面上のメニューのTwiML Binsを選択します。

私の環境では、何も作成しないため、画面上のCreate New TwiML Binをクリックします。

任意の名前を入力して、下記の内容を貼り付けます。 テストモードなので、実際に決済処理は走らないですが、決済額は50円にしてます。 (chargeAmount="50"の部分です)

Stripeは決済に紐づく情報をMetadataとしてJSON型で自由に設定できるのですが、事前に固定値を設定しておくといったことはできないようです。

<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Pay chargeAmount="50" currency="jpy" postalCode="false" action="https://">
    <Prompt for="payment-card-number">
        <Say language="ja-JP" voice="Polly.Mizuki">クレジットカード番号を入力してくださ</Say>
    </Prompt>
    <Prompt for="expiration-date">
        <Say language="ja-JP" voice="Polly.Mizuki">有効期限を、月と年のそれぞれ2桁の数字で入力してください</Say>
    </Prompt>
    <Prompt for="security-code">
        <Say language="ja-JP" voice="Polly.Mizuki">セキュリティコードを入力してください。セキュリティコードは、カードの裏面に記載されている3桁のコードです。</Say>
    </Prompt>
  </Pay>
</Response>

入力したら、画面下のCreateボタンを押します。

電話番号へTwiMLの紐付け

作成したTwiMLが電話番号へ着信した際に呼び出されるように設定します。

TwilioのメニューのSUPER NETWORK > Phone Numbersを選択します。

TwiMLを紐付ける電話番号を選択します。

設定画面上の通話着信時TwiMLを選択し、作成したTwiMLを選択します。 選択したら、画面下の保存ボタンを押します。

以上で設定は完了です。

冒頭で申し上げた通り、ほぼ設定のみで済みます。

テストしてみる

電話番号に発信すると、TwiMLに記載した文字列が読み上げられますので、下記に記載されているテスト用のクレカ番号を入力します。

Stripeダッシュボード上で確認

ダッシュボード上で、テストデータの表示中を選択して、メニューの支払いを選択します。 すると50円の決済がされていることが確認できます。

ちなみに成功欄に出ている決済なので、キャプチャ処理まで完了しているということになります。 (オーソリ確保済みではありません)

おわりに

今回は、Twilio PayによってStripeを使った決済をサクッと始められそうなことが確認できました。

触ってみて下記のことが気になりましたので、確認が取れましたらブログにしたいと思います。

  • エラー発生時の処理
  • Stripe側にCustomerを登録できる場合、IVR認証を行なって顧客を特定できれば、Stripeに登録されているカード(トークン)を使って決済が可能になるのかどうか?
  • キャプチャではなく、オーソリだけすることは可能かどうか? など