第24章 支払い用のクレジットカードゲートウェイ

3scale API プロバイダーは、API に対するサブスクリプションを収益化するために、クレジットカード用の支払いゲートウェイを定義することができます。

24.1. 3scale でサポートされるクレジットカードゲートウェイ

3scale では、クレジットカードによる支払いに関して以下の支払いゲートウェイとのインテグレーションが提供されます。

  • Braintree
  • Stripe

クレジットカードデータを収集する場合、オンライン支払いサービスは委任契約を表示する必要があります。委任契約は、デビットの支払いのために顧客がお客様に提示した許可の記録です。委任契約には、今後のサービスに対する支払いに、指定した支払い方法が使用されることを明確に記載する必要があります。Stripe および Braintree の委任契約の詳細は、その他のリソースに記載のそれぞれの支払いゲートウェイの外部ドキュメントリンクを参照してください。

その他のリソース

24.2. クレジットカードゲートウェイとしての Stripe の設定

3scale API プロバイダーとして、Stripe を支払いゲートウェイとして管理ポータルおよびデベロッパーポータルを設定し、クレジットカードゲートウェイとして Stripe を使用して API に対するサブスクリプションからの支払いを受け取ります。

前提条件

  • Stripe のアカウントが必要です。
  • Stripe の管理者の権限があること。

手順

Stripe を支払いゲートウェイとして 3scale を設定するには、以下の手順に従います。

3scale 管理ポータルでの Billing API スコープを設定したアクセストークンの生成

  1. 3scale 管理ポータルで、Account Settings > Personal > Tokens の順に移動します。
  2. Billing API スコープを設定して 読み取り/書き込み のトークンを作成します。

    1. Add Access Token をクリックします。
    2. トークンの名前を指定します。
    3. スコープに Billing API を選択します。
    4. パーミッションレベルに 読み取り/書き込み を選択します。
    5. Create Access token をクリックします。
    6. アクセストークンをコピーします。

      • アクセストークンをファイルテキストにコピーしてください。これ以降アクセストークンは表示されません。
    7. トークンの生成を完了するには、I have copied the token をクリックします。

手順に戻る

Stripe からのキーおよび Webhook シークレットの取得

Stripe アカウントで、Secret Key および Publishable Key を取得します。

  1. Stripe ダッシュボードを開きます。
  2. Stripe のドキュメントの手順に従って、API キーを見つけ ます。
  3. Secret Key および Publishable Key をコピーします。

引き続き、Stripe アカウントで Webhook Signing Secret を作成します。

  1. Developers > Webhooks の順に移動します。
  2. Add endpoint をクリックします。
  3. 以下のエンドポイント URL を入力します。

    https://<Your-provider-admin-domain>/api/payment_callbacks/stripe_callbacks?access_token=<value-of-access-token>
  4. Events to sendpayment_intent.succeeded を追加します。
  5. Add endpoint をクリックします。
  6. クリックして作成した Webhook の署名シークレットを表示し、このシークレットを書き留めます。これは Webhook Signing Secret です。

手順に戻る

3scale 管理ポータルでの課金の設定

3scale 管理ポータルで以下を行います。

  1. Audience > Billing > Charging & Gateway の順に移動します。
  2. Charging enabled を選択し、Save をクリックします。
  3. Credit card gateway > Gateway で、Stripe をゲートウェイとして選択します。
  4. Stripe からのキーおよび Webhook シークレットの取得で Stripe アカウントから取得した Secret KeyPublishable Key、および Webhook Signing Secret を追加します。
  5. Save をクリックします。

手順に戻る

3scale デベロッパーポータルでのクレジットカード情報の編集

  1. 開発者アカウントを使用して 3scale デベロッパーポータルにログインします。
  2. Settings > Credit Card Details の順に移動します。
  3. クレジットカード情報 (クレジットカード番号、有効期限、および CVC) を追加します。
  4. Save details をクリックします。

手順に戻る

unsuccessfully charged メールレスポンスのテキストの更新

SCA 支払いの修正に関連して、invoice_messenger_unsuccessfully_charged_for_buyer.text.liquid メールのテキストには、3scale 2.10 での手動更新が必要です。

  1. 3scale 管理ポータルで Audience > Messages > Email Templates の順に移動します。
  2. Invoice charge failure for buyer with retry を選択します。
  3. Override をクリックします。
  4. テンプレートのメッセージを更新します。以下は、課金に失敗した場合のメールレスポンスで使用される完全なテキストです。

    Dear {{ account.name }},
    
    Thank you for using our service.
    
    We're sorry to inform you that your last payment was declined.
    This may have been caused by a few common reasons:
    
    - A new authentication policy enforced by your bank
    - An expired credit card
    - Insufficient funds on the account
    
    To continue using your service, verify the status of your credit card and update or re-enter the credit card details at {{payment_url}}.
    
    If you need help, don't hesitate to contact us at {{ provider.finance_support_email }}.
    
    Best regards,
    The {{ provider.name }} API Team
  5. Create Email Template をクリックします。

上記の手順により、unsuccessfully charged メールレスポンスのメールテンプレートを更新しました。

手順に戻る

(オプション) デベロッパーポータルで拒否された請求書の支払いの許可

デベロッパーポータルで拒否された請求書の支払いを許可する必要がある場合には、管理ポータルで請求書テンプレートを更新することができます。以下の手順は、デベロッパーポータルの既存のインスタンス用であることに留意してください。

  1. 3scale 管理ポータルで Audience > Developer Portal > Content の順に移動します。
  2. Root > Invoices > Show template の順に移動して編集を行います。
  3. コードの以下の行を編集します。

    <a href="{{ urls.invoices }}">
      <i class="fa fa-chevron-left"></i>
        Cancel
        </a>
        {{ invoice.period_begin | date: '%B, %Y' }} Invoice

    置き換えるスニペットを以下に示します。

    <div class="clearfix">
      <a href="{{ urls.invoices }}">
        <i class="fa fa-chevron-left"></i>
          Cancel
        </a>
        {{ invoice.period_begin | date: '%B, %Y' }} Invoice
        {% if invoice.pay_now? %}
          <a href="{{invoice.url}}/payment" class="pull-right btn btn-success pay-invoice-btn">Pay invoice</a>
        {% endif %}
    </div>

手順に戻る

その他のリソース

24.3. Braintree インテグレーション

API の使用に対する課金を行うために Braintree ゲートウェイを設定する手順を以下に示します。

24.3.1. Braintree からの API キーの取得

Braintree のアカウントを作成する必要があります。Gateway および Merchant アカウントならびに Vault が必要です。オプションとして、支払い方法として American Express カードを許可する選択が可能です。

まず初めに、Braintree アカウントにログインします。次に、Account > MyUser セクションでご自分の API キーを探します。

Braintree Settings

API キーのページではまだ秘密鍵は非表示の状態なので、表示するオプションを選択します。

Braintree keys

最終的に、公開鍵、秘密鍵、および業者 ID が得られます。これらの情報が 3scale の請求設定で必要です。

Braintree keys

24.3.2. 3scale 設定の定義

これらの API キーの使用を開始するように 3scale を設定する必要があります。そのためには、3scale 管理ポータルにログインし、Audience > Billing > Charging & Gateway の順に移動します。

請求のページで指定した通貨のタイプが、Braintree の業者アカウントで使用される通貨のタイプと一致するようにしてください。

Billing

Charging enabled のチェックボックスが選択されていない場合には、選択して Save をクリックします。

Billing charging enabled

ページ最下部近くの Gateway セクションに、ドロップダウンが表示されるはずです。それを Braintree (Blue Platform) に変更します。

Billing Gateway

ドロップダウンの下のフォームが変わり、2 つのフィールドが表示されるはずです。Braintree のキーを入力し、Save をクリックします。

Ogone billing gateway

支払いゲートウェイを変更すると、いくつかの警告が表示される場合があります。これは想定される状況です。表示されたら、警告を読んで了承してください。

これで、ユーザーは Braintree ゲートウェイを使用して費用を支払うことができるはずです。

注記

Braintree からのデータを 3scale のデータとマッピングするには、Braintree フィールド customer.id を使用することができます (構成は 3scale-[PROVIDER_ID]-[DEVELOPER_ACCOUNT_ID])。

24.3.2.1. トラブルシューティング

アカウントがサンドボックスモードにあり、何らかの問題が発生した場合には、実稼働モードに変更する必要があります。