コンテンツにスキップ
アカウントを作成
または
サインイン
Stripe ドキュメントのロゴ
/
AI に質問する
アカウントを作成
サインイン
始める
支払い
売上
プラットフォームおよびマーケットプレイス
資金管理
開発者向けのツール
概要
Stripe Payments について
構築済みのシステムをアップグレード
支払いの分析
オンライン決済
概要ユースケースを見つけるManaged Payments
Payment Links を使用する
決済ページを構築
高度なシステムを構築
アプリ内実装を構築
決済手段
決済手段を追加
    概要
    支払い方法の導入オプション
    ダッシュボードで支払い方法を管理
    決済手段のタイプ
    カード
    Stripe 残高で支払う
    仮想通貨
    銀行口座引き落とし
      ACH ダイレクトデビット
      Bacs ダイレクトデビット
      カナダのプレオーソリデビット
      オーストラリアの BECS ダイレクトデビット
        決済を受け付ける
        銀行情報の保存
      ニュージーランドの BECS ダイレクトデビット
      SEPA ダイレクトデビット
    銀行へのリダイレクト
    銀行振込
    クレジットトランスファー (Sources)
    後払い
    リアルタイム決済
    店舗支払い
    ウォレット
    国ごとに現地の支払い方法を有効化
    カスタムの決済手段
決済手段を管理
Link による購入の迅速化
支払いインターフェイス
Payment Links
Checkout
Web Elements
アプリ内 Elements
決済シナリオ
カスタムの決済フロー
柔軟なアクワイアリング
オーケストレーション
店頭支払い
端末
他の Stripe プロダクト
Financial Connections
仮想通貨
Climate
ホーム支払いAdd payment methodsBank debitsAustralia BECS Direct Debit

注

このページはまだ日本語ではご利用いただけません。より多くの言語で文書が閲覧できるように現在取り組んでいます。準備が整い次第、翻訳版を提供いたしますので、もう少しお待ちください。

オーストラリアの BECS Direct Debit 支払いを受け付ける

オーストラリアの BECS Direct Debit 支払いを受け付ける方法をご紹介します。

ページをコピー

仕組み

この決済手段についての詳細は、BECS ダイレクトデビットの概要をご覧ください。

オーストラリアの Stripe ユーザーは、Payment Element と Payment Intent を使用して、オーストラリアの銀行口座を持つ顧客からの BECS ダイレクトデビットによる決済を開始することができます。

注意

サーバー側での手動確定を使用する必要がある場合、またはお使いの実装で決済手段を別途表示する必要がある場合を除き、決済を受け付けるガイドに従うことをお勧めします。すでに Elements との連携が完了している場合は、Payment Element 移行ガイドをご覧ください。

Stripe の事前構築された BECS 支払い詳細の収集用 UI である AuBECSDebitForm を使用して、顧客の機密データを扱うことなく銀行情報を安全に収集できる支払いフォームを作成します。アプリでの BECS ダイレクトデビット支払いの受け付けは以下で構成されます。

  • 支払いを追跡するオブジェクトを作成する
  • 支払い方法の詳細と同意書承認を収集する
  • 支払いを処理するために Stripe に送信する

オーストラリアの Stripe ユーザーは、AuBECSDebitForm と PaymentIntent を使用して、オーストラリアの銀行口座を持つ顧客から BECS ダイレクトデビット支払いを受け付けることができます。

Stripe を設定する
サーバ側
クライアント側

サーバ側

この組み込みには、Stripe API と通信するエンドポイントがサーバ上に必要です。Stripe の公式ライブラリを使用して、サーバから Stripe API にアクセスします。

Command Line
Ruby
# Available as a gem sudo gem install stripe
Gemfile
Ruby
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

クライアント側

React Native SDK はオープンソースであり、詳細なドキュメントが提供されています。内部では、ネイティブの iOS および Android の SDK を使用します。Stripe の React Native SDK をインストールするには、プロジェクトのディレクトリーで (使用するパッケージマネージャーによって異なる) 次のいずれかのコマンドを実行します。

Command Line
yarn add @stripe/stripe-react-native

次に、その他の必要な依存関係をインストールします。

  • iOS の場合は、ios ディレクトリーに移動して pod install を実行し、必要なネイティブ依存関係もインストールします。
  • Android の場合は、依存関係をインストールする必要はありません。

Stripe の初期化

React Native アプリで Stripe を初期化するには、決済画面を StripeProvider コンポーネントでラップするか、initStripe 初期化メソッドを使用します。publishableKey の API 公開可能キーのみが必要です。次の例は、StripeProvider コンポーネントを使用して Stripe を初期化する方法を示しています。

import React, { useState, useEffect } from 'react'; import { StripeProvider } from '@stripe/stripe-react-native'; function App() { const [publishableKey, setPublishableKey] = useState(''); const fetchPublishableKey = async () => { const key = await fetchKey(); // fetch key from your server here setPublishableKey(key); }; useEffect(() => { fetchPublishableKey(); }, []); return ( <StripeProvider publishableKey={publishableKey} merchantIdentifier="merchant.identifier" // required for Apple Pay urlScheme="your-url-scheme" // required for 3D Secure and bank redirects > // Your app code here </StripeProvider> ); }

注

Use your API test keys while you test and develop, and your live mode keys when you publish your app.

支払い方法の詳細と同意書承認を収集する
クライアント側

SDK が提供するドロップイン UI コンポーネント AuBECSDebitForm を使用して、オーストラリアの BECS Direct Debit の支払い情報を安全に収集できます。AuBECSDebitForm は、顧客が名前、メールアドレス、BSB 番号、口座番号を入力するための UI を提供するほか、オーストラリアの BECS Direct Debit 規約を表示します。

画面に、お客様の会社名をプロパティとして指定し、AuBECSDebitForm コンポーネントを追加します。formStyle プロパティを指定することにより、お客様のアプリのデザインに合わせて AuBECSDebitForm をカスタマイズすることもできます。支払いを確定する際に、onComplete プロパティを使用してフォーム詳細を収集します。

function PaymentScreen() { const [formDetails, setFormDetails] = useState< AuBECSDebitFormComponent.FormDetails >(); return ( <View> <AuBECSDebitForm onComplete={(value) => setFormDetails(value)} companyName="Example Company Inc." formStyle={{ textColor: '#000000', fontSize: 22, placeholderColor: '#999999', }} /> <Button title="Pay" variant="primary" onPress={handlePayPress} /> </View> ); }

PaymentIntent を作成する
サーバー側

サーバー側

PaymentIntent (支払いインテント) は、顧客から支払いを回収するお客様の意図を表すオブジェクトです。PaymentIntent は、支払いプロセスのライフサイクルの各段階を追跡します。最初に、サーバーで PaymentIntent を作成し、回収する金額と aud 通貨を指定します (BECS ダイレクトデビットは他の通貨には対応していません)。すでに Payment Intents API を使用したシステムがある場合は、au_becs_debit を PaymentIntent の決済手段タイプのリストに追加します。

再利用するために BECS ダイレクトデビットの口座を保存するには、setup_future_usage パラメーターを off_session に設定します。BECS ダイレクトデビットはこのパラメーターの値として off_session のみを受け付けます。

Command Line
curl
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "amount"=1099 \ -d "setup_future_usage"="off_session" \ -d "currency"="aud" \ -d "customer"="{{CUSTOMER_ID}}" \ -d "payment_method_types[]"="au_becs_debit"

PaymentIntent の作成後に、Stripe は client_secret プロパティを含む PaymentIntent (支払いインテント) オブジェクトを返します。client secret をクライアント側に渡します。

警告

client secret を使用して、PaymentIntent で指定された金額を顧客に請求します。client secret は、ログに記録したり、URL に埋め込んだり、顧客以外の人に公開したりしないでください。

クライアント側

クライアント側で、サーバーの PaymentIntent をリクエストし、その client secret を保存します。

const fetchPaymentIntentClientSecret = async () => { const response = await fetch(`${API_URL}/create-payment-intent`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ currency: 'aud', payment_method_types: ['au_becs_debit'], }), }); const { clientSecret, error } = await response.json(); return { clientSecret, error }; };

Stripe に支払いを送信する
クライアント側

作成した PaymentIntent から client secret を取得し、confirmPayment をコールします。これにより、WebView が表示され、顧客はここから銀行の Web サイトまたはアプリで支払いを完了できます。完了後、支払い結果によって Promise が解決されます。

function PaymentScreen() { const { confirmPayment, loading } = useConfirmPayment(); const [formDetails, setFormDetails] = useState< AuBECSDebitFormComponent.FormDetails >(); const handlePayPress = async () => { const { error, paymentIntent } = await confirmPayment(clientSecret, { paymentMethodType: 'AuBecsDebit', paymentMethodData: { formDetails, } }); if (error) { Alert.alert(`Error code: ${error.code}`, error.message); console.log('Payment confirmation error', error.message); } else if (paymentIntent) { if (paymentIntent.status === PaymentIntents.Status.Processing) { Alert.alert( 'Processing', `The debit has been successfully submitted and is now processing.` ); } else if (paymentIntent.status === PaymentIntents.Status.Succeeded) { Alert.alert( 'Success', `The payment was confirmed successfully! currency: ${paymentIntent.currency}` ); } else { Alert.alert('Payment status:', paymentIntent.status); } } }; return ( <View> <AuBECSDebitForm onComplete={(value) => setFormDetails(value)} companyName="Example Company Inc." formStyle={{ textColor: '#000000', fontSize: 22, placeholderColor: '#999999', }} /> <Button title="Pay" variant="primary" onPress={handlePayPress} /> </View> ); }

PaymentIntent の成功を確認する
サーバー側

BECS Direct Debit is a delayed notification payment method, which means that funds aren’t immediately available. A BECS Direct Debit PaymentIntent typically remains in a processing state for 2 business days after submission to the BECS network. This submission happens once per day. Once the payment succeeds, the associated PaymentIntent status updates from processing to succeeded.

PaymentIntent ステータスが更新されると、以下のイベントが送信されます。

イベント説明次のステップ
payment_intent.processing顧客の支払いは、Stripe に正常に送信されました。開始された支払いが成功するか、失敗するかの結果を待ちます。
payment_intent.succeeded顧客の決済が成功しました。購入された商品またはサービスのフルフィルメントを行います。
payment_intent.payment_failed顧客の支払いが拒否されました。Contact the customer through email or push notification and request another payment method.

setup_future_usage および customer が設定されたため、支払いが processing 状態になると、PaymentMethod が Customer オブジェクトに関連付けられます。この関連付けは、支払いが最終的に成功しても失敗しても行われます。

ダイレクトデビットの試行が失敗すると、Stripe は、PaymentIntent オブジェクトが含まれた payment_intent.payment_failed イベントを送信します。PaymentIntent の last_payment_error 属性には、失敗の詳細を説明する code と message が含まれます。

失敗は、失敗した PaymentIntent に関連付けられた同意書について一時的なものであることも、最終的なものであることもあります。最終的な失敗である場合には、さらなる失敗の費用発生を回避するため、Stripe は同意書を取り消します。この状況が発生し、顧客に支払いをしてもらう必要がある場合には、お客様の責任で顧客に連絡し、銀行口座情報を再度収集して新しい同意書を改めて確立する必要があります。

以下の失敗コードが返された場合、Stripe は同意書のステータスを以下のように更新します。

失敗コード説明同意書のステータス
debit_not_authorized口座からの引き落としの制限または禁止により永続的なエラーが発生しました。顧客に連絡してください。inactive
account_closed口座が解約されたため永続的なエラーが発生しました。顧客に連絡してください。inactive
no_account指定された銀行情報に該当する口座が存在しないため、永続的なエラーが発生しました。顧客に連絡してください。inactive
refer_to_customer一時的なエラー (残高不足など) が発生しました。新しい同意書を収集せずに引き落としを再試行できます。active

Webhook を使用して支払いの成功または失敗を確認し、同意書が確立されて支払いが完了したか、または追加作業が必要かを顧客に通知することをお勧めします。

構築したシステムをテストする

confirmPayment を呼び出す際に、テスト用の BSB 番号 000-000 と、以下のいずれかのテストアカウント番号を使用して、フォームをテストします。

BSB 番号口座番号説明
000-000000123456PaymentIntent のステータスは、processing から succeeded へと変化します。同意書のステータスは引き続き active です。
000-000900123456PaymentIntent のステータスは、processing から succeeded へと変化します (3 分の遅延あり)。同意書のステータスは引き続き active です。
000-000111111113PaymentIntent のステータスは、processing から requires_payment_method に変わり、account_closed エラーコードが返されます。同意書のステータスは inactive になります。
000-000111111116PaymentIntent のステータスは、processing から requires_payment_method に変わり、no_account エラーコードが返されます。同意書のステータスは inactive になります。
000-000222222227PaymentIntent のステータスは、processing から requires_payment_method に変わり、refer_to_customer エラーコードが返されます。同意書のステータスは引き続き active です。
000-000922222227PaymentIntent のステータスは、processing から requires_payment_method に変わり、refer_to_customer エラーコードが返されます (3 分の遅延あり)。同意書のステータスは引き続き active です。
000-000333333335PaymentIntent のステータスは、processing から requires_payment_method に変わり、debit_not_authorized エラーコードが返されます。同意書のステータスは inactive になります。
000-000666666660PaymentIntent のステータスは、processing から succeeded に変わりますが、不審請求の申請が直ちに作成されます。
000-000343434343The PaymentIntent fails with a charge_exceeds_source_limit error due to the payment amount causing the account to exceed its weekly payment volume limit.
000-000121212121The PaymentIntent fails with a charge_exceeds_transaction_limit error due to the payment amount exceeding the account’s transaction volume limit.

Webhook events are triggered when using test account numbers. In a sandbox, PaymentIntents succeed and fail immediately, and as a result, the respective payment_intent.succeeded and payment_intent.payment_failed events trigger immediately as well. In live mode, the webhooks get triggered with the same delays as those of their related PaymentIntent successes and failures.

参照情報

  • 今後の支払いに備え、オーストラリアの BECS Direct Debit の詳細を保存する
  • Connect での支払い
このページはお役に立ちましたか。
はいいいえ
お困りのことがございましたら 、サポートにお問い合わせください。
早期アクセスプログラムにご参加ください。
変更ログをご覧ください。
ご不明な点がございましたら、お問い合わせください。
LLM ですか?llms.txt を読んでください。
Powered by Markdoc