コンテンツにスキップ
アカウントを作成
または
サインイン
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
        PayPal ボタン
        PayPal 支払いを有効化
        決済を受け付ける
        将来の支払いを設定する
        売上処理の設定を選択
        不審請求が申請された支払い
        入金の照合
        サポートされているロケール
        保存した PayPal の支払い方法をインポートする
      PayPay
      Revolut Pay
      Satispay
      Secure Remote Commerce
      Vipps
      WeChat Pay
    国ごとに現地の支払い方法を有効化
    カスタムの決済手段
決済手段を管理
Link による購入の迅速化
支払いインターフェイス
Payment Links
Checkout
Web Elements
アプリ内 Elements
決済シナリオ
カスタムの決済フロー
柔軟なアクワイアリング
オーケストレーション
店頭支払い
端末
他の Stripe プロダクト
Financial Connections
仮想通貨
Climate
ホーム支払いAdd payment methodsWalletsPayPal

注

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

PayPal による支払いを受け付ける

ヨーロッパの企業に広く普及しているデジタルウォレットである PayPal の決済を受け付ける方法をご紹介します。

ページをコピー

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 を作成する
サーバー側
クライアント側

サーバー側

Stripe では、PaymentIntent (支払いインテント) と呼ばれる支払いオブジェクトを使用して、支払いの完了まですべてのステータスを追跡および処理します。サーバーで PaymentIntent を作成し、回収する金額と通貨を指定します。すでに Payment Intents API を使用したシステムがある場合は、paypal を PaymentIntent の決済手段タイプリストに追加します。

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[]"=paypal

返される PaymentIntent には client secret が含まれます。これを使用することで PaymentIntent オブジェクト全体を渡すことなく安全に支払いプロセスを完了できます。以降のステップで使用できるように、クライアントに client secret を送り返します。

カスタムの説明を含める

デフォルトでは、PayPal ユーザの購入アクティビティページの注文詳細には、注文金額が表示されます。description プロパティでカスタムの説明を指定することで、これを変更することができます。

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

利用するロケールをカスタマイズする

デフォルトで PayPal のオーソリページは、加盟店の国などの変化する要素に基づいて現地化されますが、preferred_locale プロパティを使用することで、これを顧客の利用するロケールに設定できます。この値は、小文字 2 文字の言語コード、ハイフン (-)、大文字 2 文字の国コードの順で構成されている必要があります。たとえば、ベルギー在住のフランス語ユーザーの値は、fr-BE になります。詳細については、サポート対象のロケールをご覧ください。

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[]"=paypal \ -d "payment_method_options[paypal][preferred_locale]"=fr-BE

PayPal での明細書表記

買い手の銀行明細書に表示される表記は PayPal によって設定され、デフォルトでは PAYPAL *YOUR_BUSINESS_NAME になります。PaymentIntent の作成時に statement_descriptor を設定した場合、合計 22 文字を上限として、その値が PayPal によって設定された値に付加されます。

たとえば、PayPal のビジネス名が BUSINESS であり、statement_descriptor に order_id_1234 を設定する場合、買い手の銀行口座明細書には PAYPAL *BUSINESS order と表示されます。

クライアント側

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

CheckoutViewController.swift
Swift
サンプル全体を表示
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 に支払いを送信する
クライアント側

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

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

戻り先 URL を設定する

iOS SDK では、PayPal 支払いを完了するための WebView がアプリに表示されます。認証が終了すると、顧客が閉じなくても、自動的に 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 }

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

PayPal 支払いを確定する

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

Swift
let paymentIntentParams = STPPaymentIntentParams(clientSecret: paymentIntentClientSecret) // PayPal does not require additional parameters so we only need to pass the initialized // STPPaymentMethodPayPalParams instance to STPPaymentMethodParams let payPal = STPPaymentMethodPayPalParams() let paymentMethodParams = STPPaymentMethodParams(payPal: payPal, billingDetails: nil, metadata: nil) paymentIntentParams.paymentMethodParams = paymentMethodParams 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() } }

payment_method_details プロパティには、支払い者の氏名、メールアドレス、支払人 ID、取引 ID が含まれています。

フィールド値
payer_emailPayPal アカウントの支払人のメールアドレス。
payer_namePayPal アカウントの支払人の名前。
payer_id支払人の PayPal アカウントの一意の ID。
transaction_idPayPal によって生成された一意の取引 ID。
{ "charges": { "data": [ { "payment_method_details": { "paypal": { "payer_id": "H54KFE9XXVVYJ", "payer_email": "jenny@example.com", "payer_name": "Jenny Rosen", "transaction_id": "89W40396MK104212M" }, "type": "paypal" }, "id": "src_16xhynE8WzK49JbAs9M21jaR", "object": "source", "amount": 1099, "client_secret": "src_client_secret_UfwvW2WHpZ0s3QEn9g5x7waU", "created": 1445277809, "currency": "eur", "flow": "redirect",

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

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