PortPone ํฌํธ์ ๊ฒฐ์ ๋ชจ๋ ์ฐ๋
โข
ํฌํธ์
โข
ํฌํธ์ ๊ฐ์
๋ฐ ๋ก๊ทธ์ธ
โข
๊ด๋ฆฌ์ ์ฝ์
โข
๊ฒฐ์ ์ฐ๋
โข
๊ฒฐ์ ๋ํ์ฌ ์ค์
โข
ํฌํธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ
โข
๊ฐ์ฒด ์ด๊ธฐํ ํ๊ธฐ
โข
๊ฒฐ์ ์์ฒญํ๊ธฐ
โข
๊ฒฐ์ ๊ฒฐ๊ณผ ์ฒ๋ฆฌํ๊ธฐ
โข
ํ
์คํธ
ํฌํธ์
ํฌํธ์ ๊ฐ์ ๋ฐ ๋ก๊ทธ์ธ
๊ด๋ฆฌ์ ์ฝ์
๊ฒฐ์ ์ฐ๋
๊ฒฐ์ ๋ํ์ฌ ์ค์
ํฌํธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ
๊ฐ์ฒด ์ด๊ธฐํ ํ๊ธฐ
// 2๏ธโฃ ๊ฐ์ฒด ์ด๊ธฐํ ํ๊ธฐ
var IMP = window.IMP;
IMP.init('๊ฐ๋งน์ ์๋ณ์ฝ๋')
JavaScript
๋ณต์ฌ
๊ฒฐ์ ์์ฒญํ๊ธฐ
โข
๋ฐ์ดํฐ ์
๋ ฅ
<h1>๊ฒฐ์ ๋ชจ๋ ์ฐ๋</h1>
<h3>PortOne PG์ฌ ์ฐ๋ํ๊ธฐ</h3>
<table>
<tr>
<td><label for="productName">์ํ๋ช
</label></td>
<td><input type="text" name="productName" id="productName" placeholder="์ํ๋ช
"
value="๊ธฐ๋ณธ ์ํ"></td>
</tr>
<tr>
<td><label for="price">๊ฒฐ์ ๊ธ์ก</label></td>
<td><input type="text" name="price" id="price" placeholder="๊ฒฐ์ ๊ธ์ก"
value="1000"></td>
</tr>
<tr>
<td><label for="name">์ด๋ฆ</label></td>
<td><input type="text" name="name" id="name" placeholder="์ด๋ฆ"></td>
</tr>
<tr>
<td><label for="tel">์ ํ๋ฒํธ</label></td>
<td><input type="text" name="tel" id="tel" placeholder="์ ํ๋ฒํธ"></td>
</tr>
<tr>
<td><label for="email">์ด๋ฉ์ผ</label></td>
<td><input type="text" name="email" id="email" placeholder="์ด๋ฉ์ผ"></td>
</tr>
<tr>
<td><label for="address">์ฃผ์</label></td>
<td><input type="text" name="address" id="address" placeholder="์ฃผ์"></td>
</tr>
<tr>
<td><label for="postcode">์ฐํธ๋ฒํธ</label></td>
<td><input type="text" name="postcode" id="postcode" placeholder="์ฐํธ๋ฒํธ"></td>
</tr>
</table>
<div>
<button onclick="requestPay()">๊ฒฐ์ ํ๊ธฐ</button>
</div>
HTML
๋ณต์ฌ
โข
๊ฒฐ์ ์์ฒญํ๊ธฐ
var today = new Date();
var hours = today.getHours(); // ์
var minutes = today.getMinutes(); // ๋ถ
var seconds = today.getSeconds(); // ์ด
var milliseconds = today.getMilliseconds();
var makeMerchantUid = hours + minutes + seconds + milliseconds;
// 3๏ธโฃ ๊ฒฐ์ ์์ฒญํ๊ธฐ
function requestPay() {
// ๊ฒฐ์ ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ
let productName = document.getElementById('productName').value
let price = document.getElementById('price').value
let name = document.getElementById('name').value
let tel = document.getElementById('tel').value
let email = document.getElementById('email').value
IMP.request_pay({
pg : 'kcp', // PG์ฌ
pay_method : 'card', // ๊ฒฐ์ ๋ฐฉ์
merchant_uid: "IMP"+makeMerchantUid, // ์ฃผ๋ฌธ๋ฒํธ(์ํID)
name : productName, // ์ํ๋ช
amount : price, // ๊ฒฐ์ ๊ธ์ก
buyer_email : email, // ๊ฒฐ์ ์ ์ด๋ฉ์ผ
buyer_name : name, // ๊ฒฐ์ ์ ์ด๋ฆ
buyer_tel : tel, // ๊ฒฐ์ ์ ์ ํ๋ฒํธ
buyer_addr : address, // ๊ฒฐ์ ์ ์ฃผ์
buyer_postcode : postcode, // ๊ฒฐ์ ์ ์ฐํธ๋ฒํธ
// m_redirect_url : "success" // "๋ฆฌ๋๋ ์
URL", (๋ฆฌ๋๋ ์
๋ฐฉ์์ ๊ฒฝ์ฐ callback์ ์คํ๋์ง ์์ต๋๋ค.)
}, function (rsp) { // callback
if (rsp.success) {
// ๊ฒฐ์ ์ฑ๊ณต
console.log(rsp);
// ๊ฒฐ์ ์๋ฃ ํ์ด์ง๋ก ์ด๋
location.href = 'success?result=ok&proudctId=' + ("IMP"+makeMerchantUid)
// ๋๋ ajax ์์ฒญ ์ฒ๋ฆฌ ํ ์ด๋
} else {
// ๊ฒฐ์ ์คํจ
console.log(rsp);
}
});
}
JavaScript
๋ณต์ฌ
๊ฒฐ์ ๊ฒฐ๊ณผ ์ฒ๋ฆฌํ๊ธฐ
๊ฒฐ์ ์ฐ๋ ์ ์ฒด ์ฝ๋
โข
index.html
โข
success.html
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>๊ฒฐ์ ๋ชจ๋</title>
</head>
<body>
<h1>๊ฒฐ์ ๋ชจ๋ ์ฐ๋</h1>
<h3>PortOne PG์ฌ ์ฐ๋ํ๊ธฐ</h3>
<table>
<tr>
<td><label for="productName">์ํ๋ช
</label></td>
<td><input type="text" name="productName" id="productName" placeholder="์ํ๋ช
"
value="๊ธฐ๋ณธ ์ํ"></td>
</tr>
<tr>
<td><label for="price">๊ฒฐ์ ๊ธ์ก</label></td>
<td><input type="text" name="price" id="price" placeholder="๊ฒฐ์ ๊ธ์ก"
value="1000"></td>
</tr>
<tr>
<td><label for="name">์ด๋ฆ</label></td>
<td><input type="text" name="name" id="name" placeholder="์ด๋ฆ"></td>
</tr>
<tr>
<td><label for="tel">์ ํ๋ฒํธ</label></td>
<td><input type="text" name="tel" id="tel" placeholder="์ ํ๋ฒํธ"></td>
</tr>
<tr>
<td><label for="email">์ด๋ฉ์ผ</label></td>
<td><input type="text" name="email" id="email" placeholder="์ด๋ฉ์ผ"></td>
</tr>
<tr>
<td><label for="address">์ฃผ์</label></td>
<td><input type="text" name="address" id="address" placeholder="์ฃผ์"></td>
</tr>
<tr>
<td><label for="postcode">์ฐํธ๋ฒํธ</label></td>
<td><input type="text" name="postcode" id="postcode" placeholder="์ฐํธ๋ฒํธ"></td>
</tr>
</table>
<div>
<button onclick="requestPay()">๊ฒฐ์ ํ๊ธฐ</button>
</div>
<!-- 1๏ธโฃ ํฌํธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ -->
<script src="https://cdn.iamport.kr/v1/iamport.js"></script>
<script>
// 2๏ธโฃ ๊ฐ์ฒด ์ด๊ธฐํ ํ๊ธฐ
var IMP = window.IMP;
IMP.init('๊ฐ๋งน์ ์๋ณ์ฝ๋')
var today = new Date();
var hours = today.getHours(); // ์
var minutes = today.getMinutes(); // ๋ถ
var seconds = today.getSeconds(); // ์ด
var milliseconds = today.getMilliseconds();
var makeMerchantUid = hours + minutes + seconds + milliseconds;
// 3๏ธโฃ ๊ฒฐ์ ์์ฒญํ๊ธฐ
function requestPay() {
// ๊ฒฐ์ ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ
let productName = document.getElementById('productName').value
let price = document.getElementById('price').value
let name = document.getElementById('name').value
let tel = document.getElementById('tel').value
let email = document.getElementById('email').value
IMP.request_pay({
pg : 'kcp', // PG์ฌ
pay_method : 'card', // ๊ฒฐ์ ๋ฐฉ์
merchant_uid: "IMP"+makeMerchantUid, // ์ฃผ๋ฌธ๋ฒํธ(์ํID)
name : productName, // ์ํ๋ช
amount : price, // ๊ฒฐ์ ๊ธ์ก
buyer_email : email, // ๊ฒฐ์ ์ ์ด๋ฉ์ผ
buyer_name : name, // ๊ฒฐ์ ์ ์ด๋ฆ
buyer_tel : tel, // ๊ฒฐ์ ์ ์ ํ๋ฒํธ
buyer_addr : address, // ๊ฒฐ์ ์ ์ฃผ์
buyer_postcode : postcode, // ๊ฒฐ์ ์ ์ฐํธ๋ฒํธ
// m_redirect_url : "success" // "๋ฆฌ๋๋ ์
URL", (๋ฆฌ๋๋ ์
๋ฐฉ์์ ๊ฒฝ์ฐ callback์ ์คํ๋์ง ์์ต๋๋ค.)
}, function (rsp) { // callback
if (rsp.success) {
// ๊ฒฐ์ ์ฑ๊ณต
console.log(rsp);
// ๊ฒฐ์ ์๋ฃ ํ์ด์ง๋ก ์ด๋
location.href = 'success?result=ok&proudctId=' + ("IMP"+makeMerchantUid)
// ๋๋ ajax ์์ฒญ ์ฒ๋ฆฌ ํ ์ด๋
} else {
// ๊ฒฐ์ ์คํจ
console.log(rsp);
}
});
}
</script>
</body>
</html>
HTML
๋ณต์ฌ
success.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>๊ฒฐ์ ์๋ฃ</title>
</head>
<body>
<h1>๊ฒฐ์ ์๋ฃ</h1>
<h3>๊ฒฐ์ ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์ฒ๋ฆฌ ๋์์ต๋๋ค!</h3>
</body>
</html>
HTML
๋ณต์ฌ
ํ ์คํธ
1.
๊ฒฐ์ ์ ๋ณด ์
๋ ฅ
2.
๊ฒฐ์ ์์ฒญ
3.
๊ฒฐ์ ์๋ฃ