日本語ドキュメント

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 Sandbox環境を使います。

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

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

  3. ウォレットアプリで、手動入力を使って新しいカードを登録します。

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

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