포스트

결제

결제

결제 흐름

  • 결제를 생성
  • 결제 성공 및 실패 시, 결제 엔티티 값 수정
  • 결제 성공 및 실패 시, 히스토리 내역 남기기

API

결제 생성

1
POST /v1/payments
Parameter설명
orderKey주문 키
useOwnedCouponId사용한 쿠폰
usePoint사용한 포인트
  1. 주문 키에 해당하는 주문 조회
  2. 해당 상품에 사용 가능한 쿠폰 조회
  3. 포인트 잔액 조회
  4. 쿠폰포인트 차감 후 결제 금액 계산
  5. 주문READY 상태인지 체크
  6. 결제 상태 READY결제 엔티티 생성 및 저장

결제 성공

1
POST /v1/payments/callback/success
Parameter 
orderId주문 키(PG사 측 스펙)
paymentKey결제 키(PG사 측 스펙)
amount금액
  1. 주문 키주문 상태CREATED주문 조회
  2. 주문에 해당하는 결제 조회
  3. 결제 유저주문 유저가 동일한지 체크
  4. 결제 상태READY인지 체크
  5. 결제 금액과 파라미터로 받은 금액이 일치하는지 체크
  6. 결제 외부 API 호출
  7. 결제 엔티티 상태 값 변경
  8. 주문 엔티티 PAID로 상태 변경
  9. 사용한 쿠폰이 있다면 쿠폰 사용 완료로 상태 값 변경
  10. 포인트 차감
  11. 포인트 적립
  12. 결제 히스토리 테이블성공 내역 저장

결제 실패

1
POST /v1/payments/callback/fail
Parameter설명
orderId주문 키(PG사 측 스펙)
code실패 코드(PG사 측 스펙)
message메세지
  1. 주문 키주문 상태CREATED주문 조회
  2. 주문에 해당하는 결제 조회
  3. 결제 히스토리 테이블에 실패 내역 저장

개념도

  • 결제는 주문을 의존
  • 결제는 결제 시, 포인트와 쿠폰을 사용하므로 포인트와 쿠폰도 의존
  • TransactionHistory에 결제 성공 및 실패에 대한 내역 저장

참고

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.