
클라이언트가 스크립트를 조작해서 결제를 요청,완료할 수 있기 때문에 아래 단계를 거쳐 결제를 진행해야 함.
클라이언트가 서버한테 상품 결제한다고 알림.
백엔드 상품 사전 등록
axios({
url: "https://api.iamport.kr/payments/prepare",
method: "post",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${access_token}`,
},
data: {
merchant_uid: "ORD20180131-0000012", // 가맹점 주문번호 (unique key)
amount: 64900, // 결제 예정금액
},
})merchant_uid 클라이언트에게 전달클라이언트 결제 진행
IMP.request_pay(
{
pg: "kcp.AO09C",
pay_method: "card",
merchant_uid: "ORD20180131-0000012", // 주문번호
name: "노르웨이 회전 의자",
amount: 1234, // 숫자 타입
buyer_email: "gildong@gmail.com",
buyer_name: "홍ㅂㅈㄷㄹ길동",
buyer_tel: "010-4242-4242",
buyer_addr: "서울특별시 강남구 신사동",
buyer_postcode: "01181",
},
function (rsp) {
console.log(rsp);
}
);


- 벡엔드- 클라이언트에서 결제완료건 검증
- 클라이언트에서 결제완료시 웹 훅으로 `imp_uid` `merchant_uid` 받음.
- 결제 고유번호(**`imp_uid`**)로 portOne에서 상품의 정보를 획득
- `merchant_uid` 을 통해 DB 정보 조회

- 상품 정보의 가격과 DB에 저장된 상품의 가격 비교
- 일치 ⇒ DB에 저장
- 불일치 ⇒ 알림