コンテンツにスキップ
アカウントを作成
または
サインイン
Stripe ドキュメントのロゴ
/
AI に質問する
アカウントを作成
サインイン
始める
支払い
財務の自動化
プラットフォームおよびマーケットプレイス
資金管理
開発者向けのツール
始める
支払い
財務の自動化
始める
支払い
財務の自動化
プラットフォームおよびマーケットプレイス
資金管理
概要
導入を開始
商品
グローバル入金
Capital
カードを発行する
    概要
    Issuing の仕組み
    利用可能な国
    不正使用に対応する
    カード
    カードタイプを選択する
    バーチャルカード
    バーチャルカードを発行する
    物理カード
    カードを管理する
    デジタルウォレット
    再発行カード
    カードプログラム
    プログラム管理
    カードプログラムをカスタマイズする
    カードプログラムに資金を追加する
    Credit Consumer Issuing
    管理
    支出管理
    高度な不正利用防止ツール
    3DS
    不正利用に関するチャレンジ
    リアルタイムのオーソリ
    PIN 管理
    Issuing Elements
    トークン管理
    資金調達
    残高
    Stripe の実装に後から資金を追加する
    動的リザーブの実装に後から資金を追加する
    購入
    オーソリ
    取引
    不審請求の申請
    テスト
    加盟店カテゴリ
    ATM の利用
    Connect 付きの Issuing
    Issuing と Connect の実装を設定
    利用規約への同意を更新
    Connect の資金
    連結アカウント、カード保有者、カード
    埋め込みカード管理 UI
    貸方
    概要
    連結アカウントを設定する
    クレジット規約を管理する
    その他の与信判断を報告して AAN を管理
    与信判断に必要な規制に関するデータの報告
    アカウントの債務を管理する
    クレジット連携のテスト
    追加情報
    カード保有者タイプを選択する
    Issuing と Treasury の顧客サポート
    Issuing ウォッチリスト
    マーケティングのガイドライン (ヨーロッパ/イギリス)
    製品のマーケティングとコンプライアンスのガイドライン (アメリカ)
Treasury
資金の管理
ホーム資金管理Issuing cards

注

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

Issuing でデジタルウォレットを使用する

Issuing を使用してデジタルウォレットにカードを追加する方法をご紹介します。

ページをコピー

Issuing を使用すると、ユーザーは Apple Pay や Google Pay などのデジタルウォレットにカードを追加できます。Stripe は、以下の 2 つの方法でカードの追加をサポートしています。

  1. 手動のプロビジョニング: カード保有者は、スマホのウォレットアプリケーションにカード情報を入力して、デジタルウォレットに追加します。
  2. プッシュプロビジョニング: モバイルアプリケーションでは、ユーザーがアプリから直接、デジタルウォレットにカードを追加できます。

カードがデジタルウォレットに追加されると、そのカードのトークン化された表記が作成されます。ネットワークトークンは、カードとは別に管理されます。ネットワークトークンとその仕組みについて、詳細はトークン管理をご覧ください。

手動のプロビジョニング

カード保有者は、手動のプロビジョニングを使用して、Stripe Issuing のバーチャルカードと物理カードを Apple Pay、Google Pay、Samsung Pay のウォレットに追加できます。

これを行うには、カード保有者はスマートフォンでウォレットアプリを開いてカード詳細を入力します。Stripe は、カードに関連付けられたカード保有者の phone_number または email に 6 桁の確認コードを送信します。

カードのプロビジョニング時にカード保有者にいずれのフィールドも設定されていない場合は、「card not supported (カードがサポートされていません)」というエラーが表示されます。

手動のプロビジョニングの実装にコードは必要ありませんが、設定のプロセスは、デジタルウォレットのプロバイダーと本拠を置く国によって異なることがあります。

アメリカ

Apple Pay ウォレットには、Apple からの承認が必要です。アカウントの Apple Pay のステータスを確認するには、デジタルウォレット設定を確認します。Apple Pay のご利用前に、お申し込みの提出が必要になる場合があります。

Google Pay と Samsung Pay では、これ以外のステップは必要ありません。

ヨーロッパ/イギリス

デジタルウォレットを導入するには、Stripe パートナーシップチームからの追加承認が必要です。詳細については、アカウント代表者に連絡するか、Stripe にお問い合わせください。

Apple Pay ウォレットには、追加の承認が必要です。アカウントの Apple Pay のステータスを確認するには、デジタルウォレット設定を確認します。Apple Pay のご利用前に、申請書の提出が必要になる場合があります。

プッシュプロビジョニング

プッシュプロビジョニングでは、カード保有者が下記のように「ウォレットに追加する」ボタンを押すことにより、アプリを使用して Stripe Issuing カードをデジタルウォレットに追加できます。

アメリカでプッシュプロビジョニングを有効にするには、ユーザーは最初に手動のプロビジョニング手順を完了する必要があります。プッシュプロビジョニングでは、手動でのプロビジョニングの承認に加え、Stripe SDK を導入しなければなりません。

そのためには、プッシュプロビジョニングのサポートを希望するプラットフォームごとに、Stripe の承認プロセスと、Stripe SDK によるコード実装の両方が必要になります。プラットフォームでの承認は、その連結アカウントのすべてに段階的に適用されます。

Samsung Pay のプッシュプロビジョニングは、Stripe の SDK ではサポートされていません。

「Add to Apple Wallet」という黒色の UI ボタン。テキストの左側には Apple Wallet ロゴイメージがあります。青、黄、緑、赤のカードが少しずつずれて重なっているグレーのウォレットです。

アクセスをリクエスト

プッシュプロビジョニングには、com.apple.developer.payment-pass-provisioning と呼ばれる Apple からの特別なエンタイトルメントが必要です。これは support-issuing@stripe.com にメールを送信して、リクエストすることができます。メールには、以下の内容を含めてください。

  • カードネットワーク: Visa または MasterCard。
  • カード名: ウォレットに表示されるカードの名前です。
  • アプリ名: アプリの名前。
  • 開発チーム ID: メンバーシップの Apple Developer アカウントに記載されています (例: 2A23JCNA5E)。
  • ADAM ID: アプリの一意の数値 ID。App Store Connect またはアプリへの App Store リンク (https://apps.apple.com/app/id123456789 など) に記載されています。
  • バンドル ID: アプリのバンドル ID。App Store Connect (com.example.yourapp など) にも記載されています。

上記の属性に関する別のフィールドが設定されたアプリ (テストアプリなど) が複数ある場合は、アクセス権を個別にリクエストする必要があります。

リクエストが承認されて適用されると、Wallet アプリのプロビジョニングされたカードの詳細ページにアプリが表示され、PKPassLibrary().passes() を呼び出すことで PKSecureElementPass オブジェクトをアプリで使用できるようになります。変更を有効にするために、カードを削除して再びプロビジョニングする必要が生じる場合があります。

利用資格を確認
クライアント側

お客様のアプリに最新バージョンの Stripe iOS SDK が導入されていることを確認してください。

デバイスにプッシュプロビジョニングを使用する資格があるかどうかを判断します。

  1. 発行されたカードの wallets[apple_pay][eligible] の値が true であることを確認します。
  2. カードの wallets[primary_account_identifier] を指定して PKPassLibrary().canAddSecureElementPass(primaryAccountIdentifier:) を呼び出し、結果が true であることを確認します。primary_account_identifier が空である場合は、空の文字列を canAddSecureElementPass() に渡します。

これらの値をバックエンドで取得し、アプリに渡して利用資格を確認します。

警告

PKAddPassButton を表示する前に、サーバー側の wallets[apple_pay][eligible] フラグと canAddSecureElementPass() の結果を確認する必要があります。これらの値を確認せずに Apple Wallet に追加ボタンを表示すると、アプリの審査でアプリが拒否される場合があります。

Swift
import Stripe class MyViewController: UIViewController { @IBOutlet weak var addPassButton: PKAddPassButton! // ... func handleEligibilityResponse(eligible: Bool, primaryAccountIdentifier: String?) { if eligible && PKPassLibrary().canAddSecureElementPass(primaryAccountIdentifier: primaryAccountIdentifier ?? "") { addPassButton.isHidden = false } else { addPassButton.isHidden = true } } }

詳細については、サンプルアプリの各ステップのコードスニペットとリファレンスをご覧ください。このステップについては、サンプルアプリで適格性を確認する方法をご覧ください。

カードをプロビジョニングする
クライアント側

ユーザーが PKAddPassButton をタップしたら、プッシュプロビジョニングフローのための Apple UI が含まれる PKAddPaymentPassViewController を作成して表示します。

注

PKAddPaymentPassViewController は、前のステップの primaryAccountIdentifier を使用して、カードが特定のデバイスですでにプロビジョニングされているかどうかを判断できます。たとえば、カードがすでに iPhone に追加されている場合は、Apple UI はペアリングされた Apple Watch にカードを追加することを提案します。

Swift
import Stripe class MyViewController: UIViewController { // ... func beginPushProvisioning() { let config = STPPushProvisioningContext.requestConfiguration( withName: "Jenny Rosen", // the cardholder's name description: "RocketRides Card", // optional; a description of your card last4: "4242", // optional; the last 4 digits of the card brand: .visa, // optional; the brand of the card primaryAccountIdentifier: self.primaryAccountIdentifier // the primary_account_identifier value from the previous step ) let controller = PKAddPaymentPassViewController(requestConfiguration: config, delegate: self) self.present(controller!, animated: true, completion: nil) } }

詳細については、サンプルアプリで PKAddPaymentPassViewController を使用する方法をご覧ください。

PKAddPaymentPassViewControllerのイニシャライザーは、実装が必要なデリゲートを受け取ります。これは通常、それを表示するビューコントローラーにのみできます。Stripe では、 STPPushProvisioningContext と呼ばれるクラスを提供し、これらのメソッドを実装できるようにしています。

Swift
class MyViewController: UIViewController { var pushProvisioningContext: STPPushProvisioningContext? = nil // ... } extension MyViewController: PKAddPaymentPassViewControllerDelegate { func addPaymentPassViewController(_ controller: PKAddPaymentPassViewController, generateRequestWithCertificateChain certificates: [Data], nonce: Data, nonceSignature: Data, completionHandler handler: @escaping (PKAddPaymentPassRequest) -> Void) { self.pushProvisioningContext = STPPushProvisioningContext(keyProvider: self) // STPPushProvisioningContext implements this delegate method for you, by retrieving encrypted card details from the Stripe API. self.pushProvisioningContext?.addPaymentPassViewController(controller, generateRequestWithCertificateChain: certificates, nonce: nonce, nonceSignature: nonceSignature, completionHandler: handler); } func addPaymentPassViewController(_ controller: PKAddPaymentPassViewController, didFinishAdding pass: PKPaymentPass?, error: Error?) { // Depending on if `error` is present, show a success or failure screen. self.dismiss(animated: true, completion: nil) } }

詳細については、サンプルアプリで PKAddPaymentPassViewControllerDelegate を実装する方法をご覧ください。

STPPushProvisioningContext のイニシャライザーが keyProvider を要求していることがわかります。これは、STPIssuingCardEphemeralKeyProvider プロトコルを実装するクラスのインスタンスです。

このプロトコルは、単一の必須メソッド createIssuingCardKeyWithAPIVersion:completion を定義します。このメソッドを実装するには、バックエンドに API コールを実行します。バックエンドが Stripe API を使用して一時キーオブジェクトを作成し、アプリに返します。次に、アプリはバックエンドの API レスポンスを使用して、指定された完了ハンドラを呼び出します。

Swift
extension MyViewController: STPIssuingCardEphemeralKeyProvider { func createIssuingCardKey(withAPIVersion apiVersion: String, completion: @escaping STPJSONResponseCompletionBlock) { // This example uses Alamofire for brevity, but you can make the request however you want AF.request("https://myapi.com/ephemeral_keys", method: .post, parameters: ["api_version": apiVersion]) .responseJSON { response in switch response.result { case .success: if let data = response.data { do { let obj = try JSONSerialization.jsonObject(with: data, options: []) as! [AnyHashable: Any] completion(obj, nil) } catch { completion(nil, error) } } case .failure(let error): completion(nil, error) } } } }

詳細については、サンプルアプリで STPIssuingCardEphemeralKeyProvider を実装する方法をご覧ください。

バックエンドを更新する
サーバ側

プッシュプロビジョニングの実装によって公開されるメソッドでは、お客様が自身のバックエンドとやり取りをし、Stripe の一時キーを作成してその JSON をアプリに返すことが求められます。このキーは有効期間の短い API 認証情報で、暗号化されたカード詳細の取得に使用でき、それがカードオブジェクトの単一インスタンスに使用されます。

Stripe API によって返されるオブジェクトがお使いの iOS または Android の SDK と互換性があることを確認するために、Stripe SDK では、優先される API バージョンを確認できます。キーを作成する際は、Stripe API に対してこの API バージョンを明示的に渡す必要があります。

Command Line
curl
curl https://api.stripe.com/v1/ephemeral_keys \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "issuing_card"="{{ISSUING_CARD_ID}}" \ -H "Stripe-Version: {{API_VERSION}}"
{ "id": "ephkey_1G4V6eEEs6YsaMZ2P1diLWdj", "object": "ephemeral_key", "associated_objects": [ { "id": "ic_1GWQp6EESaYspYZ9uSEZOcq9", "type": "issuing.card" } ], "created": 1586556828, "expires": 1586560428, "livemode": false, "secret": "ek_test_YWNjdF8xRmdlTjZFRHelWWxwWVo5LEtLWFk0amJ2N0JOa0htU1JzEZkd2RpYkpJdnM_00z2ftxCGG" }

詳細については、サンプルバックエンドで Stripe の一時キーを作成する方法をご覧ください。

テスト

com.apple.developer.payment-pass-provisioning エンタイトルメントは、配信プロビジョニングプロファイルでのみ機能します。このため、エンタイトルメントの取得後も、エンドツーエンドのプッシュプロビジョニングのフローをテストする唯一の方法は、アプリを TestFlight または App Store で配信することです。

テストを容易にするために、Stripe は STPFakeAddPaymentPassViewController と呼ばれるモック版の PKAddPaymentPassViewControllerを提供しています。テストの際はこれを代わりに使用できます。

Swift
import Stripe class MyViewController: UIViewController { // ... func beginPushProvisioning() { let config = STPPushProvisioningContext.requestConfiguration( withName: "Jenny Rosen", // the cardholder's name description: "RocketRides Card", // optional; a description of your card last4: "4242", // optional; the last 4 digits of the card brand: .visa // optional; the brand of the card ) let controller = STPFakeAddPaymentPassViewController(requestConfiguration: config, delegate: self) self.present(controller!, animated: true, completion: nil) } }

サンプルアプリを作成するには、readme の手順に従います。上記の手順に従うために、アプリを作成する必要はありません。

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