欧州経済領域における強力な顧客認証 トランザクション

2020年12月31日に施行された欧州連合の制定法により、欧州経済領域(EEA)のユーザーを対象に強力な顧客認証(SCA)の要件が導入されました。これは、この地域のユーザーのオンラインでの購入方法に大きな影響を与えるものです。App StoreおよびApple Payは強力な顧客認証に対応していますが、各デベロッパは、AppにStoreKitおよびApple Payを実装していて、購入を正しく処理できることを確認する必要があります。

変更の内容

欧州連合の規制の1つである決済サービス指令第2版(PSD2)(英語)は、詐欺行為の防止を目的とし、特定のオンライン購入に対して強力な顧客認証(SCA)を実施することを義務付けています。Webサイト、App、App Storeでクレジットカードまたはデビットカードを使用したトランザクションを開始する場合、銀行またはペイメントサービスプロバイダによる認証を実施してからでなければ、トランザクションを完了することができません。

  • 自動更新サブスクリプションの場合は、初回のトランザクションのみSCAが義務付けられています。
  • 購入額が30ユーロ未満の場合は、SCAが求められない場合があります。
  • Apple Payを使用した購入の場合は、Apple PayがすでにSCAの要件を満たしているため、追加の認証は必要ありません。
  • キャリア決済その他の決済サービスApple IDの残高(ギフトカードまたは入金によるもの)を使用した購入の場合、追加の認証は必要ありません。

StoreKitによるトランザクションの処理

App内課金でSCAが必要な場合は、ユーザーにクレジットカードまたはデビットカードの認証を求めるメッセージが表示されます。購入フローは一時的に中断し、ユーザーは銀行またはペイメントサービスプロバイダのWebサイトまたはAppに誘導され、そこで認証を行います。その後App Storeにリダイレクトされ、購入完了を知らせるメッセージが表示されます。このトランザクションの中断への対応方法は、承認と購入のリクエストを使用した購入(ファミリーオーガナイザーから購入への承認を得る必要がある場合)や、更新されたApp Storeの利用規約に同意しないと完了できない購入などの対応方法に類似しています。

トランザクションの中断にAppが適切に対応するよう、トランザクションオブザーバを初期化し、新しいトランザクションに応答して保留中のトランザクションをAppleと同期させてください。このオブザーバにより、ユーザーがAppから離れることでペイメントキューのステータスが「failed(失敗)」または「deferred(遅延)」に更新され、AppがSCAのトランザクションに対応できるようになります。認証後にユーザーがApp Storeにリダイレクトされると、ステータスが「purchased(購入済み)」の新しいトランザクションがただちにオブザーバに通知されます。この際に、transactionIdentifier(英語)プロパティの値が新しくなることがあります。トランザクションの中断を伴う購入の流れは、特定のSandbox Apple IDのSandboxでテストすることができます。

リソース

Apple Payによるトランザクションの処理

Apple Payには認証機能が組み込まれているため、銀行による追加の認証は必要ありません。ただし、AppおよびWebサイトでのApple Payによる支払いの問題発生を防ぐため、ペイメントリクエストで正しい国コードを使用し、ペイメントシートに最終的な金額を表示するようにしてください。

Appの場合はPKPaymentRequest(英語)、Webサイトの場合はApplePayPaymentRequest(英語)のリクエストに対するcountryCodeの値は、支払われる金額が処理される国に該当する、正しい2文字の国コードに設定する必要があります。国コードを正しく設定することで、マーチャントのcountryCodeとユーザーのカード発行会社の所在地がいずれも欧州経済領域(EEA)内である場合に、クリプトグラムをPSD2に準拠させることができます。

ペイメントシートには、未確定の金額ではなく、最終的な金額を表示してください。これは、トランザクションの金額とマーチャントIDがクリプトグラムに含まれている動的リンクで、トランザクションの発信元および正当性を証明する上で役立ちます。

Apple Pay関連のドキュメントを見る(英語)