๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ์๊ด์์ด ์ํ๋ PG์ฌ์์ ๊ฒฐ์ ์์คํ
์ ์ฐ๊ฒฐ์์ผ์ฃผ๋ ๊ฒฐ์ API
[imp_uid]
๊ด๋ฆฌ์ ํ์ด์ง
์์ ์ค์ ํ์์์คํ
์ค์ - PG์ค์ (์ผ๋ฐ๊ฒฐ์ ๋ฐ ์ ๊ธฐ๊ฒฐ์ )
=> ๊ฒฐ์ ์ ํ์ํ PG์ฌ ์ค์ <!-- ํ๋ก ํธ ์๋ -->
<script
type="text/javascript"
src="https://code.jquery.com/jquery-1.12.4.min.js"
></script>
<script
type="text/javascript"
src="https://cdn.iamport.kr/js/iamport.payment-1.2.0.js"
></script>
<script
type="text/javascript"
src="https://unpkg.com/axios/dist/axios.min.js"
></script>
<script>
function mypayment() {
const myAmount = Number(document.getElementById("amount").value);
const merchant_uid = document.getElementById("merchant_uid").value;
const IMP = window.IMP; // ์๋ต ๊ฐ๋ฅ
IMP.init("๊ฐ๋งน์ ์๋ณ ์ฝ๋"); // Example: imp00000000
IMP.request_pay(
{
// param
pg: "html5_inicis",
pay_method: "card",
//merchant_uid: merchant_uid, //๊ตฌ๋งคํ carId
name: "์๋์ฐจ",
amount: myAmount,
buyer_email: "gildong@gmail.com",
buyer_name: "ํ๊ธธ๋",
buyer_tel: "010-4242-4242",
buyer_addr: "์์ธํน๋ณ์ ๊ฐ๋จ๊ตฌ ์ ์ฌ๋",
buyer_postcode: "01181",
m_redirect_url: "", // ๋ชจ๋ฐ์ผ ๊ฒฐ์ ํ ๋ฆฌ๋ค์ด๋ ํธ๋ ์ฃผ์!!
},
async (rsp) => {
// callback
if (rsp.success) {
console.log(data);
}
// );
else {
// ๊ฒฐ์ ์คํจ์
console.log("์คํจ");
}
}
);
}
</script>
//ํ๋ถ ๊ตฌํ ์ฝ๋
// ์์ํฌํธ์ ๊ฒฐ์ ์ทจ์ ์์ฒญ
getRefundData = async ({
impUid,
refundAmount,
reason,
access_token,
sum,
}) => {
const refundData = await axios({
url: 'https://api.iamport.kr/payments/cancel',
method: 'post',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${access_token}`, // ์์ํฌํธ ์๋ฒ๋ก๋ถํฐ ๋ฐ๊ธ๋ฐ์ ์์ธ์ค ํ ํฐ
},
data: {
reason: reason, // ๊ฐ๋งน์ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ๋ฐ์ ํ๋ถ์ฌ์
imp_uid: impUid, // imp_uid๋ฅผ ํ๋ถ `unique key`๋ก ์
๋ ฅ
amount: Math.abs(refundAmount), // ๊ฐ๋งน์ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ๋ฐ์ ํ๋ถ๊ธ์ก
checksum: sum, // [๊ถ์ฅ] ํ๋ถ ๊ฐ๋ฅ ๊ธ์ก ์
๋ ฅ
},
});
const { response } = refundData.data;
** ๊ฒฐ์ ์ ํ๋ถ๊ณผ์ ์ ์ค์ํ ๋ถ๋ถ์ด๊ธฐ๋๋ฌธ์ ๊ฒ์ฆํด์ผํ ๋ถ๋ถ์ด ๋ง์์ ๊ต์ฅํ ๋ณต์กํ๊ณ ์ฝ๋ ์์ฑ ์ ์์ ๊ธฐ๋ณธ์ ์ธ ์ฝ๋ ์ธ์๋ ์ ๊ฒฝ์จ์ผํ ๋ถ๋ถ์ด ๋ง์!!!