コンテンツにスキップ
アカウントを作成
または
サインイン
Stripe ドキュメントのロゴ
/
Ask AI
アカウントを作成
サインイン
始める
支払い
財務の自動化
プラットフォームおよびマーケットプレイス
資金管理
開発者向けのツール
始める
支払い
財務の自動化
始める
支払い
財務の自動化
プラットフォームおよびマーケットプレイス
資金管理
概要
Stripe Payments について
構築済みのシステムをアップグレード
支払いの分析
オンライン決済
概要ユースケースを見つけるManaged Payments
Payment Links を使用する
決済ページを構築
高度なシステムを構築
アプリ内実装を構築
支払い方法
決済手段を追加
    概要
    支払い方法の導入オプション
    ダッシュボードで支払い方法を管理
    決済手段のタイプ
    カード
    銀行口座引き落とし
    銀行へのリダイレクト
    銀行振込
    クレジットトランスファー (Sources)
    後払い
    リアルタイム決済
    店舗支払い
    ウォレット
      Alipay
      Amazon Pay
      Apple Pay
        ベストプラクティス
        Apple Pay による Cartes Bancaires
        Apple Pay 継続取引
        Apple 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
決済シナリオ
カスタムの決済フロー
柔軟なアクワイアリング
オーケストレーション
店頭支払い
端末
他の Stripe プロダクト
Financial Connections
仮想通貨
Climate
ホーム支払いAdd payment methodsWallets

注

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

Apple Pay

顧客が iPhone、iPad、および Apple Watch で Apple Pay を使用して安全に支払いを実行できるようにします。

ページをコピー

対応デバイス

Apple Pay に対応しているデバイスについては、Apple の互換性に関するドキュメントを参照してください。

Apple Pay は、ほとんどの Stripe プロダクトおよびサービスと互換性があります。Stripe ユーザーは、iOS 9 以降の iOS アプリケーション、および iOS 10 または macOS Sierra 以降の Safari (ウェブ) で Apple Pay を受け付けることができます。Apple Pay 決済の処理に追加料金はかからず、他のカード取引と同じ料金体系が適用されます。

Apple Pay を利用できるのは、サポート対象国の加盟銀行のカードの保有者です。詳細については Apple の加盟銀行に関するドキュメントをご覧ください。

  • 顧客の場所

    インドを除く世界各地

  • 取引通貨

    サポートされている取引通貨を参照してください

  • 支払いの確定

    顧客主導

  • 支払い方法の種類

    ウォレット

  • 継続支払い

    可 (メキシコを除く)

  • 入金タイミング

    標準の入金タイミングを適用

  • Connect のサポート

    あり

  • 不審請求の申請に関するサポート

    可

  • 手動キャプチャーのサポート

    あり

  • 返金 / 一部返金

    可 / 可

決済フロー

以下は、決済ページから行われる Apple Pay の決済フローのデモンストレーションです。

テスト中に Apple Pay の支払いフローのアニメーションは、Stripe 決済フローページ、Apple Pay ボタン、確認ダイアログを示します。

Stripe および Apple Pay の利用と、アプリ内課金の利用について

物品、サービス、およびその他の一部商品の販売については、お客様のアプリで Apple Pay など、Stripe で対応可能な支払い方法を受け付けることができます。これらの支払いは Stripe を介して処理され、お客様は Stripe の決済手数料を支払うだけで済みます。ただし、デジタル商品、コンテンツ、その他の一部商品の販売では Apple の アプリ内課金を使用する必要があります。これらの支払いは Apple によって処理され、同社の決済手数料が適用されます。

アプリ内課金を使用しなければならない販売の詳細については、Apple の App Store Review ガイドラインをご覧ください。

Apple Pay を受け付ける

Stripe では、さまざまな方法で Apply Pay を支払い方法として追加することができます。組み込みの詳細については、各方法から選択してご確認ください。

Stripe iOS SDK を使用すると、Apple Pay と従来のクレジットカードによる決済の両方を受け付けることができます。開始前に Apple Developer Program (Apple 開発者プログラム) (英語) に登録する必要があります。次に、以下の手順に従ってください。

  1. Stripe を設定する
  2. Apple 加盟店 ID を登録する
  3. 新しい Apple Pay 証明書を作成する
  4. Xcode を導入する
  5. Apple Pay がサポートされているかを確認する
  6. 支払いリクエストを作成する
  7. 支払い画面を表示する
  8. Stripe に支払いを送信する

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. StripeApplePay 製品をアプリのターゲットに追加します。

注

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 StripeApplePay @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.

Apple 加盟店 ID を登録する

Apple Developer Web サイトで 新規 ID を登録 して、Apple 加盟店 ID を取得します。

フォームに説明と ID を入力します。説明はお客様の記録用であり、後で変更できます。アプリの名前を ID として使用することをお勧めします (merchant.com.{{YOUR_APP_NAME}} など)。

新しい Apple Pay 証明書を作成する

支払いデータを暗号化するためのアプリの証明書を作成します。

ダッシュボードの iOS certificate settings (iOS 証明書の設定) に移動して、新規アプリケーションを追加をクリックし、表示されるガイドに従います。

証明書署名リクエスト (CSR) ファイルをダウンロードして、Apple Pay の利用を可能にする安全な証明書を Apple から取得します。

1 つの CSR ファイルを使用して証明書を 1 つだけ発行する必要があります。Apple 加盟店 ID を切り替えた場合、ダッシュボードの iOS Certificate Settings (iOS 証明書の設定) に移動して、新しい CSR と証明書を取得する必要があります。

Xcode を導入する

Apple Pay ケイパビリティをアプリに追加します。Xcode でプロジェクト設定を開き、Signing & Capabilities (署名およびケイパビリティ) タブを選択して、Apple Pay ケイパビリティを追加します。この段階で開発者アカウントへのログインを要求される場合があります。前の手順で作成した加盟店 ID を選択すると、アプリで Apple Pay を受け付けられるようになります。

Xcode で Apple Pay ケイパビリティを有効化する

Apple Pay がサポートされているかを確認する

注

PaymentSheet を使用している場合は、そのクラスが残りの作業を処理します。

アプリ内で Apple Pay を支払いオプションとして表示する前に、ユーザーのデバイスが Apple Pay に対応しているか、およびユーザーのウォレットにカードが追加されているかを判別します。

CheckoutViewController.swift
Swift
import StripeApplePay import PassKit class CheckoutViewController: UIViewController, ApplePayContextDelegate { let applePayButton: PKPaymentButton = PKPaymentButton(paymentButtonType: .plain, paymentButtonStyle: .black) override func viewDidLoad() { super.viewDidLoad() // Only offer Apple Pay if the customer can pay with it applePayButton.isHidden = !StripeAPI.deviceSupportsApplePay() applePayButton.addTarget(self, action: #selector(handleApplePayButtonTapped), for: .touchUpInside) } // ...continued in next step }

支払いリクエストを作成する

ユーザーが Apple Pay ボタンをタップしたら、StripeAPI paymentRequestWithMerchantIdentifier:country:currency: を呼び出して、PKPaymentRequest を作成します。

次に、ビジネス名と合計額が表示されるように PKPaymentRequest を設定します。請求の詳細または配送先情報などの情報を収集することもできます。

支払いリクエストをカスタマイズする方法のガイダンスについては、Apple のドキュメントをご覧ください。

CheckoutViewController.swift
Swift
func handleApplePayButtonTapped() { let merchantIdentifier = "merchant.com.your_app_name" let paymentRequest = StripeAPI.paymentRequest(withMerchantIdentifier: merchantIdentifier, country: "US", currency: "USD") // Configure the line items on the payment request paymentRequest.paymentSummaryItems = [ // The final line should represent your company; // it'll be prepended with the word "Pay" (that is, "Pay iHats, Inc $50") PKPaymentSummaryItem(label: "iHats, Inc", amount: 50.00), ] // ...continued in next step }

支払い画面を表示する

PKPaymentRequest を使用して STPApplePayContext インスタンスを作成し、そのインスタンスを使用して Apple Pay 支払い画面を表示します。

CheckoutViewController.swift
Swift
func handleApplePayButtonTapped() { // ...continued from previous step // Initialize an STPApplePayContext instance if let applePayContext = STPApplePayContext(paymentRequest: paymentRequest, delegate: self) { // Present Apple Pay payment sheet applePayContext.presentApplePay(on: self) } else { // There is a problem with your Apple Pay configuration } }

Apple では、ユーザージェスチャーによって Apple Pay モーダル (ボタンのクリックやフォームの操作など) がトリガーされることが義務付けられています。コードが以下に準拠しているかを確認します。

  • ユーザー有効化イベントで支払いシートを直接呼び出します。
  • 支払いシートのコードを、非同期コードまたは実行時間の長いコードの前、ユーザージェスチャーイベントハンドラの上部またはその近くに追加します。
  • ユーザージェスチャーの後に confirmPayment を呼び出すための、妥当な時間制限を設定します。

Stripe に支払いを送信する

サーバー側

amount (金額) と currency (通貨) を指定して PaymentIntent を作成するエンドポイントを設定します。支払い金額は、クライアント側ではなく、常に信頼できる環境のサーバー側で指定してください。これにより、悪意のある顧客が金額を恣意的に選択できないようにします。

Command Line
curl
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "amount"=1099 \ -d "currency"="usd"

クライアント側

applePayContext(_:didCreatePaymentMethod:completion:) を実装し、上記のエンドポイントで取得した PaymentIntent の client secret を使用して完了ブロックを呼び出します。

完了ブロックの呼び出し後に、STPApplePayContext は支払いを完了し、Apple Pay 支払い画面を閉じ、支払いのステータスを指定して applePayContext(_:didCompleteWithStatus:error:) を呼び出します。このメソッドを実装すると、顧客に領収書が表示されます。

CheckoutViewController.swift
Swift
extension CheckoutViewController { func applePayContext(_ context: STPApplePayContext, didCreatePaymentMethod paymentMethod: StripeAPI.PaymentMethod, paymentInformation: PKPayment, completion: @escaping STPIntentClientSecretCompletionBlock) { let clientSecret = ... // Retrieve the PaymentIntent client secret from your backend (see Server-side step above) // Call the completion block with the client secret or an error completion(clientSecret, error) } func applePayContext(_ context: STPApplePayContext, didCompleteWith status: STPApplePayContext.PaymentStatus, error: Error?) { switch status { case .success: // Payment succeeded, show a receipt view break case .error: // Payment failed, show the error break case .userCancellation: // User canceled the payment break @unknown default: fatalError() } } }

最後に、支払い後のイベントの処理をして、顧客に注文確認メールを送信したり、データベースに売上を記録したり、配送ワークフローを開始したりするなどの操作を行います。

トラブルシューティング

トークンの作成時に Stripe API のエラーが表示される場合は、お客様の Apple Pay 証明書に問題のあるケースがほとんどです。前述のように、新しい証明書を生成して Stripe にアップロードする必要があります。自身で生成したものではなく、必ずダッシュボードから取得した CSR を使用してください。Xcode は誤って古い証明書をキャッシュに入れることがよくあるため、新しい証明書を生成するだけではなく、新しい Apple 加盟店 ID を作成することもお勧めします。

次のエラーを受信した場合:

Stripe に Apple 加盟店アカウントを追加していません

アプリが以前の (Stripe 以外の) CSR/証明書を使用して暗号化されたデータを送信している可能性があります。お客様の Apple 加盟店 ID で、Stripe 以外の CSR によって生成された証明書が取り消されていることを確認してください。それでも問題が解決しない場合は、お客様の Apple アカウントの加盟店 ID を削除してから再作成してください。その後、前回使用したものと同じ (Stripe が提供した) CSR から新しい証明書を作成します。この新しい証明書を Stripe に再度アップロードする必要はありません。完了したら、アプリで Apple Pay 証明書をオフにしてからオンに切り替え、正しく更新されていることを確認します。

App Clips

StripeApplePay モジュールは簡略版の Stripe SDK であり、App Clip での使用に合わせて最適化されています。上記のステップに従い、StripeApplePay モジュールを App Clip のターゲットに追加します。

注

StripeApplePay モジュールは、Swift でのみサポートされています。Objective-C ユーザーは、STPApplePayContext を Stripe モジュールからインポートする必要があります。

STPApplePayContext からの移行

STPApplePayContext をすでに使用していて簡略版の Apple Pay SDK に切り替える場合は、以下の手順に従います。

  1. App Clip ターゲットの依存関係では、Stripe モジュールを StripeApplePay モジュールに置き換えます。
  2. コードでは、import Stripe を import StripeApplePay に置き換えます。
  3. STPApplePayContextDelegate の使用は新しい ApplePayContextDelegate プロトコルに置き換えます。
  4. applePayContext(_:didCreatePaymentMethod:completion:) の実装を変更して、StripeAPI.PaymentMethod を受け入れるようにします。
  5. applePayContext(_:didCompleteWith:error:) の実装を変更して STPApplePayContext.PaymentStatus を受け入れるようにします。
前
後
import Stripe class CheckoutViewController: UIViewController, STPApplePayContextDelegate { func applePayContext(_ context: STPApplePayContext, didCreatePaymentMethod paymentMethod: STPPaymentMethod, paymentInformation: PKPayment, completion: @escaping STPIntentClientSecretCompletionBlock) { // ... } func applePayContext(_ context: STPApplePayContext, didCompleteWith status: STPPaymentStatus, error: Error?) { // ... } }
import StripeApplePay class CheckoutViewController: UIViewController, ApplePayContextDelegate { func applePayContext(_ context: STPApplePayContext, didCreatePaymentMethod paymentMethod: StripeAPI.PaymentMethod, paymentInformation: PKPayment, completion: @escaping STPIntentClientSecretCompletionBlock) { // ... } func applePayContext(_ context: STPApplePayContext, didCompleteWith status: STPApplePayContext.PaymentStatus, error: Error?) { // ... } }

継続支払い

iOS 16 以降では、PKPaymentRequestで recurringPaymentRequest または automaticReloadPaymentRequest のプロパティーを設定することで加盟店トークンを導入することができます。

CheckoutViewController.swift
Swift
extension CheckoutViewController { func handleApplePayButtonTapped() { let request = StripeAPI.paymentRequest(withMerchantIdentifier: merchantIdentifier, country: "US", currency: "USD") let billing = PKRecurringPaymentSummaryItem(label: "My Subscription", amount: NSDecimalNumber(string: "59.99")) billing.startDate = Date() billing.endDate = Date().addingTimeInterval(60 * 60 * 24 * 365) billing.intervalUnit = .month request.recurringPaymentRequest = PKRecurringPaymentRequest(paymentDescription: "Recurring", regularBilling: billing, managementURL: URL(string: "https://my-backend.example.com/customer-portal")!) request.recurringPaymentRequest?.billingAgreement = "You'll be billed $59.99 every month for the next 12 months. To cancel at any time, go to Account and click 'Cancel Membership.'" request.paymentSummaryItems = [billing] } }

Apple Pay で継続支払いを使用する方法の詳細については、Apple の PassKit に関するドキュメントをご覧ください。

注文の追跡

iOS 16 以降で注文の追跡を導入するには、applePayContext(context:willCompleteWithResult:handler:) 関数を ApplePayContextDelegate に実装します。支払いの完了後、Stripe は iOS が Apple Pay の決済画面を閉じる前に実装を呼び出します。

実装内で次のようにします。

  1. サーバーから、完了した注文の注文詳細を取得します。
  2. この詳細を指定された PKPaymentAuthorizationResult に追加します。
  3. 指定された完了ハンドラーをメインキューで呼び出します。

注文の追跡の詳細については、Apple のウォレットでの注文に関するドキュメントをご覧ください。

CheckoutViewController.swift
Swift
extension CheckoutViewController { func applePayContext(_ context: STPApplePayContext, willCompleteWithResult authorizationResult: PKPaymentAuthorizationResult, handler: @escaping (PKPaymentAuthorizationResult) -> Void) { // Fetch the order details from your service MyAPIClient.shared.fetchOrderDetails(orderID: myOrderID) { myOrderDetails authorizationResult.orderDetails = PKPaymentOrderDetails( orderTypeIdentifier: myOrderDetails.orderTypeIdentifier, // "com.myapp.order" orderIdentifier: myOrderDetails.orderIdentifier, // "ABC123-AAAA-1111" webServiceURL: myOrderDetails.webServiceURL, // "https://my-backend.example.com/apple-order-tracking-backend" authenticationToken: myOrderDetails.authenticationToken) // "abc123" // Call the handler block on the main queue with your modified PKPaymentAuthorizationResult handler(authorizationResult) } } }

Apple Pay をテストする

Apple Pay をテストするには、実際のクレジットカード番号とテスト APIキーを使用する必要があります。Stripe はテスト中であることを認識し、使用に成功したテストカードトークンを返すため、請求せずにライブカードでテスト支払いを行うことができます。

Stripeテストカードまたは Apple Pay テストカードを Apple Pay ウォレットに保存して Apple Pay をテストすることはできません。

参照情報

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