
Apple Payを使ってカードで支払う
Apple Payを使って、店舗、アプリ内、およびWebサイトで購入したものの代金を支払うことができます。
店舗でカードで支払う
動作中のiPhoneまたはApple WatchがNFCフィールドを検出した場合に、Appleウォレットがデフォルトの非接触型決済アプリとして設定されていると、デバイスは要求されたカード(そのカードで自動選択がオンになっている場合)、またはAppleウォレットからのデフォルトカード(「設定」で管理される)をユーザに提示します。ユーザは、Appleウォレットでカードを選択することもできます。デバイスがロックされている場合は、以下の操作を行えます:
Face ID搭載デバイスでサイドボタンをダブルクリックする(Appleウォレットがデフォルトアプリの場合)
Touch ID搭載デバイスでホームボタンをダブルクリックする(Appleウォレットがデフォルトアプリの場合)
ロック画面からApple Payを許可するアクセシビリティ機能を使用する
次に、情報が送信される前に、ユーザは支払いの意図を確認し、以下のいずれかの方法を使用して自身の認証を行う必要があります:
生体認証
デバイスのパスコードまたはパスワード
ロック解除されたApple Watchのサイドボタンをダブルクリックする
ユーザの認証がない限り、支払い情報は送信されません。
ユーザの識別情報が検証されると、デバイスアカウント番号と一意のセキュリティコードを使って支払いが処理されます。カードの番号全体が、Appleやユーザのデバイスから加盟店に共有されることはありません。ただし、トランザクションの時刻や場所などの匿名データをAppleが入手する場合があります。この情報は、Apple Payやその他のAppleサービスの改善に役立てられます。
アプリ内でカードで支払う
Apple Payは、iOS、iPadOS、macOS、watchOS、visionOSのアプリでの支払いにも使用できます。ユーザがApple Payを利用してアプリ内で支払うと、Appleは暗号化されたトランザクション情報を受信して、ユーザが支払う先のデベロッパまたは加盟店にルーティングします。Appleはデベロッパ固有の鍵を使ってトランザクションを再暗号化してから、デベロッパまたは加盟店に送信します。この目的は、許可を受けた、鍵のペアを持つデベロッパのみが情報を復号できるようにすることです。Apple Payには、おおよその購入金額などが匿名のトランザクション情報として保持されます。この情報によってユーザを特定することはできず、ユーザの購入内容がこの情報に含まれることは決してありません。
店舗でApple Payを使用するほかは、iOS、iPadOS、macOS、watchOS、visionOSのアプリでの支払いにも使用できます。ユーザがアプリ内で支払うと、Appleは暗号化されたトランザクションデータを取得します。そのあと、Appleはこのデータを適切なデベロッパや加盟店に送信します。送信の前に、Appleはデベロッパ固有の鍵を使ってデータを再暗号化します。これにより、許可を受けたデベロッパのみがデータにアクセスできるようになります。Apple Payは、購入金額などの匿名データを保持します。ただし、このデータはユーザに紐付けられておらず、ユーザの購入内容が明らかになることはありません。
アプリがApple Payの支払いトランザクションを開始すると、デバイスからの暗号化されたトランザクションは、加盟店よりも前にApple Payサーバに送信されます。Apple Payサーバがそのトランザクションを受信すると、加盟店固有の鍵を使ってトランザクションを再暗号化したあと、加盟店に転送します。
アプリが支払いを要求する場合、そのアプリはAPIを呼び出して、デバイスがApple Payに対応しているかどうか、および加盟店が対応しているペイメントネットワーク上で支払い可能なクレジットカードまたはデビットカードをユーザが保持しているかどうかを調べます。アプリは、請求先住所、出荷先住所、連絡先情報など、トランザクションの処理および完了に必要となる情報を要求します。次にアプリは、iOS、iPadOS、macOS、watchOS、またはvisionOSにApple Payの提示を要求します。このシートは、アプリの情報と、必要なその他の情報(使用するカードなど)を、iOS、iPadOS、macOS、watchOS、またはvisionOSに要求します。
この時点でアプリには、最終的な送料を計算するための市区町村、都道府県、郵便番号の情報が通知されます。要求したすべての情報がアプリに提供されるのは、ユーザが以下のいずれかの方法を使って支払いを承認したあとです:
生体認証
デバイスのパスコードまたはパスワード
ロック解除されたApple Watchのサイドボタンをダブルクリックする
支払いが承認されると、Apple Payシートで提供された情報が加盟店に転送されます。
App Clip内でカードで支払う
App Clipは、そのアプリのごく一部の機能を提供して、完全なアプリをダウンロードしなくても、自転車を借りたり駐車場代を支払ったりといったタスクをユーザが素早く実行できるようにします。App Clipが支払いに対応している場合、ユーザは「Appleでサインイン」を使用してから(アプリのデベロッパによって設定されていれば)、Apple Payを使用して支払いを行うことができます。ユーザがApp Clip内から支払いを行うと、すべてのセキュリティおよびプライバシー対策はアプリ内での支払いの場合と同じになります。
アプリ支払いをユーザが承認し、加盟店が検証する方法
ユーザと加盟店は、安全なアプリ支払いのために、Apple Payサーバ、Secure Element、デバイス、アプリのAPIに情報を渡します。まず、ユーザがアプリ支払いを承認します。そのあと、アプリはApple Payサーバに暗号アンチリプレイ値を要求します。サーバはこの値とほかのトランザクションデータをSecure Elementに送信します。そこで支払い資格情報が作成され、Appleの鍵を使用して暗号化されます。次に、Secure Elementは支払い資格情報をApple Payサーバに戻します。Apple Payサーバは資格情報を復号し、そのアンチリプレイ値とApple Payサーバからあらかじめ送信されたアンチリプレイ値とを照合してから、加盟店の鍵を使って支払い資格情報を再暗号化します。そして、サーバが支払いをデバイスに戻し、デバイスは支払いをアプリのAPIに戻し、APIは処理のために支払いを加盟店のシステムに渡します。最後に、加盟店は支払い資格情報を検証し、トランザクションを確認します。
APIには、対応する加盟店IDを指定する加盟店IDエンタイトルメントが必要です。また、トランザクションがほかの顧客に向けて処理されないように、アプリで注文番号や顧客IDなどのデータを追加し、Secure Elementに送信して署名させることも可能です。これを行うには、アプリデベロッパがアプリケーション固有のデータ(applicationData
)を支払い要求時に指定します。このデータのハッシュが、暗号化された支払いデータに含められます。そのあと、加盟店は、自分のapplicationData
ハッシュが、支払いデータに含まれているものと一致することを確認する必要があります。
Webサイトでカードで支払う
Apple Payは、以下を使ってWebサイトで支払いを行うときに使用できます:
生体認証を使用するデバイス
Apple Watch
Touch ID搭載Magic Keyboardを使用するAppleシリコン搭載Macコンピュータ
Apple PayのトランザクションをMacで開始し、同じiCloudアカウントを使用してApple Pay対応のiPhoneまたはApple Watchでトランザクションを完了することもできます。ユーザがこの方法で支払い関連の情報を送信する場合、Apple PayのHandoffではエンドツーエンドで暗号化されたApple Identity Service(IDS)プロトコルを使用して、支払い関連情報がユーザのMacから認証側デバイスに転送されます。MacのIDSクライアントはユーザのデバイスキーを使用して暗号化を実行するため、ほかのデバイスはこの情報を復号できません。これらのキーはAppleに提供されません。
Apple PayをHandoffするためのデバイス検出には、いくつかのメタデータと一緒にユーザのクレジットカードの種類と一意の識別情報が含まれます。ユーザのカードに割り当てられているデバイスアカウント番号は共有されず、ユーザのiPhoneまたはApple Watchで安全に保管された状態で維持されます。また、AppleはiCloudキーチェーンを通じて、ユーザが最近使用した連絡先情報、出荷先住所、請求先住所を安全に転送します。
ユーザが支払いを承認すると、各Webサイトの加盟店証明書に対応して一意に暗号化されたペイメントトークンが、ユーザのiPhoneまたはApple WatchからMacに安全に転送されてから、加盟店のWebサイトに送信されます。
注記: 互いの近くにあるデバイスのみが支払いを要求および完了できます。近接性はBluetooth® Low Energy(BLE)アドバタイズメントを通じて判定されます。
また、Web上でApple Payに対応するすべてのWebサイトが、Appleに登録する必要があります。ドメインの登録後は、AppleがTLSクライアント証明書を発行したあとでのみドメイン名検証が実行されます。Apple Payに対応するWebサイトは、以下のことを実施する必要があります:
HTTPSを使用してコンテンツを提供する
Appleが発行したTLSクライアント証明書を使用して、Appleサーバとの安全な一意の加盟店セッションを取得する(支払いトランザクションごとに)
加盟店セッションデータはAppleによって署名されます。加盟店セッションの署名が検証されると、WebサイトはユーザがApple Pay対応デバイスを持っているかどうか、またユーザがそのデバイスでクレジットカード、デビットカード、プリペイドカードを有効にしているかどうかを照会できます。そのほかの詳細情報は共有されません。ユーザがこの情報を共有したくない場合は、iPhone、iPad、およびMacの各デバイスのSafariのプライバシー設定でApple Pay照会の機能を無効にできます。
Webサイトが最新バージョンのApple Pay JS SDKを使用している場合は、任意のオペレーティングシステムで他社製Webブラウザを使用してApple Payトランザクションを開始し、iOS 18以降またはiPadOS 18以降を搭載したApple Pay対応のiPhoneまたはiPad上で完了することもできます。このためには、Webサイトとの接続を確立するために、デバイスのカメラを使用してコードをスキャンする必要があります。Webサイトにこのコードが示されている場合は、WebサイトとAppleのサーバの間で安全なWebSocket接続が行われます。このコードをスキャンすると、Apple Pay対応のデバイスとAppleのサーバの間で、さらに別の安全なWebSocket接続が確立されます。これにより、Appleのサーバを中継として使用して、WebサイトとApple Pay対応のデバイスの間で必要な双方向接続が完了します。そのあと、これら双方の間で行われる通信はすべて、Apple PayのWebトランザクションに通常使用されるプロセスに従います。
加盟店セッションが検証されると、アプリ内での支払いの場合と同じプライバシーおよびセキュリティ対策がすべて適用されます。
自動支払いと加盟店トークン
iOS 16以降、iPadOS 16以降、またはmacOS 13以降を搭載したデバイスは、Apple Pay加盟店トークンを使用できます。このトークンにより、ユーザのデバイス全体にわたって安全な支払いが保証されます。アップデートされたApple Pay支払いシートは、事前承認済みの支払い操作を最適化します。Apple Pay APIは新しいトランザクションタイプにも対応しており、サブスクリプション、定期的請求、分割払い、カード残高の自動チャージなど、特定の用途に合わせてデベロッパが支払いシートをカスタマイズできます。
加盟店トークンはデバイス固有ではないため、ユーザがデバイスから支払い用カードを削除した場合でも、定期的支払いの継続が可能になります。
複数の加盟店への支払い
iOS 16以降では、Apple Payには、1つのApple Pay支払いシート内に複数の加盟店での購入金額を明記する機能が組み込まれています。これによって顧客は、航空券、レンタカー、ホテルを含む旅行パッケージを一括購入し、あとで個々の加盟店に送金するといった柔軟な支払いが可能になります。