# 위임 인증

위임 인증은 가맹점에 로그인한 회원이 point3 결제창의 문자 인증 없이 결제하도록 하는 기능입니다. 가맹점 서버가 회원 정보에 저장된 [구매자 아이디](/payer-id)로 위임 인증을 생성해 결제창에 전달하면, 구매자는 문자 인증 없이 바로 결제를 진행할 수 있습니다.

**point3 결제창에서 구매자가 보는 화면**
- 기존: 구매자가 휴대폰 문자 인증번호 입력 → 문자 인증 완료 → 결제 금액·결제 계좌 확인 → 결제하기 → 결제 비밀번호 입력
- 위임 인증: 가맹점 서버가 로그인한 회원 확인 → 위임 인증 → 문자 인증 없이 바로 결제 화면 → 결제하기 → 결제 비밀번호 입력

결제 비밀번호 입력은 기존과 같습니다.

## 흐름

[결제 흐름과 상태](/payment-flow#전체-흐름)의 전체 흐름 중 결제창을 열기 전까지가 달라집니다. 주황색으로 표시한 단계가 위임 인증으로 추가되거나 달라지는 부분입니다.

1. 가맹점 화면 → 가맹점 서버: 주문 요청 (로그인한 회원)
2. 가맹점 서버 → point3: 위임 인증 생성 — `POST /authn/v2/delegation` **(위임 인증)**
3. point3 → 가맹점 서버: authorization_url 발급 **(위임 인증)**
4. 가맹점 서버 → point3: 결제 세션 생성 — `POST /payment/v3/session`
5. point3 → 가맹점 서버: sessionId 발급 — `status: created`
6. 가맹점 서버 → 가맹점 화면: sessionId, authorization_url 전달 **(위임 인증)**
7. 가맹점 화면 → point3: 결제창 열기 — `brandpay.redirectUrl` **(위임 인증)**
- (문자 인증 없이 결제 의사 확정) **(위임 인증)**
- (이후 승인 과정은 위임 인증 없이 결제할 때와 같습니다)

위임 인증을 사용하면 가맹점이 추가로 할 일은 두 가지입니다.

- **가맹점 서버**: 로그인한 회원의 `payerId`로 위임 인증을 생성하고, 응답의 `authorization_url`을 `sessionId`와 함께 화면에 전달합니다. [위임 인증 생성](/delegated-creation)을 참고하세요.
- **가맹점 화면**: `widgets()`의 `brandpay.redirectUrl`에 `authorization_url`을 넣어 결제창을 엽니다. [JavaScript SDK 위임 인증](/sdk-delegated)을 참고하세요.

## 로그인한 회원의 payerId 사용

위임 인증을 생성하면 point3는 문자 인증 없이 해당 `payerId`의 구매자로 결제창을 엽니다. 따라서 가맹점 서버는 로그인 세션으로 회원을 확인한 뒤, 그 회원 정보에 저장된 `payerId`로 위임 인증을 생성해야 합니다. 저장하는 방법은 [구매자 아이디](/payer-id#저장하기)를 참고하세요.

<Callout type="caution" title="로그인한 회원과 payerId가 같은 사람인지 확인하세요">
  위임 인증 생성 요청에 담긴 `payerId`가 로그인한 회원의 것이 확실한지는 가맹점이 확인해야 합니다.
</Callout>

## 위임 인증에 실패하면

위임 인증이 만료됐거나 오류로 완료되지 않으면 결제창이 구매자에게 문자 인증 화면을 보여 줍니다. 구매자가 문자 인증을 마치면 결제가 그대로 이어지므로 가맹점이 따로 처리할 일은 없습니다.

## 사용 조건과 제약

- 저장된 `payerId`가 있는 회원에게만 사용할 수 있습니다. 등록되지 않은 구매자는 위임 인증 없이 결제해 `payerId`를 받으세요.
- 웹과 [앱](/integration-methods#react-native-flutter-네이티브-앱) 모두 사용할 수 있습니다. [등록 전용 위젯](/registration-integration)은 결제 세션이 없으므로 사용할 수 없습니다.
- 위임 인증은 생성 후 5분 동안 유효하고, 한 번의 결제창 실행에만 사용할 수 있습니다.
