強力な顧客認証トランザクション
2022年3月14日以降、金融行動監視機構(FCA:Financial Conduct Authority)により、英国のユーザーを対象として強力な顧客認証(SCA:Strong Customer Authentication)が義務付けられます。これにより、英国のユーザーによるオンライン購入の手続きが影響を受ける可能性があります。この要件は、欧州経済地域(EEA:European Economic Area)のユーザーには、2020年12月31日以降にすでに適用されています。App StoreおよびApple PayはSCAに対応していますが、各デベロッパは、アプリにStoreKitおよびApple Payが実装されており、購入を適切に処理できることを確認する必要があります。
変更の内容
英国および欧州連合の規制では、詐欺等の不正防止のため、特定のオンライン購入にSCAを義務付けています。Webサイト、アプリ、App Storeでクレジットカードまたはデビットカードを使用したトランザクションを開始する場合、トランザクションを完了するには銀行またはペイメントサービスプロバイダによる認証が実施される必要があります。
- 自動更新サブスクリプションの場合は、初回のトランザクションのみSCAが義務付けられています。それ以降の更新は、この規制の対象外となり、適用されません。
- €30未満または£25未満の購入では、SCAが不要な場合があります。
- Apple Payを使用した購入の場合は、Apple PayがすでにSCAの要件を満たしているため、追加の認証は必要ありません。
- キャリア決済、その他の決済サービス、Apple Accountの残高を使用した購入の場合、追加の認証は必要ありません。
StoreKitによるトランザクションの処理
アプリ内課金でSCAが必要な場合は、ユーザーにクレジットカードまたはデビットカードの認証を求めるメッセージが表示されます。購入フローは一時的に中断し、ユーザーは銀行またはペイメントサービスプロバイダのWebサイトまたはアプリに誘導され、そこで認証を行います。その後App Storeにリダイレクトされ、購入完了を知らせるメッセージが表示されます。このトランザクションの中断への対応方法は、承認と購入のリクエストを使用した購入(ファミリーオーガナイザーから購入への承認を得る必要がある場合)や、更新されたApp Storeの利用規約に同意しないと完了できない購入などの対応方法に類似しています。
トランザクションの中断にアプリが適切に対応するよう、トランザクションオブザーバを初期化し、新しいトランザクションに応答して保留中のトランザクションをAppleと同期させてください。このオブザーバにより、ユーザーがアプリから離れることでペイメントキューのステータスが「failed(失敗)」または「deferred(遅延)」に更新され、アプリがSCAのトランザクションに対応できるようになります。認証後にユーザーがApp Storeにリダイレクトされると、ステータスが「purchased(購入済み)」の新しいトランザクションがただちにオブザーバに通知されます。この際、transactionIdentifier
プロパティの新しい値を含む場合があります。購入が中断されたトランザクションのテストは、特定のSandbox Apple AccountのSandbox環境で行うことができます。
リソース
- ヨーロッパでの請求と購入について
- ペイメントキューに対するトランザクションオブザーバの設定
- アプリ内課金の提供、完了処理、復元
- Sandboxでのアプリ内課金のテスト
- Xcodeでのアプリ内課金のテスト
Apple Payによるトランザクションの処理
Apple Payには認証機能が組み込まれているため、銀行による追加の認証は必要ありません。ただし、アプリおよびWebサイトでのApple Payによる支払いの問題発生を防ぐため、ペイメントリクエストで正しい国コードを使用し、ペイメントシートに最終的な金額を表示するようにしてください。
アプリの場合はPKPaymentRequest
、Webサイトの場合はApplePayPaymentRequest
のリクエストに対するcountryCode
の値は、支払われる金額が処理される国に該当する、正確な2文字の国コードに設定する必要があります。国コードを正しく設定することで、マーチャントのcountryCode
とユーザーのカード発行会社の所在地がいずれも欧州経済領域(EEA)内である場合に、クリプトグラムをPSD2に準拠させることができます。
ペイメントシートには、未確定の金額ではなく、最終的な金額を表示してください。これは、トランザクションの金額とマーチャントIDがクリプトグラムに含まれている動的リンクで、トランザクションの発信元および正当性を証明する上で役立ちます。