クーポンを使用した定期購読の実装方法
By Stripe Developers · 2024-03-11
この記事では、ストライプの定期購読を利用するビジネスが、サインアップフローにクーポンを実装する方法について説明します。ストライプデベロッパーオフィスアワーの新エディションで、定期購読機能を活用して顧客に割引を提供する方法を学びましょう。
ストライプデベロッパーオフィスアワーの新エディション
- こんにちは、私はアリです。今回はストライプデベロッパーオフィスアワーの別のエディションです。
- 現在、我々は前例のない時代を経験しており、ビジネスは急速に変化する状況に迅速に対応しなければなりません。
- ストライプでは、私たちの優先事項は、お客様へのサービスを継続できるようにし、支払いインフラストラクチャが安定した状態を維持できるようにすることです。
- 特に継続的なビジネスモデルを持つビジネスは、お客様に今後の数ヶ月にわたる安心感と利益を提供したいと望んでいます。
- そこで今日は、ストライプの定期購読を利用するビジネスが、サインアップフローにクーポンを実装する方法について説明します。
- まず、ストライプエレメントを使用し、定期購読を作成するWeb統合を構築します。その後、統合にクーポンのサポートを追加し、お客様がサインアップ時にクーポンコードを入力し、定期購読に割引を受けることができるようにします。
- ストライプデベロッパーオフィスアワーに再びようこそ。私はアリです。さあ始めましょう。
- まず、Boilerplateコードを設定するためにtraxion lyを使用します。私の手元にはすでにストライプCLIがセットアップされているので、stripe samples createを実行します。
- サーバーサイドの言語を尋ねられますので、Rubyを選択します。
- 新しいフォルダが作成されました。このフォルダには、クライアントサイドの実装用のサブフォルダとサーバーの実装用のサブフォルダが含まれています。
- このディレクトリをVisual Studio Codeで開きましょう。
- ここにはHTMLとJavaScriptファイルが含まれています。そして、サーバーサイドにはserver.rbファイルがあります。このファイルには、stripe gem、Sinatra gem、そして.envファイルを取り込むコードが含まれています。
- バンドルインストールを行い、gemをインストールします。次に、index.htmlファイルを開き、サーバーを実行し、ローカルウェブサーバーでページを表示しました。
- 次のステップでは、index.rbファイルにstripeエレメントを追加し、カードエレメントのインスタンスを作成し、サブスクライブボタンを設定します。
- クライアントサイドからサーバーサイドにトークン化された支払い方法を送信し、それを処理してストライプ顧客にアタッチし、ストライプ定期購読を作成します。
- カスタムCSSファイルを作成し、それをHTMLファイルにリンクし、UI要素を識別できるようにします。
- エラーラベルを追加して、UIでエラーを表示できるようにします。
ストライプデベロッパーオフィスアワーの新エディション
Stripe JS3のスクリプトを追加する
- この統合の開発中にデバッグしやすいように、要素を追加していきます。
- まず、カード要素用のdiv、購読ボタン、矢印ラベルがあります。
- ここにStripe JS3を参照するためのスクリプトを追加しましょう。
- stripe js3を参照し、それがインスタンスされる方法です。
- 次に、このファイル内にJavaScriptのスクリプトタグを追加します。
- ここでは、初期化し、要素を作成し、カード要素をマウントするためのコメントを残します。
- create more stripeを呼び出し、stripeオブジェクトを参照し、stripeの公開キーを渡します。
- 要素を作成したいので、stripe.elementsという関数を呼び出します。
- 最後に、このstripeのインスタンスからカード要素を作成したいので、その部分を行います。
- これで、カード要素のインスタンスができました。
- 最後に、マウントする必要があるので、cardElement.mountとし、マウントする要素のIDを指定します。
- ページをリフレッシュすると、Stripe要素が表示され、カード番号を入力できるようになります。
- さらに、購読ボタンもありますが、現時点では機能はありません。
- 次に、購読ボタンとエラーラベルにボタンハンドラを追加しましょう。
- 購読ボタンとエラーラベルへの参照を作成します。
- 購読ボタンにイベントリスナを追加し、クリック時に関数を実行するように設定します。
- 購読ボタンがクリックされたときに、カード要素に入力されたカードをトークン化したいとします。
- Stripe.jsを呼び出し、要素を作成し、支払い方法を作成します。
- 結果にエラーがある場合は、結果のエラーメッセージを表示します。
- 成功した場合は、支払い方法IDをログ出力します。
- 支払い方法がトークン化され、Stripeで支払い方法として認識されます。
- このIDをサーバーサイドのエンドポイントに投稿する必要があります。
- サーバーサイドのエンドポイントで顧客に関連付け、その顧客で購読を作成します。
Stripe JS3のスクリプトを追加する
Rubyでの定期支払いの処理
- ストライプのAPIを使用してRubyで定期支払いの処理を行います。
- 最初に、パラメータ名を定義し、支払い方法IDを取得します。
- 次に、エラーハンドリングのためのtry-catchブロックを作成します。
- 顧客を作成するため、stripe.customer.createメソッドを使用します。
- 次に、作成した顧客に支払い方法をアタッチし、説明を追加します。
- 顧客が作成されたら、そのIDを出力します。
- 顧客が作成されたら、サブスクリプションを作成します。
- サブスクリプションを作成するには、顧客のID、デフォルト支払い方法、およびサブスクリプションアイテムを指定する必要があります。
- 作成したサブスクリプションのIDを出力し、ステータス200を返します。
- エラーハンドリングも追加し、エラーメッセージをログに記録して返します。
- 成功した場合はサブスクリプションオブジェクトをJSON形式で返し、失敗した場合はエラーメッセージを返します。
- 最後に、成功した場合はサブスクリプションIDと最新の請求額を表示するページにリダイレクトします。
Rubyでの定期支払いの処理