API 문서
Benta Payments API는 결제 처리 서비스로, 모바일 알림을 통한 은행 입금 확인을 자동화하는 시스템입니다. 이 문서에서는 API의 사용 방법을 상세히 설명합니다.
결제 흐름도
Benta 결제 시스템은 다음과 같은 흐름으로 동작합니다.
기본 결제 흐름
결제 생성
- 클라이언트 서버에서 Benta API를 통해 결제를 생성합니다.
- API 응답으로
payToken
을 받습니다.
결제 페이지 공유
- 고객에게
https://checkout.benta.im/{payToken}
링크를 전달합니다.
- 고객에게
고객 결제 진행
- 고객은 결제 페이지에서 결제 정보를 입력합니다.
- 고객이 입금을 완료합니다.
결제 승인 처리
- Benta 앱에서 입금 알림을 인식하고 결제 상태를 '승인 대기 중'으로 변경합니다.
- 결제 처리는 다음 두 가지 방식으로 진행할 수 있습니다.
방식 1: Webhook을 통한 결제 처리
sequenceDiagram
Customer->>Checkout Page: 결제 정보 입력 및 입금
Benta App->>Benta Server: 입금 알림 인식
Benta Server->>Client Server: Webhook으로 결제 알림 전송
Client Server->>Benta Server: 결제 검증 요청 POST /payments/confirm
Benta Server->>Benta Server: 결제 검증 처리
Benta Server->>Client Server: 결제 검증 결과 전달
Client Server->>Customer: 결제 처리
방식 2: Polling 방식으로 결제 처리
sequenceDiagram
Customer->>Checkout Page: 결제 정보 입력 및 입금
Benta App->>Benta Server: 입금 알림 인식
Benta Server-->>Benta Server: 결제 상태 '승인 대기 중'으로 변경
loop 주기적 폴링
Client Server->>Benta Server: GET /callback/rest
alt 승인 대기 중인 결제가 있는 경우
Benta Server->>Benta Server: 승인 대기 중인 결제 처리
Benta Server->>Client Server: 처리된 결제 정보 전달
Client Server->>Client Server: 결제 완료 처리
Client Server->>Customer: 결제 처리
else 승인 대기 중인 결제가 없는 경우
Benta Server->>Client Server: 비어있는 결과 반환
end
end
기술적 세부 사항
1. 결제 생성 API
- 엔드포인트:
POST /api/payments
- 응답으로
payToken
제공
2. Webhook 결제 알림
- Benta 서버는 설정된 Webhook URL로 결제 상태 변경 시 알림을 전송
- 클라이언트 서버는 이 알림을 받아 결제 검증 요청
- 결제 검증 엔드포인트:
POST /payments/confirm
3. Polling을 통한 결제 확인
- 엔드포인트:
GET /callback/rest
- 클라이언트 서버가 주기적으로 API를 호출하여 승인 대기 중인 결제 확인
- 승인 대기 중인 결제가 있으면 Benta 서버에서 자동으로 처리
- 처리된 결제 정보를 클라이언트 서버에 반환
보안 고려사항
- 결제 토큰 관리
- 타임아웃 처리
결제 상태 흐름
- 결제 생성
- 입금자 정보 입력 대기 중
- 입금 확인 중
- 승인 대기 중
- 결제 완료