非同期モードでの結果取得
概要
自己情報取得APIとの連携では、自己情報の取得結果を事業者サービスがどのように受け取るかを 自己情報取得結果の受け取りモード で選択できます。このモードはAPIサービスごとに設定でき、自己情報取得APIの設定から変更します。
モードには 同期モード と 非同期モード の2種類があります。
- 同期モード(デフォルト)
- エンドユーザーから自己情報取得の同意を得た後、MynaConnect上の待機ページでマイナポータルからの自己情報取得が完了するまで待ち、完了後に事業者サービスへリダイレクトします。事業者サービスがコールバックを受け取った時点で、すでに自己情報の取得は完了しています。
- 非同期モード
- エンドユーザーから自己情報取得の同意を得た後、自己情報の取得完了を待たずに即座に事業者サービスへリダイレクトします。自己情報の取得はMynaConnect側でバックグラウンドで進むため、事業者サービスは
GetSelfPersonalDataRequestStatusをポーリングして取得完了を待ちます。
- エンドユーザーから自己情報取得の同意を得た後、自己情報の取得完了を待たずに即座に事業者サービスへリダイレクトします。自己情報の取得はMynaConnect側でバックグラウンドで進むため、事業者サービスは
受け取りモードは、連携フローで説明している本人確認情報の取得・照合の有無(3種類のフロー)とは独立した設定です。どのフローを使う場合でも、このモードによる違いは最後の「結果取得・活用フェーズ」にのみ影響します。
注記
本人確認情報を照合する場合のフローでは、1回目(基本4情報取得)の後に一度事業者サービスへコールバックして本人確認を行う分岐がありますが、この分岐は受け取りモードの影響を受けません。受け取りモードが作用するのは、自己情報取得を要求した後の最終リダイレクトのみです。
使いどころ
非同期モードは、次のような場合に適しています。
- ローディングUXを自社で制御したい — MynaConnectの待機ページを表示せず、事業者サービスの画面・ブランドで独自のローディング表示や進捗演出を行いたい場合。
- モバイルアプリ/WebViewでの制御性 — iOS/Androidアプリで、外部の待機ページに留まらずアプリのネイティブ画面に戻してから状態をポーリングしたい場合。
- ユーザーを待たせず即時に戻したい — 取得に時間がかかる可能性があるケースで、ユーザーを待機させずに事業者サービスへ戻し、結果取得は後続処理で行いたい場合。
- 結果取得をサーバーサイドに寄せたい — ブラウザを拘束し続けず、サーバーサイドのジョブやバッチで状態のポーリングと結果取得を行いたい場合。
フロー図
以下は、本人確認情報を取得しない場合のフローを非同期モードで実行した場合の例です。本人確認情報を照合しない場合・照合する場合のフローでも、「結果取得・活用フェーズ」の違いは同様です。
ステータス遷移と異常時の対応
非同期モードでは、事業者サービスへのコールバック後に GetSelfPersonalDataRequestStatus を一定間隔でポーリングし、ステータスが SUCCESS になってから GetSelfPersonalDataRequestResult で自己情報を取得します。
ポーリング中に返りうる主なステータスは以下です。
PENDING/FETCHING— まだ取得処理中です。一定間隔をおいて再度GetSelfPersonalDataRequestStatusを呼び出してください。SUCCESS— 取得が完了しています。GetSelfPersonalDataRequestResultで自己情報を取得してください。ERROR— 取得処理が失敗しました。ポーリングを打ち切り、エラーとして処理してください。EXPIRED— セッションの有効期限が切れています。ポーリングを打ち切り、必要に応じてCreateSelfPersonalDataRequestSessionでセッションを作成し直してください。
有効期限との関係
セッションの有効期限で説明している2つの有効期限は、非同期モードでも同様に適用されます。