コンテンツにスキップ
アカウントを作成またはサインイン
Stripe ドキュメントのロゴ
/
AI に質問する
アカウントを作成サインイン
導入方法
決済管理
売上管理
プラットフォームとマーケットプレイス
資金管理
開発者向けリソース
API & SDKヘルプ
概要
Stripe Payments について
構築済みのシステムをアップグレード
決済分析
オンライン決済
概要ユースケースを見つけるManaged Payments を使用する
Payment Links を使用する
事前構築済みの決済ページを使用する
Elements を使用したカスタム統合の構築
アプリ内実装を構築
決済手段
決済手段を追加
    概要
    支払い方法の導入オプション
    ダッシュボードで決済手段を管理
    決済手段のタイプ
    カード
    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
アプリ内決済
決済シナリオ
複数の通貨を扱う
カスタムの決済フロー
柔軟なアクワイアリング
オーケストレーション
対面決済
Terminal
決済以外の機能
会社を設立する
暗号資産
エージェント型コマース
Financial Connections
Climate
不正利用について
Radar の不正防止
不審請求の申請の管理
本人確認
アメリカ
日本語
ホーム決済管理Add payment methodsWalletsRevolut Pay

注

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

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

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

埋め込み可能な決済フォームの Mobile Payment Element を使用して、負荷を最小限に抑えて実装に Revolut Pay (および他の支払い方法) を追加することをお勧めします。

このガイドでは、自社で構築済みのカスタムの決済フォームを使用して、ネイティブのモバイルアプリケーションから Revolut Pay を受け付ける方法について説明します。

支払いはリダイレクト中に認証されます。

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

まず、Stripe アカウントが必要です。今すぐ登録してください。

サーバ側

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

Command Line
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Available as a gem sudo gem install stripe
Gemfile
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

クライアント側

Stripe iOS SDK はオープンソースです。詳細なドキュメントが提供されており、iOS 13 以降をサポートするアプリと互換性があります。

SDK をインストールするには、以下のステップに従います。

  1. Xcode で、File (ファイル) > Add Package Dependencies… (パッケージ依存関係を追加) を選択し、リポジトリー URL として https://github.com/stripe/stripe-ios-spm を入力します。
  2. リリースページから最新のバージョン番号を選択します。
  3. StripePaymentsUI 製品をアプリのターゲットに追加します。

注

SDK の最新リリースおよび過去バージョンの詳細については、GitHub の Releases (リリース) ページをご覧ください。リポジトリのリリースをウォッチして、新しいリリースの公開時に通知を受け取ることも可能です。

アプリの起動時に Stripe 公開可能キーを使用して SDK を設定します。これにより、アプリが Stripe API にリクエストを送信できるようになります。

AppDelegate.swift
Swift
Objective-C
No results
import UIKit import StripePaymentsUI @main class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { StripeAPI.defaultPublishableKey =
"pk_test_TYooMQauvdEDq54NiTphI7jx"
// do any other necessary launch configuration return true } }

注

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

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

サーバー側

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

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

  • 回収する金額と通貨を指定します。
  • PaymentIntent の支払い方法のタイプのリストに revolut_pay を追加します。ダッシュボードで Revolut Pay が有効になっていることを確認してください。
Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
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 を保存します。

CheckoutViewController.swift
Swift
Objective C
No results
サンプル全体を表示
class CheckoutViewController: UIViewController { var paymentIntentClientSecret: String? // ...continued from previous step override func viewDidLoad() { // ...continued from previous step startCheckout() } func startCheckout() { // Request a PaymentIntent from your server and store its client secret // Click View full sample to see a complete implementation } }

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

顧客が支払いのために Revolut Pay をタップしたら、PaymentIntent を確定して支払いを完了します。PaymentIntent の client secret を使用して STPPaymentIntentParams オブジェクトを設定します。

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

戻り先 URL を設定する

iOS SDK では、Revolut Pay による決済を完了するための WebView がアプリに表示されます。認証が終了すると、顧客が閉じなくても、自動的に WebView が閉じられるようにすることができます。この動作を有効にするには、カスタム URL スキームまたはユニバーサルリンクを設定して、URL を SDK に転送するようにアプリのデリゲートを設定します。

Swift
Objective C
No results
// This method handles opening custom URL schemes (for example, "your-app://stripe-redirect") func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool { let stripeHandled = StripeAPI.handleURLCallback(with: url) if (stripeHandled) { return true } else { // This was not a Stripe url – handle the URL normally as you would } return false } // This method handles opening universal link URLs (for example, "https://example.com/stripe_ios_callback") func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool { if userActivity.activityType == NSUserActivityTypeBrowsingWeb { if let url = userActivity.webpageURL { let stripeHandled = StripeAPI.handleURLCallback(with: url) if (stripeHandled) { return true } else { // This was not a Stripe url – handle the URL normally as you would } } } return false }

PaymentIntent を確定する際に、その URL を return_url として渡します。WebView での認証が終わると、Stripe はユーザーを return_url にリダイレクトします。

Revolut Pay での決済を確定する

STPPaymentHandler confirmPayment を呼び出して支払いを完了します。これにより WebView が表示され、顧客はそこから Revolut Pay で支払いを完了できます。完了すると、支払い結果とともに、完了ブロックが呼び出されます。

Swift
Objective C
No results
let paymentIntentParams = STPPaymentIntentParams(clientSecret: paymentIntentClientSecret) // Revolut Pay doesn't require additional parameters so we only need to pass the initialized // STPPaymentMethodRevolutPayParams instance to STPPaymentMethodParams let revolutPay = STPPaymentMethodRevolutPayParams() let paymentMethodParams = STPPaymentMethodParams(revolutPay: revolutPay, billingDetails: nil, metadata: nil) paymentIntentParams.paymentMethodParams = paymentMethodParams paymentIntentParams.returnURL = "payments-example://stripe-redirect" STPPaymentHandler.shared().confirmPayment(paymentIntentParams, with: self) { (handlerStatus, paymentIntent, error) in switch handlerStatus { case .succeeded: // Payment succeeded // ... case .canceled: // Payment canceled // ... case .failed: // Payment failed // ... @unknown default: fatalError() } }

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

支払いをすぐ作成して、売上は後でキャプチャーするように、オーソリとキャプチャーを分離できます。7 日の期間内に支払いがキャプチャーされない場合、Stripe は PaymentIntent をキャンセルし、payment_intent.canceled イベントを送信します。

支払いをキャプチャーできないことが分かっている場合は、7 日間経過するのを待つのではなく、PaymentIntent をキャンセルすることをお勧めします。

  • オーソリのみを行うよう Stripe に指示する
  • オーソリとキャプチャーの分離を指定するには、PaymentIntent の作成時に capture_method を manual に設定します。このパラメーターは、顧客の Revolut Pay アカウントの金額のみをオーソリするように Stripe に指示します。

    Command Line
    cURL
    Stripe CLI
    Ruby
    Python
    PHP
    Java
    Node.js
    Go
    .NET
    No results
    curl https://api.stripe.com/v1/payment_intents \ -u "
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :"
    \ -d amount=6000 \ -d confirm=true \ -d currency=gbp \ -d "payment_method_types[]"=revolut_pay \ -d capture_method=manual \ --data-urlencode return_url="https://www.example.com/checkout/done"

  • 売上をキャプチャーする
  • オーソリが成功すると、PaymentIntent のステータスは requires_capture に移行します。オーソリされた売上をキャプチャーするには、PaymentIntent のキャプチャーリクエストを作成します。

    Command Line
    cURL
    Stripe CLI
    Ruby
    Python
    PHP
    Java
    Node.js
    Go
    .NET
    No results
    curl -X POST https://api.stripe.com/v1/payment_intents/{PAYMENT_INTENT_ID}/capture \ -u "
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :"

    デフォルトでは、オーソリされた合計金額がキャプチャーされます。amount_to_capture を指定して、合計金額以下の金額を指定することもできます。

    任意オーソリをキャンセルする

    オーソリをキャンセルする必要がある場合は、PaymentIntent をキャンセルしてください。

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

    支払いが完了すると、Stripe は payment_intent.succeeded イベントを送信します。ダッシュボード、カスタム Webhook、またはパートナーソリューションを使用してこれらのイベントを受信し、また、顧客への注文確認メールの送信、データベースでの売上の記録、配送ワークフローの開始などのアクションを実行します。

    クライアントからのコールバックを待つのではなく、これらのイベントをリッスンします。クライアント側では、コールバックが実行される前に顧客がブラウザーのウィンドウを閉じたり、アプリを終了したりする可能性があります。また、悪意を持つクライアントがレスポンスを不正操作する恐れもあります。非同期型のイベントをリッスンするよう構築済みのシステムを設定することで、これ以降はより多くの決済手段を簡単に受け付けられるようになります。サポートされているすべての決済手段の違いをご確認ください。

    • ダッシュボードでイベントを手動で処理する

      ダッシュボードを使用して、テスト決済をダッシュボードで表示したり、メール領収書を送信したり、入金を処理したり、失敗した決済を再試行したりできます。

    • Custom Webhook を構築する

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

    • 構築済みアプリを導入する

      パートナーアプリケーションを統合することで、自動化やマーケティング/セールスなどの一般的なビジネスイベントを処理します。

    実装をテストする

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

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

    テスト環境で PaymentIntent を手動でキャプチャーする場合、未キャプチャーの PaymentIntent (支払いインテント) は、オーソリの成功後 7 日で自動的に期限切れになります。

    失敗した支払い

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

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

    支払いが拒否された場合を除き、Revolut Pay の PaymentIntent (支払いインテント) が requires_action ステータスである場合、顧客は Revolut Pay にリダイレクトされてから 1 時間以内に支払いを完了する必要があります。1 時間経過しても何もアクションが行われなかった場合は、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