日本語ドキュメント

Developer

Apple Payプログラミングガイド

このページの内容

Apple Payについて

Apple Payは、iOSアプリケーション、watchOSアプリケーション、Safari上のウェブサイトで、品物やサービスへの支払いを簡単かつ安全に行うための手段となるモバイル決済技術です。このプログラミングガイドでは、iOSアプリケーションでのApple Payについて説明します。

ウェブでのApple Payについては、「Apple Pay JS」を参照してください。

アプリケーション内で提供される電子商品および電子サービスの場合については、『In-App Purchaseプログラミングガイド』を参照してください。

画像:../Art/payment_intro_2x.png

Apple Payの取り扱い

Apple Payを利用するアプリケーションについては、Apple Payの機能をXcodeで有効にする必要があります。さらに、マーチャントIDを登録し、支払いデータをサーバに安全に送信するための暗号鍵である支払い処理証明書を生成します。

支払いの処理を開始するには、アプリケーションでペイメントリクエストを作成します。この要求には、サービスと商品の購入額小計に加え、税、配送料、割引に関するその他の額が保持されています。この要求をペイメントオーソライゼーションビューコントローラに渡すと、要求がユーザーに表示され、ユーザーは、送料や請求先住所をはじめとする必要な情報を入力するよう求められます。ユーザーがビューコントローラで対話的に操作を進めていくと、要求を更新するデリゲートが呼び出されます。

ユーザーが支払いを承認すると、第三者による不正アクセスを防止するため、支払い情報がただちに暗号化されます。ユーザーのデバイス上では、ペイメントリクエストは、デバイスに搭載された専用チップであるSecure Elementに送信されます。Secure Elementは、指定されたカードとマーチャントに関する支払いデータを追加し、暗号化済みのペイメントトークンを作成します。このトークンは、Appleのサーバに送信され、支払い処理証明書を使ってサーバで再暗号化されます。最後に、トークンがアプリケーションに返され、処理されます。

Appleのサーバ上では、このペイメントトークンはアクセスされることも保存されることもありません。サーバで実行されるのは、マーチャントの証明書を使ったトークン再暗号化のみです。このプロセスによって、アプリケーションは、支払い処理証明書をアプリケーションの一部として配布することなく、支払い情報を安全に暗号化できます。

Apple Payのセキュリティの詳細については、『iOSのセキュリティ』を参照してください。

ほとんどの場合、アプリケーションでは、暗号化済みのペイメントトークンをサードパーティ製のペイメントソリューションプロバイダに送信して支払い情報を復号化し、処理することになります。ただし、チームに支払いインフラストラクチャが既に存在する場合は、独自のサーバで支払い情報を復号化し、処理できます。

Apple Payをサポートしているペイメントソリューションプロバイダについては、「Apple Pay - Apple Developer」を参照してください。

Apple Pay決済のテスト

テストのための決済カードで取引をテストするには、Apple Payサンドボックス環境を使います。

  1. App Store Connectで、テストアカウントを作成します。このアカウントは、App StoreとApple Payのどちらのテストにも適用できます。

  2. 有効なテストデバイス上で、テストアカウントを使ってiCloudにログインします。

  3. Walletアプリケーションで、手動入力を使って新しいカードを登録します。

iCloudアカウントにログインした後、ログアウトすると、カードは削除されます。テストのためのカードは、サンドボックス環境でのみ使うことができます。また、サンドボックス環境でテストの対象になるのは、アプリケーションとテストカードネットワークとの接続のみです。アプリケーションとペイメントソリューションプロバイダとの接続はテストされません。

詳細については、「Apple Pay Sandbox Testing」を参照してください。