[iOS 10] 開発者のための Apple Pay 概要

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは。モバイルアプリサービス部の平屋です。

本記事では Apple Pay の開発者向けの概要をご紹介していきます。一般的な情報についてはこちらの記事などをご覧ください!

特徴

「Apple Pay」はアプリ内での決済を安全、簡単に行うためのサービスです。アプリが「Apple Pay」に対応することによって、ユーザーや開発者は以下のような利益を得ることができます。

ユーザーの利益

  • 一旦登録すれば、支払い方法や連絡先を何回も入力する必要がない
  • Touch ID を使用して支払うことができる
  • マーチャント (アプリ提供者) にクレジットカード番号を知られずに済む

開発者の利益

  • 実際のクレジットカード番号を扱わなくて良い
  • コンバージョンを向上させることができる
  • スピーディーな決済を提供できる
  • ユーザーをサービスに適応させたり、新たにアカウントを作成してもらったりする必要がない

「Apple Pay」と「アプリ内課金」

アプリ内での決済方法として「Apple Pay」と「アプリ内課金」があります。ここで両者を比較してみます。

Apple Pay アプリ内課金
使用するフレームワーク PassKit StoreKit
販売可能なもの 実物の商品やサービス デジタルコンテンツ、アプリの機能、デジタルのサービスの購読
決済処理 開発者側が行う Apple が提供する
レビューガイドライン 3.1.6 3.1.1

販売可能なものがデジタルコンテンツ等である「アプリ内課金」に対し、「Apple Pay」で販売可能なものは実物の商品やサービスです。

また、アプリ内課金の決済処理は Apple が提供しますが、「Apple Pay」の場合は決済処理を開発者側が行う必要があります。自社にクレジットカード決済のインフラが無い限り、決済処理を代わりに行なってくれるペイメントソリューションプロバイダに処理を依頼することになります。Apple Pay をサポートしているペイメントソリューションプロバイダは以下のページに載っています。

決済フロー

決済処理をペイメントソリューションプロバイダに処理を依頼する場合の大まかな決済フローを整理してみます。開発者が実装する必要があるのは、手順 [1],[2],[5] だけです。

ios-10-applepay-for-developers-1

[1] ペイメントリクエストを作成

購入額などの情報を元にペイメントリクエストを作成します。

[2] ペイメントシートを表示

PKPaymentAuthorizationViewController (または PKPaymentAuthorizationController) を使用してペイメントシートを表示します。ペイメントシートには購入額などが表示されます。ユーザーは必要に応じて送付先や請求先住所などの情報を入力します。

[3] 支払情報を暗号化

ユーザーが支払いを承認すると、支払い情報がデバイス上の専用チップ Secure Element に送信され、暗号化済みのペイメントトークンが作成されます。

[4] Appleのサーバ上で再暗号化

手順 [3] で作成されたペイメントトークンは Apple のサーバに送信され、マーチャント ID の証明書を使用して再暗号化されます。マーチャント ID は Apple Pay に対して身元を証明するものです。

[5] ペイメントトークンを取得

Apple のサーバで暗号化されたペイメントトークンがアプリに返されます。

ペイメントソリューションプロバイダが提供する方法を使用してトークンを送信します。

[6] 決済処理を実行

ペイメントソリューションプロバイダ側で、支払い情報の復号化が行われ、決済処理が実行されます。

さいごに

本記事では Apple Pay の開発者向けの概要をご紹介しました。

次の記事では Apple Pay を使用するための環境構築について解説する予定です!

参考資料