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

注

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

OXXO での支払いを受け付ける

メキシコで一般的な支払い方法である OXXO を受け付ける方法をご紹介します。

ページをコピー

注意

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

アプリで OXXO を受け付けるには、Webview で OXXO の取引の詳細を表示します。顧客は、OXXO コンビニエンスストアで、生成された番号が記載された取引の詳細を提示し、現金で支払います。支払いが完了すると、Stripe からお客様に通知が送られます。

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.

PaymentIntent を作成する
サーバー側
クライアント側

PaymentIntent (支払いインテント) は、顧客から支払いを回収する意図を表すオブジェクトで、決済プロセスのライフサイクルの各段階を追跡します。

サーバー側

金額と mxn 通貨 (OXXO は他の通貨には対応していません) を指定して、サーバーで PaymentIntent を作成します。すでに Payment Intents API を使用したシステムがある場合は、oxxo を PaymentIntent の支払い方法タイプのリストに追加します。

Command Line
curl
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "amount"=1099 \ -d "currency"="mxn" \ -d "payment_method_types[]"="oxxo"

その他の支払い方法オプション

PaymentIntent の支払い方法オプションでオプションの expires_after_days パラメーターを指定して、OXXO の支払い票の有効期限が切れるまでの日数を設定できます。たとえば、月曜日に OXXO の支払い票を作成し、expires_after_days を 2 に設定した場合、OXXO の支払い票は、America/Mexico_City (UTC-6) 時間で水曜日の 23:59 に有効期限が切れます。expires_after_days パラメーターは 1 日から 7 日まで設定できます。デフォルトは 3 日です。

クライアント側

クライアント側で、サーバーの 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({ email, currency: 'mxn', payment_method_types: ['oxxo'], }), }); const {clientSecret, error} = await response.json(); return {clientSecret, error}; };

支払い方法の詳細を収集する
クライアント側

アプリで顧客の氏名とメールアドレスを収集します。

export default function OxxoPaymentScreen() { const [name, setName] = useState(); const [email, setEmail] = useState(); const handlePayPress = async () => { // ... }; return ( <Screen> <TextInput placeholder="Name" onChange={(value) => setName(value.nativeEvent.text)} /> <TextInput placeholder="E-mail" onChange={(value) => setEmail(value.nativeEvent.text)} /> </Screen> ); }

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

作成した PaymentIntent から client secret を取得し、confirmPayment を呼び出します。これにより、Webview で OXXO 支払い向けに取引の詳細が表示されます。

export default function OxxoPaymentScreen() { const [name, setName] = useState(); const [email, setEmail] = useState(); const handlePayPress = async () => { const billingDetails: PaymentMethodCreateParams.BillingDetails = { name, email, }; const { error, paymentIntent } = await confirmPayment(clientSecret, { paymentMethodType: 'Oxxo', paymentMethodData: { billingDetails, } }); 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.RequiresAction) { Alert.alert( 'Success', `The OXXO voucher was created successfully. Awaiting payment from customer.` ); } else { Alert.alert('Payment intent status:', paymentIntent.status); } } }; return ( <Screen> <TextInput placeholder="Name" onChange={(value) => setName(value.nativeEvent.text)} /> <TextInput placeholder="E-mail" onChange={(value) => setEmail(value.nativeEvent.text)} /> </Screen> ); }

オプション: 顧客に取引の詳細へのリンクをメールで送信する

Stripe は、OXXO の取引の詳細が正常に作成されると、payment_intent.requires_action イベントを送信します。顧客に取引の詳細のリンクをメールで送信する必要がある場合は、イベントの受信時に PaymentIntent (支払いインテント) を取得することで、リンクを取得できます。payment_intent.next_action.oxxo_display_details の hosted_voucher_url フィールドには、取引の詳細へのリンクが含まれています。

オプション: 取引の詳細をカスタマイズする

Stripe では、ブランディング設定ページで、顧客に表示される UI をカスタマイズできます。

取引の詳細には、以下のブランド設定を適用できます。

  • アイコン: ブランド画像と公開ビジネス名
  • アクセント—番号コピーボタンの色として使用されます
  • ブランドカラー: 背景色として使用されます

支払い後のイベントを処理する
サーバー側

OXXO は遅延通知型の支払い方法であるため、売上はすぐには利用可能になりません。顧客は決済直後に OXXO コンビニエンスストアで OXXO の支払いを行わない場合があります。

Stripe は、支払われた OXXO の支払いごとに、翌営業日 (メキシコの祝日を除く月曜日から金曜日) に payment_intent.succeeded イベントを送信します。ダッシュボードを使用するか、Webhook ハンドラーを構築して、これらのイベントを受信し、アクション (顧客への注文確認メールの送信、データベースへの売上の記録、配送ワークフローの開始など) を実行します。

有効期限日を過ぎると、PaymentIntent のステータスは processing に移行し、顧客は期限切れの OXXO の支払い票に対する支払いを行うことができなくなります。OXXO の支払い票が有効期限日の 23:59 America/Mexico_City (UTC-6) より前に支払われなかった場合、Stripe は有効期限日から 10 日以内に payment_intent.payment_failed イベントを送信します (ほとんどの場合、このイベントは 7 日以内に送信されます)。たとえば、OXXO の支払い票の有効期限日が 9 月 1 日の場合、このイベントは遅くとも 9 月 10 日までに送信されます。

イベント説明次のステップ
payment_intent.requires_actionOXXO の支払い票が正常に作成されました。顧客が OXXO で支払うのを待ちます。
payment_intent.processing顧客は OXXO の支払いができなくなりました。支払いの成功、または失敗を待ちます。
payment_intent.succeeded顧客は有効期限が切れる前に OXXO の支払い票に対する支払いを行いました。顧客が購入した商品またはサービスのフルフィルメントを行います。
payment_intent.payment_failed顧客が有効期限までに OXXO の支払い票に対する支払いを行いませんでした。Contact the customer through email or push notification and request another payment method.

イベントを受信し、ビジネスアクションを実行する

手動

Stripe ダッシュボードを使用して、Stripe のすべての支払いの確認、メール領収書の送信、入金処理、失敗した支払いの再試行を実行します。

  • ダッシュボードでテスト支払いを確認する

カスタムコード

Webhook ハンドラを構築してイベントをリッスンし、非同期型のカスタムの決済フローを作成します。Stripe CLI を使用して、ローカルで Webhook の組み込みのテストとデバッグを行います。

  • カスタム Webhook を作成する

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

サンドボックスでは、confirmPayment を呼び出してさまざまなシナリオをテストするときに、次のメールアドレスを使用します。

メールアドレス説明

{any_prefix}@{any_domain}

顧客が 3 分後に支払い、約 3 分後に payment_intent.succeeded Webhook を受信する OXXO 支払いをシミュレーションします。本番環境では、この Webhook は 1 営業日後に受信します。

例: fulano@test.com

{any_prefix}succeed_immediately@{any_domain}

顧客が即座に支払う OXXO をシミュレーションし、payment_intent.succeeded Webhook を数秒以内に受信します。本番環境では、この Webhook は 1 営業日後に受信します。

例: succeed_immediately@test.com

{any_prefix}expire_immediately@{any_domain}

顧客が支払う前に期限切れになり、payment_intent.payment_failed Webhook を数秒以内に受信する OXXO をシミュレーションします。

支払い方法オプションで expires_after_days パラメーターに設定された値に関係なく、next_action.oxxo_display_details の expires_after フィールドには、現在時刻が設定されます。

例: expire_immediately@test.com

{any_prefix}expire_with_delay@{any_domain}

顧客が支払う前に期限切れになり、payment_intent.payment_failed Webhook を約 3 分後に受信する OXXO をシミュレーションします。

支払い方法オプションで expires_after_days パラメーターに設定された値に関係なく、next_action.oxxo_display_details の expires_after フィールドが 3 分後に設定されます。

例: expire_with_delay@test.com

{any_prefix}fill_never@{any_domain}

顧客が支払う前に期限切れになり、payment_intent.payment_failed Webhook を 1 営業日と 2 日後に受信する OXXO をシミュレーションします。本番環境では、この Webhook をテスト環境と同じタイミングで受信します。

例: fill_never@test.com

有効期限とキャンセル

OXXO vouchers expire after the expires_after UNIX timestamp and a customer can’t pay an OXXO voucher once it has expired. OXXO vouchers can’t be canceled before expiration.

OXXO 支払い票の有効期限が切れると、PaymentIntent のステータスは requires_payment_method に変わります。この時点では、別の支払い方法を指定して PaymentIntent を確定するか、キャンセルすることができます。

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