
Twilio PayでStripe決済を試してみた
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
私は仕事で決済サービスに関わることがあり、Stripeにも関わったことがあるのですが、Twilio PayがStripeに対応していることを知りまして試してみました。
試すにあたっては、下記の記事を参考と言いますか、そのまま手順を追って設定するだけで無事テストができました。
ですので、この記事の内容としては私も同じように試してみたらできました、といったものになります。
それにしても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にはテストモードと本番モードがあり、今回はテストをするだけですので、MODEはtestを選択します。
デフォルト値がそのようになっております。
Twilio PayのStripe Connectへ自身のStripeアカウントを接続
Connect with Stripeをクリックします。

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

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

ログインが完了すると、Twilioの画面に戻ってきます。
画面上のSTATUSがConnected 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に記載した文字列が読み上げられますので、下記に記載されているテスト用のクレカ番号を入力します。
- Test card numbers and tokens
Stripeダッシュボード上で確認
ダッシュボード上で、テストデータの表示中を選択して、メニューの支払いを選択します。
すると50円の決済がされていることが確認できます。

ちなみに成功欄に出ている決済なので、キャプチャ処理まで完了しているということになります。
(オーソリ確保済みではありません)
おわりに
今回は、Twilio PayによってStripeを使った決済をサクッと始められそうなことが確認できました。
触ってみて下記のことが気になりましたので、確認が取れましたらブログにしたいと思います。
- エラー発生時の処理
- Stripe側にCustomerを登録できる場合、IVR認証を行なって顧客を特定できれば、Stripeに登録されているカード(トークン)を使って決済が可能になるのかどうか?
- キャプチャではなく、オーソリだけすることは可能かどうか? など






