ASWebAuthenticationSession
iOSの利用では、ASWebAuthenticationSessionの使用が推奨されるアプローチの1つです。
取引を作成し、取引リンクを取得した後は、以下の実装をお勧めします。
- 通常のフロー(カード非提示認証を含む)の中で、APIを通じて生成されたリンクでASWebAuthenticationSessionを開きます。
- アプリケーションに最適な方法で、この開き方をカスタマイズできます。
- URLが変更されたかどうか(
redirectUrlへの変更)を監視し、変更があればページを閉じます。
フローを機能させるには、以下の手順に従う必要があります。
ステップ1:支払い認証コントローラーを作成する
最初のステップは、支払い認証コントローラーを作成することです。そのためには、IDPayAuthenticationController(または任意の名前)というクラスを作成 します。
次に、クラスの先頭でAuthenticationServicesフレームワークをインポートします。
クラスをNSObjectとして宣言し、ASWebAuthenticationPresentationContextProvidingプロトコルを実装します。
結果は以下のようになります。
import AuthenticationServices
class IDPayAuthenticationController: NSObject, ASWebAuthenticationPresentationContextProviding {
func presentationAnchor(for session: ASWebAuthenticationSession) -> ASPresentationAnchor {
if let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene {
if let mainWindow = windowScene.windows.first {
return mainWindow
}
}
return ASPresentationAnchor()
}
}