セッションの仕組み
非同期の検証フローは、アプリケーションの外部で発生する顧客とのやり取りによって変わるため、管理が複雑になります。VerificationSessions は、検証フローのステータスを追跡することで、この管理を簡略化します。
VerificationSession が作成されると、そのステータスは requires_input
になり、ユーザが検証プロセスを開始する準備が整います。VerificationSession は、検証フロー開始の直前に作成することをお勧めします。
ユーザーがセッションを送信すると、VerificationSession は processing
に移行します。ほとんどの検証チェックは 1 分未満で処理されます。
VerificationSession の verified
ステータスは、検証フローが完了したことを意味します。すべての検証チェックの処理が完了し、検証に成功しました。
(文書が不正であるなどの理由で) いずれかの検証チェックに失敗した場合は 、VerificationSession のステータスは requires_input
に戻ります。検証が失敗した理由の説明は、セッションの last_error
フィールドにあります。ユーザーに確認を再度試行してもらうには、VerificationSession を取得して、新しい URL または Client Secret を取得する必要があります。provided_details
フィールドに示される詳細がユーザーに表示される場合があります。
processing
または verified
より前の時点であれば、いつでも VerificationSession をキャンセルできます。これにより、その VerificationSession を今後情報の送信に使用することはできなくなり、これを取り消すことはできません。
セッションイベント
セッションのステータスが変化するたびにイベントが作成されます。VerificationSession イベントタイプの全リストはこちらをご覧ください。
イベントタイプ | 説明 |
---|---|
identity.verification_session.created | セッションが作成されました。 |
identity.verification_session.processing | ユーザが情報を送信し、検証チェックは処理を開始しました。 |
identity.verification_session.verified | すべての検証チェックの処理が完了し、すべての検証が成功しました。 |
identity.verification_session.requires_input | すべての本人確認チェックの処理が完了し、少なくとも 1 つの確認が失敗しました。 |
identity.verification_session.canceled | セッションはキャンセルされ、今後の送信試行は無効化されました。このイベントは、セッションがキャンセルされた場合、または編集された場合に送信されます。 |
identity.verification_session.redacted | セッションが編集されました。このイベントタイプにアクセスするには、このイベントタイプに明示的に登録する Webhook エンドポイントを作成する必要があります。すべてのイベントタイプに登録する Webhook エンドポイントに、このイベントタイプは含まれません。 |
検証が失敗または成功したときにユーザにメールを送信するなど、特定のイベントに対してアクションを取ることをお勧めします。
Stripe では、Webhook を使用してイベントをリッスンすることをお勧めします。