コンテンツにスキップ
アカウントを作成
または
サインイン
Stripe ドキュメントのロゴ
/
AI に質問する
アカウントを作成
サインイン
始める
支払い
売上
プラットフォームおよびマーケットプレイス
資金管理
開発者向けリソース
概要
Stripe Payments について
構築済みのシステムをアップグレード
支払いの分析
オンライン決済
概要ユースケースを見つけるManaged Payments
Payment Links を使用する
決済ページを構築
高度なシステムを構築
アプリ内実装を構築
決済手段
決済手段を追加
    概要
    支払い方法の導入オプション
    ダッシュボードで支払い方法を管理
    決済手段のタイプ
    カード
    Stripe 残高で支払う
    仮想通貨
    銀行口座引き落とし
    銀行へのリダイレクト
    銀行振込
    クレジットトランスファー (Sources)
    後払い
    リアルタイム決済
    店舗支払い
    ウォレット
      Alipay
      Amazon Pay
      Apple Pay
      Cash App Pay
      Google Pay
      GrabPay
      Link
      MB WAY
      MobilePay
      PayPal
      PayPay
      Revolut Pay
        決済を受け付ける
        将来の支払いを設定する
      Satispay
      Secure Remote Commerce
      Vipps
      WeChat Pay
    国ごとに現地の支払い方法を有効化
    カスタムの決済手段
決済手段を管理
Link による購入の迅速化
支払いインターフェイス
Payment Links
Checkout
Web Elements
アプリ内 Elements
決済シナリオ
複数の通貨を扱う
カスタムの決済フロー
柔軟なアクワイアリング
オーケストレーション
店頭支払い
端末
決済にとどまらない機能
会社を設立する
仮想通貨
Financial Connections
Climate
不正利用について
Radar の不正防止
不審請求の申請の管理
本人確認
ホーム支払いAdd payment methodsWalletsRevolut Pay

注

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

Revolut Pay による決済を受け付ける

システムに Revolut Pay のサポートを追加します。

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

Stripe アカウントを作成して開始します。

サーバー側

この実装は、Stripe API と通信するサーバー上にエンドポイントを必要とします。サーバーから Stripe API へのアクセスには、次のように Stripe の公式ライブラリを使用します。

Command Line
Ruby
Python
PHP
Java
Node
Go
.NET
No results
# Available as a gem sudo gem install stripe
Gemfile
Ruby
Python
PHP
Java
Node
Go
.NET
No results
# 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

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

  • For iOS, go to the ios directory and run pod install to ensure that you also install the required native dependencies.
  • Android の場合は、依存関係をインストールする必要はありません。

注

公式の TypeScript ガイドに従って TypeScript のサポートを追加することをお勧めします。

Stripe の初期化

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

import { 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> ); }

注

テストおよび開発時には API のテストキーを使用し、アプリの公開時には本番環境キーを使用します。

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

サーバー側

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

サーバーで PaymentIntent を作成して確定するには、以下の手順に従います。

  • 回収する金額と通貨を指定します。
  • PaymentIntent の支払い方法のタイプのリストに revolut_pay を追加します。ダッシュボードで Revolut Pay が有効になっていることを確認してください。
Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=6000 \ -d currency=gbp \ -d "payment_method_types[]"=revolut_pay \ --data-urlencode return_url="payments-example://stripe-redirect"

返される PaymentIntent には client secret が含まれ、これは PaymentIntent の確定に使用されます。次のステップで使用できるように、クライアントに client secret を送り返します。

クライアント側

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

function PaymentScreen() { const fetchPaymentIntentClientSecret = async () => { const response = await fetch(`${API_URL}/create-payment-intent`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ currency: 'gbp', }), }); const {clientSecret} = await response.json(); return clientSecret; }; const handlePayPress = async () => { // See below }; return ( <View> <Button onPress={handlePayPress} title="Pay" /> </View> ); }

client secret は、Stripe API リクエストを認証する API キーとは異なります。これは支払いを完了できるため、慎重に扱う必要があります。記録したり、URL に埋め込んだり、当該の顧客以外に漏洩することがないようにしてください。

戻り先 URL を設定する (iOS のみ)
クライアント側

顧客がアプリを終了すると (Safari やバンキングアプリで認証するなど)、自動的にアプリに戻るための方法を提供します。多くの決済手段タイプで、戻り先 URL の指定が「必須」です。戻り先 URL を有効にしていても、指定がされていないと、戻り先 URL が必要な決済手段をユーザーに提示できません。

戻り先 URL を指定するには、以下のようにします。

  1. カスタム URL を登録します。ユニバーサルリンクはサポートされていません。
  2. カスタム URL を設定 します。
  3. 以下のように、URL を Stripe SDK に転送するようにルートコンポーネントを設定します。

注

Expo を使用している場合は、app.json ファイルでスキームを設定します。

App.tsx
import { useEffect, useCallback } from 'react'; import { Linking } from 'react-native'; import { useStripe } from '@stripe/stripe-react-native'; export default function MyApp() { const { handleURLCallback } = useStripe(); const handleDeepLink = useCallback( async (url: string | null) => { if (url) { const stripeHandled = await handleURLCallback(url); if (stripeHandled) { // This was a Stripe URL - you can return or add extra handling here as you see fit } else { // This was NOT a Stripe URL – handle as you normally would } } }, [handleURLCallback] ); useEffect(() => { const getUrlAsync = async () => { const initialUrl = await Linking.getInitialURL(); handleDeepLink(initialUrl); }; getUrlAsync(); const deepLinkListener = Linking.addEventListener( 'url', (event: { url: string }) => { handleDeepLink(event.url); } ); return () => deepLinkListener.remove(); }, [handleDeepLink]); return ( <View> <AwesomeAppComponent /> </View> ); }

ネイティブ URL スキームの詳細については、Android および iOS のドキュメントをご覧ください。

Revolut Pay での決済を確定する
クライアント側

顧客が Revolut Pay での支払いを試みてタップすると、confirmPayment を呼び出して支払いを完了します。これにより WebView が表示され、顧客はそこから Revolut Pay で支払いを完了できます。完了後、プロミスは、paymentIntent フィールド、または支払いでエラーが発生した場合には error フィールドのどちらかを格納したオブジェクトで解決されます。

import {useConfirmPayment} from '@stripe/stripe-react-native'; function PaymentScreen() { const {confirmPayment, loading} = useConfirmPayment(); const fetchPaymentIntentClientSecret = async () => { // See above }; const handlePayPress = async () => { // Fetch the client secret from the backend. const clientSecret = await fetchPaymentIntentClientSecret(); const {error, paymentIntent} = await confirmPayment(clientSecret, { paymentMethodType: 'RevolutPay', }); if (error) { console.log('Payment confirmation error: ', error); } else if (paymentIntent) { console.log('Successfully confirmed payment: ', paymentIntent); } }; return ( <View> <Button onPress={handlePayPress} title="Pay" disabled={loading} /> </View> ); }

オプションオーソリとキャプチャーを分離する

オプション支払い後のイベントを処理する

実装をテストする

テスト API キーを使用して Revolut Pay の導入をテストするには、リダイレクトページを表示します。リダイレクトページで支払いを認証することにより、支払い成功のケースをテストできます。PaymentIntent (支払いインテント) は requires_action から succeeded に変化します。

ユーザーが認証に失敗するケースをテストするには、テスト API キーを使用してリダイレクトページを表示します。リダイレクトページで Fail test payment (テスト支払い失敗) をクリックします。PaymentIntent (支払いインテント) が、requires_action から requires_payment_method に変化します。

テスト環境で PaymentIntent を手動でキャプチャーする場合、未キャプチャーの PaymentIntent は、オーソリの成功後 10 分で自動的に期限切れになります。

ベストプラクティスとして、顧客にリリースする前に、実際の Revolut Pay アカウントを使用して本番環境でテストします。

失敗した支払い

Revolut Pay は複数のデータポイントを使用して、取引を拒否する状況を判断します (たとえば、AI モデルが取引で高い不正利用リスクを検出した場合や、Revolut Pay で請求する許可を顧客が取り消した場合など)。

このケースでは、PaymentMethod は切り離され、PaymentIntent オブジェクトのステータスは自動的に requires_payment_method に移行します。

支払いが拒否された場合を除き、Revolut Pay の PaymentIntent (支払いインテント) が requires_action ステータスである場合、顧客は Revolut Pay にリダイレクトされてから 10 分以内に支払いを完了する必要があります。10 分経過しても何もアクションが行われなかった場合は、PaymentMethod (支払い方法) の関連付けが解除され、PaymentIntent オブジェクトのステータスは自動的に requires_payment_method に移行します。

これが発生すると、Payment Element はエラーメッセージを表示し、顧客に別の支払い方法で再試行するように求めます。

エラーコード

次の表は、一般的なエラーコードと推奨アクションの詳細を示しています。

エラーコード推奨アクション
missing_required_parameter必須のパラメーターの詳細については、エラーメッセージを確認してください。
payment_intent_payment_attempt_failedこのコードは PaymentIntent の last_payment_error.code フィールドに表示されることがあります。エラーメッセージで失敗の詳細な理由と推奨されるエラー処理を確認します。
payment_intent_redirect_confirmation_without_return_urlRevolut Pay で PaymentIntent を確定する際は、return_url を指定します。
このページはお役に立ちましたか。
はいいいえ
  • お困りのことがございましたら 、サポートにお問い合わせください。
  • 早期アクセスプログラムにご参加ください。
  • 変更ログをご覧ください。
  • ご不明な点がございましたら、お問い合わせください。
  • LLM ですか?llms.txt を読んでください。
  • Powered by Markdoc