➡️결제정보 사후 검증하기

결제 정보를 사후 검증하는 과정은 크게 세 단계로 이루어집니다.

  • 응답받은 내용을 바탕으로 실 결제 금액과 결제요청금액(가맹점 자체 데이터베이스)을 비교

  • 결제 상세내역 조회를 위해 포트원 결제 단건 조회 API 요청

  • 포트원 결제고유번호(imp_uid), 가맹점 주문번호(merchant_uid)를 프론트엔드로부터 수신

STEP 01 결제결과 서버 수신

결제정보를 받은 가맹점 endpoint URL 에 대한 POST 요청을 수신하는 예제

app.use(bodyParser.json());
// "{서버의 결제 정보를 받는 가맹점 endpoint}" POST 요청 수신부
app.post("/payments/complete", async (req, res) => {
  try {
    // req의 body에서 imp_uid, merchant_uid 추출
    const { imp_uid, merchant_uid } = req.body; 
  } catch (e) {
    res.status(400).send(e);
  }
});

STEP 02 결제내역 단건 조회

수신받은 포트원 결제고유번호(imp_uid)로 결제단건조회 API 를 호출하여 결제정보 획득 예제

STEP 03 결제정보 검증

결제된 실 금액과 요청 금액을 비교하여 결제금액 위변조여부 검증 및 DB저장 예시

처음 요청한 금액은 merchant_uid 로 데이터베이스에서 조회하고 실제 결제금액은 imp_uid로 포트원 서버에서 조회하여 두 값을 비교합니다. 검증이 성공하면 결제 정보를 데이터베이스에 저장한 뒤 결제 상태(status)에 따라 알맞은 응답을 반환하고 실패 시 에러 메세지를 출력합니다.

Confirm Process 기능을 사용하여서도 결제금액 검증을 할 수 있습니다.

Last updated

Was this helpful?