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

注

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

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

ヨーロッパで一般的な支払い方法である Sofort を受け付ける方法をご紹介します。

ページをコピー

警告

SOFORT has been discontinued as of March 31, 2025. For more information, read our support page.

注意

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

Sofort は 1 回限りの使用の、通知遅延型の支払い方法であり、顧客は支払いの認証を求められます。顧客が Sofort で支払う場合は、アプリから銀行のポータルにリダイレクトされ、そこで支払いの認証を行います。成功または失敗の通知を受け取るまでに、通常 2 〜 14 日かかります。

注

Sofort を受け付けるには、Sofort 利用規約に従う必要があります。

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

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

サーバ側

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

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'

クライアント側

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

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

  1. In Xcode, select File > Add Package Dependencies… and enter https://github.com/stripe/stripe-ios-spm as the repository URL.
  2. リリースページから最新のバージョン番号を選択します。
  3. StripePaymentsUI 製品をアプリのターゲットに追加します。

注

For details on the latest SDK release and past versions, see the Releases page on GitHub. To receive notifications when a new release is published, watch releases for the repository.

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

AppDelegate.swift
Swift
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 } }

注

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

PaymentIntent を作成する
サーバ側

PaymentIntent (支払いインテント) は、顧客から支払いを回収する意図を示し、支払いプロセスのライフサイクルを追跡します。

サーバ側

サーバーで PaymentIntent を作成し、回収する amount と eur 通貨を指定します (Sofort は他の通貨に対応していません)。既存の Payment Intents のシステムがある場合は、sofort を支払い方法タイプのリストに追加します。

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

使用言語の変更

デフォルトでは、Stripe は指定された国コードに基づいた言語で Sofort オーソリページを表示します。リクエストの一部として国コードを指定し、preferred_language プロパティの値を変更することで、オーソリページを顧客の希望言語にカスタマイズできます。サポートされている値は、de、en、es、it、fr、nl、および pl です。

Command Line
cURL
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=1099 \ -d currency=eur \ -d "payment_method_types[]"=sofort \ -d "payment_method_options[sofort][preferred_language]"=de

PaymentIntent オブジェクト全体をアプリに渡す代わりに、その client secret を返します。PaymentIntent の client secret は、支払い額などの機密情報の操作を許可することなく、クライアントで支払いを確定し、支払い情報の詳細を更新できる一意のキーです。

クライアント側

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

CheckoutViewController.swift
Swift
サンプル全体を表示
class CheckoutViewController: UIViewController { var paymentIntentClientSecret: String? func startCheckout() { // Request a PaymentIntent from your server and store its client secret } }

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

顧客が Sofort での支払いをタップしたら、PaymentIntent を確定して支払いを完了します。サーバーから取得した PaymentIntent client secret を使用して、STPPaymentIntentParams オブジェクトを設定します。Sofort を使用するには、顧客の銀行の国コードを収集し、それを STPPaymentMethodSofortParams に渡す必要があります。

PaymentIntent オブジェクト全体をクライアントに送信するのではなく、その client secret を使用します。これは、Stripe API リクエストを認証する API キーとは異なります。client secret は、機密情報 (customer など) を非表示にしながら、アプリから PaymentIntent の重要なフィールド (status など) にアクセスできるようにする文字列です。

戻り先 URL を設定する

iOS SDK では、アプリに Webview を表示して、Sofort の支払いを実行できます。認証が終了すると、Webview は自動的に閉じられるため、顧客が閉じる必要はありません。この動作を有効にするには、カスタム URL スキームを設定するか、ユニバーサルリンクを設定して、URL を SDK に転送するようにアプリのデリゲートを設定します。

Swift
// 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 }

STPPaymentHandler confirmPayment を呼び出して決済を完了します。

Swift
let paymentIntentParams = STPPaymentIntentParams(clientSecret: paymentIntentClientSecret) let sofort = STPPaymentMethodSofortParams() sofort.country = "DE" paymentIntentParams.paymentMethodParams = STPPaymentMethodParams(sofort: sofort, billingDetails: nil, metadata: nil) 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() } }

支払い後のイベントを処理する

As Sofort is a delayed notification payment method, the PaymentIntent’s status remains in a payment_intent.processing state for up to 14 days from its creation (also known as the cutoff date). In a sandbox, the PaymentIntent’s status remains in the processing state for three minutes to simulate this.

  • Stripe では、処理中の状態の間に購入をフルフィルメントすることをお勧めします。平均して、処理中状態に入った後に Sofort の支払い試行が失敗する確率は 0.2% と予測されます。この方法は、Sofort の支払いの失敗率が低い Sofort にのみ適用でき、他の遅延通知型の支払い方法には適用できません。
  • 必要に応じて、payment_intent.succeeded イベントを受け取った後にのみ注文をフルフィルメントすることもできます。Stripe では、支払いが確定され、売上が保証された後でこのイベントを送信します。
  • 顧客が支払いを行わない場合、Stripe は payment_intent.failed イベントを送信し、PaymentIntent は requires_payment_method ステータスに戻ります。

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

手動

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

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

カスタムコード

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

  • カスタム Webhook を作成する

事前構築のアプリ

オートメーションやマーケティングとセールスなどの一般的なビジネスイベントを、パートナーアプリケーションとの連携によって処理します。

不審請求が申請された支払い

顧客が銀行で支払いを許可する必要があるため、不正使用や未認識の支払いのリスクは低くなります。このため、チャージバックに発展する不審請求の申請を受けて、Stripe アカウントから売上が引き出されることはありません。

支払いの失敗

カットオフ時間内に支払い処理が確定されなかった場合は、PaymentIntent (支払いインテント) オブジェクトのステータスが自動的に processing から requires_payment_method に移行します。また、売上がカットオフ日以降に受け取られた場合は、顧客に自動的に返金されます。

平均して、Sofort の支払い処理の約 0.2% が失敗すると予測されます。この数値は、業種や顧客ベースによって異なります。支払い平均額、取り扱う商品やサービスのタイプ、およびビジネスに付随するリスクによっては、payment_intent.succeeded イベントを受信してからのみ注文のフルフィルメントを行うようにすることもできます。

返金

Sofort は、元の支払い日から 180 日以内の返金リクエストのみを受け付けます。180 日を過ぎると、支払いの返金を実行できなくなります。

まだ確定されていない保留中の支払いに対して返金することができます。PaymentIntent のステータスが processing の際に全額返金または一部返金を作成する場合、返金は PaymentIntent のステータスが succeeded になるまで実行されません。支払いの試行が失敗した後の PaymentIntent のステータスが requires_payment_method の場合、資金が顧客の銀行口座から移動していないため、全額返金および一部返金はキャンセルとしてマークされます。

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