1. ์์ํ๋ฉด์
โข
KEY ์ ๋ณด๋ฅผ ํ์ธํ๋ค๋ฉด, ์ด์ ๋ณธ๊ฒฉ์ ์ผ๋ก ์ฐ๋์ ์ค๋นํ ์ ์์ต๋๋ค.
โข
ํ์ดํ API๋ฅผ ํตํด ํํธ๋๋ ์๋น์ค ํน์ฑ์ ๋ง์ถ ๊ฒฐ์ ์๋จ๊ณผ ๊ฒฐ์ ๋ฐฉ์์ ๊ตฌํํ ์ ์์ต๋๋ค.
โข
ํต๊ฐ์ด๋์์๋ ์ผ๋ฐ์ ์ธ ์จ๋ผ์ธ ์ผํ๋ชฐ์์ ์ฌ์ฉํ ์ ์๋ ์ผํ์ฑ ๊ฐํธ๊ฒฐ์ ๋ฅผ ์ฐ๋ํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช
ํฉ๋๋ค.
๋ค๋ฅธ ๊ฒฐ์ ๋ฐฉ์์ ์ฐ๋๋ฐฉ์์ ์๋ด๋ฐ๊ณ ์ถ๋ค๋ฉด ์ด๊ณณ
์ ํด๋ฆญํด์ ํ์ธํด๋ณด์ธ์.
์ผํ์ฑ ๊ฐํธ๊ฒฐ์ ์ฐฝ ๋ฏธ๋ฆฌ๋ณด๊ธฐ
2. ํ๋ก์ธ์ค ๊ฐ์
์ด ๋ฌธ์์์๋ @7/6/2023 ์ดํ๋ก ์ถ๊ฐ๋ ํด๋ผ์ด์ธํธ ํค(clientKey)๋ก ํํธ๋ ์ธ์ฆ์ ํ๋ ๋ฐฉ์์ ๊ฒฐ์ ์ฐฝ ํธ์ถ ๊ฐ์ด๋๋ฅผ ์ค๋ช
ํฉ๋๋ค.
์ผํ์ฑ ๊ฐํธ๊ฒฐ์ ์ ๊ฒฐ์ ํ๋ก์ธ์ค๋ ๋ค์๊ณผ ๊ฐ์ด ์งํ๋ฉ๋๋ค.
3. ๊ฒฐ์
3-1. ๊ตฌ๋งค๋ฒํผ ํด๋ฆญ
๊ณ ๊ฐ ๊ฒฐ์ ํ์ด์ง(Web)
โข
๊ณ ๊ฐ์ด ํํธ๋์ ์น์ฌ์ดํธ์์ 1,000์์ง๋ฆฌ 'ํฐ์
์ธ ' ๊ตฌ๋งค๋ฅผ ๊ฒฐ์ ํ์ต๋๋ค.
3-2. ๊ฒฐ์ ์์ฒญ
ํํธ๋ ๊ฒฐ์ ํ์ด์ง(Web)
ํด๋ผ์ด์ธํธ ํค(clientKey)๋ก ํํธ๋ ์ธ์ฆ์ ํ๊ณ ๊ฒฐ์ ์ฐฝ์ ํธ์ถํ๋ ๊ฒฝ์ฐ,
ํํธ๋์ฌ์ ๋ฑ๋ก ๋๋ฉ์ธ๊ณผ ๊ฒฐ์ ์ฐฝ ํธ์ถ ๋๋ฉ์ธ์ ๋ฉ์ธ ๋๋ฉ์ธ์ด ์ผ์นํ๋์ง ๊ฒ์ฆํฉ๋๋ค.
์ฆ, ๊ฒฐ์ ์ฐฝ ํธ์ถ ๋๋ฉ์ธ์ ๋ฉ์ธ ๋๋ฉ์ธ์ด ๋ฑ๋ก๋์ด์์ง ์๋ค๋ฉด ํํธ๋ ์ธ์ฆ์ด ์คํจ๋์ด ์์ฒญ์ด ๊ฑฐ๋ถ๋๋, ์ด ์ ๊ผญ ์ ์ํด์ฃผ์ธ์!
๊ฒฐ์ ์ฐฝ ๋ง๋ฃ ์๊ฐ์ 30๋ถ์ด๋, ์ด ์ ์ฐธ๊ณ ํ์ฌ ๊ฒฐ์ ์งํํด์ฃผ์๊ธฐ ๋ฐ๋๋๋ค.
Payple Payment Script
โข
๊ฒฐ์ ์ฐฝ์ ํธ์ถํ ์ ์๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ถ๊ฐํ์ฌ ํ์ดํ์ ์์ฒญํฉ๋๋ค.
@7/6/2023 ์ดํ ์ถ๊ฐ๋ ํด๋ผ์ด์ธํธ ํค(clientKey) ๋ฐฉ์์ ํํธ๋ ์ธ์ฆ ๋ฐฉ์์ผ๋ก ๊ฒฐ์ ์ฐฝ์ ํธ์ถํ๋ ๊ฒฝ์ฐ, ์๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ถ๊ฐํ์ฌ ์์ฒญํ์
์ผํ๋ ์ฐธ๊ณ ํด์ฃผ์๊ธฐ ๋ฐ๋๋๋ค.
// ์๋ฒ๋ณ ํ์ดํ ๊ตญ๋ด๊ฒฐ์ ์คํฌ๋ฆฝํธ ์ถ๊ฐ
<script src="https://democpay.payple.kr/js/v1/payment.js"></script> // ํ
์คํธ(TEST)
<script src="https://cpay.payple.kr/js/v1/payment.js"></script> // ์ด์(REAL)
JavaScript
๋ณต์ฌ
ํ์ดํ ๊ฒฐ์ ์ฐฝ ์คํฌ๋ฆฝํธ ์ถ๊ฐ
โข
ํ์ดํ ๊ตญ๋ด๊ฒฐ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ถ๊ฐํ ํ ๊ฒฐ์ ์์ฒญ ํ๋ผ๋ฏธํฐ๋ฅผ Object ๊ฐ์ฒด์ ๋ด์ PaypleCpayAuthCheck(Object)๋ฅผ ํธ์ถํ๋ฉด ๊ฒฐ์ ์ฐฝ์ด ์ด๋ฆฝ๋๋ค.
๊ฒฐ์ ์ฐฝ ์์ฒญ ์์
// ํ์ดํ ๊ตญ๋ด๊ฒฐ์ ๊ฒฐ์ ์ฐฝ ํธ์ถ
function requsetPayplePay() {
// obj์ ๊ฒฐ์ ์์ฒญ ํ๋ผ๋ฏธํฐ ์ ์ฅ
let obj = new Object();
/* ์ค๋ต */
// ๊ฒฐ์ ์์ฒญ ํจ์ ํธ์ถ
PaypleCpayAuthCheck(obj);
}
JavaScript
๋ณต์ฌ
JavaScript
์ํ์ฝ๋๋ ํ๋ผ๋ฏธํฐ ์ ๋ณด ํ๋จ๊ณผ ์ฐ๋๊ฐ์ด๋ > ์ํ์ฝ๋์์ ํ์ธํด๋ณด์ธ์!
PCD_PAY_OID Parameter๋ ๊ฑฐ๋์ ๊ณ ์ ์๋ณ๋ฒํธ์
๋๋ค.
์์ฒญ์๋ง๋ค ์ ๋ํฌํ๊ฒ ์๋ก ์ง์ ํด ์ฃผ์ธ์.
PCD_PAY_OID ๊ฐ ์ค๋ณต๋๋ฉด ์ฒ์ ์ฒ๋ฆฌ์๋ฃ๋ ๊ฑฐ๋๋ณด๋ค
๋์ค์ ๋ค์ด์จ ๊ฑฐ๋์์ฒญ๊ฑด์ ์ค๋ณต์๋๋ก ํ๋จ๋์ด ๊ฑฐ์ ๋ฉ๋๋ค.
โ ์ด๋ฌํ ์ด์ ๋ก, ํํธ๋์ฌ์์ ์ ๋ํฌํ๊ฒ ์ฃผ๋ฌธ๋ฒํธ๋ฅผ ์ง์ ํ ์ ์์ ๊ฒฝ์ฐ์๋
์ฃผ๋ฌธ๋ฒํธ๋ ๋ฏธ์ง์ ํ๋ ๊ฒ์ ๊ถ์ฅํ๊ณ ์์ต๋๋ค.
โป ํํธ๋๊ฐ ์ฃผ๋ฌธ๋ฒํธ๋ฅผ ๋ฏธ์ง์ ์, ํ์ดํ์์๋ ์์์ ์ฃผ๋ฌธ๋ฒํธ๋ฅผ ์์ฑํ์ฌ ๋ฆฌํดํ์ฌ ๋๋ฆฝ๋๋ค.
Request Parameters
Show All
Search
Sample Code
<!-- jQuery -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<!-- ์๋ฒ๋ณ ํ์ดํ ๊ตญ๋ด๊ฒฐ์ ์คํฌ๋ฆฝํธ ์ถ๊ฐ -->
<script src="https://democpay.payple.kr/js/v1/payment.js"></script> <!-- ํ
์คํธ(TEST) -->
<!-- <script src="https://cpay.payple.kr/js/v1/payment.js"></script> --> <!-- ์ด์(REAL) -->
<script>
$(document).ready( function () {
$('#requsetPayplePay').on('click', function (event) {
let obj = new Object();
// Pay Request Parameters
obj.PCD_PAY_TYPE = "card";
obj.PCD_PAY_WORK = "PAY";
/* 01 : ํ์ดํ ๊ฐํธ๊ฒฐ์ */
obj.PCD_CARD_VER = "01"
obj.PCD_PAYER_NO = "1234";
obj.PCD_PAYER_NAME = "ํ๊ธธ๋";
obj.PCD_PAYER_HP = "01012345678";
obj.PCD_PAYER_EMAIL = "dev@payple.kr";
obj.PCD_PAY_GOODS = "ํฐ์
์ธ ";
obj.PCD_PAY_TOTAL = "1000";
obj.PCD_PAY_ISTAX = "Y";
obj.PCD_PAY_TAXTOTAL = "10";
/* ๊ฒฐ๊ณผ๋ฅผ ์ฝ๋ฐฑ ํจ์๋ก ๋ฐ๊ณ ์ ํ๋ ๊ฒฝ์ฐ ํจ์ ์ค์ ์ถ๊ฐ */
// obj.callbackFunction = getResult; // getResult : ์ฝ๋ฐฑ ํจ์๋ช
/**
* ํํธ๋ ์ธ์ฆ์ ์ํ ํด๋ผ์ด์ธํธ ํค(clientKey)
* - ํด๋น ํค ๊ฐ์ ํ
์คํธ๋ฅผ ์ํด ํ์ดํ์์ ์ ๊ณตํ๋ test ๊ณ์ ์ clientKey ๊ฐ์
๋๋ค.
* - ์์ธํ ๋ด์ฉ์ '๊ฐ์
๋ฐ KEY ์ ๋ณด ์๋ น'์์๋ ํ์ธํ ์ ์์ต๋๋ค.
*/
obj.clientKey = "test_DF55F29DA654A8CBC0F0A9DD4B556486";
obj.PCD_RST_URL = "/order_result.php"; // ๊ฒฐ์ ๊ฒฐ๊ณผ ์์ URL
// ๊ฒฐ์ ์์ฒญ ํจ์ ํธ์ถ
PaypleCpayAuthCheck(obj);
});
});
</script>
<button id="requsetPayplePay">ํ์ดํ ๊ตญ๋ด๊ฒฐ์ </button>
HTML
๋ณต์ฌ
3-3. ๊ฒฐ์ ์งํ
๊ณ ๊ฐ ๊ฒฐ์ ์ฐฝ
โข
ํ์ดํ์์ ๊ฒฐ์ ์ฐฝ์ ๊ณ ๊ฐ์ ๋ธ๋ผ์ฐ์ ์ ํธ์ถ์ํต๋๋ค.
โข
๊ณ ๊ฐ์ ๊ฒฐ์ ์ฐฝ์์ ๊ฒฐ์ ์ ๋ณด๋ฅผ ์
๋ ฅํ์ฌ ๊ฒฐ์ ๋ฅผ ์๋ฃํฉ๋๋ค.
3-4. ๊ฒฐ์ ๊ฒฐ๊ณผ
ํ์ดํ ์๋ฒ
โข
ํ์ดํ์์ ๊ณ ๊ฐ์ ๊ฒฐ์ ์ฐฝ์ ์ข
๋ฃ์ํต๋๋ค.
โข
PCD_RST_URL๋ก ๊ณ ๊ฐ์ ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ฆฌ๋ค์ด๋ ํธ(Redirect) ์ฒ๋ฆฌํฉ๋๋ค.
โฆ
callbackFunction์ผ๋ก ๊ฒฐ์ ๊ฒฐ๊ณผ๋ฅผ ์์ ํ ๊ฒฝ์ฐ, ์ฝ๋ฐฑํจ์๋ก ๊ฒฐ์ ๊ฒฐ๊ณผ๊ฐ ๋ฐํ๋๋ฉฐ
PCD_RST_URL๋ก ๊ณ ๊ฐ์ ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ฆฌ๋ค์ด๋ ํธ(Redirect) ์ฒ๋ฆฌํฉ๋๋ค.
Response Parameters
โข
ํํธ๋๋ก ๊ฒฐ๊ณผ ๋ฆฌํด(Response)์ ๋ค์๊ณผ ๊ฐ์ด ์งํ๋ฉ๋๋ค.
Show All
Search
โข
callbackFunction ์ ์ฌ์ฉํ๋ค๋ฉด PCD_RST_URL ์ ๋์ฒดํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค.
โข
Webhook URL
์ ๋ฑ๋กํ์๋ค๋ฉด ํ์ดํ์์ ํด๋น URL๋ก ๊ฒฐ๊ณผ๋ฅผ ์ถ๊ฐ๋ก ๋ฐํํฉ๋๋ค.
- ํ์ดํ์์๋ ๊ฒฐ๊ณผ ์์ ์คํจ ๋๋ฝ์ ๋ฐฉ์งํ๊ธฐ ์ํด Webhook URL ๋ฑ๋ก์ ๊ถ์ฅํฉ๋๋ค.
- ํ
์คํธ ์๋ฒ์์๋ ๋ณ๋์ ๊ณ์ ์ ๋ฐ๊ธ๋ฐ์ง ์๋ ํ Webhook URL ๋ฑ๋ก ๋ฐ ํ
์คํธ๊ฐ ๋ถ๊ฐํฉ๋๋ค.
- ํ
์คํธ ์๋ฒ์์ Webhook URL์ ํ
์คํธํ๊ธฐ ์ํด์ help@payple.kr ๋ก ์ฐ๋ฝ์ฃผ์๋ฉด ํํธ๋ ์ ์ฉ ํ
์คํธ ๊ณ์ ์ ๋ฐ๊ธํ์ฌ ๋๋ฆฝ๋๋ค.
- Webhook URL ๋ฑ๋ก ์์ด ํ
์คํธํ์๋ ค๋ฉด PCD_RST_URL ๋ก ์์ ๋ฐ์ Response ๋ฐ์ดํฐ๋ก ๊ฒฐ๊ณผ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
3-5. ๊ฒฐ๊ณผ ์ฒ๋ฆฌ
ํํธ๋ ์๋ฒ
ํํธ๋์์ ํ์ดํ์์ ๋ฐ์ Response ๋ฐ์ดํฐ๋ก ๊ฒฐ๊ณผ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
โข
PCD_PAY_RST = success, PCD_PAY_CODE = "0000"์ด ํฌํจ๋ ๊ฒฝ์ฐ ์์ฒญ์ฑ๊ณต์ผ๋ก ํ๋จํฉ๋๋ค.
โข
PCD_PAY_RST = error ์ผ ๊ฒฝ์ฐ ์์ฒญ์คํจ๋ก ํ๋จํฉ๋๋ค.
โข
PCD_PAY_RST = close ์ผ ๊ฒฝ์ฐ ์์ฒญ์คํจ๋ก ํ๋จํฉ๋๋ค.
๊ณ ๊ฐ์ด ๊ฒฐ์ ์ฐฝ์ ๊ฒฐ์ ์ค ์ข
๋ฃํ ๊ฒฝ์ฐ ๋ฆฌํด๋ฉ๋๋ค.
3-5-1. ์์ฒญ์ด ์ฑ๊ณตํ์ ๊ฒฝ์ฐ(success)
โข
๋ฐ์ดํฐ ์๋ณ์กฐ ์ฌ๋ถ๋ฅผ ํ๋ณํ๊ธฐ ์ํด ๋ฆฌํด๋ฐ์ PCD_PAY_TOTAL ๊ฐ๊ณผ ์์ฒญํ๋ ๊ฐ์ ๋์กฐํ์ฌ ์ด์์ด ์์์ ํ์ธํฉ๋๋ค.
โข
๋ฆฌํด๋ฐ์ ๊ฑฐ๋ ๊ณ ์ ์๋ณ๋ฒํธ์ธ PCD_PAY_OID๋ฅผ ํ์ธํ์ฌ ์์ฒญํ๋ ๊ฑฐ๋ ์ ๋ณด์ ๋งค์นญ์ํต๋๋ค.
โข
๊ฑฐ๋๋ฅผ ์์ฒญํ๋ ๊ณ ๊ฐ์๊ฒ ์ฝ์ ๋ ์๋น์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
3-5-2. ์์ฒญ์ด ์คํจํ์ ๊ฒฝ์ฐ(error / close)
โข
PCD_PAY_CODE ์ PCD_PAY_MSG ๋ก ์์ธ์ ํ์
ํ์ฌ ๋์ํฉ๋๋ค.
โข
์๋ต์ฝ๋ ๋ฆฌ์คํธ
๋ฅผ ํ์ธํด๋ณด์ธ์.
3-6 ๊ฒฐ์ ์์ฒญ ์ฌ์ปจํ (PCD_PAY_WORK: CERT)
ํํธ๋ ์๋ฒ
์ต์ข
๊ฒฐ์ ์์ฒญ์ ์ํด REST API๋ฅผ ํตํด ๊ฒฐ์ ๋ฅผ ์์ฒญํ ์ ์์ต๋๋ค.
PAY(์ฆ์๊ฒฐ์ ) ๋ฐฉ์๊ณผ ๋ฌ๋ฆฌ CERT(๊ฒฐ์ ์์ฒญ ์ฌ์ปจํ) ๋ฐฉ์์์๋ ์ต์ข
์น์ธ ์์ฒญ์ ๋ณ๋๋ก ๋ณด๋ด์ผํฉ๋๋ค.
๊ฒฐ์ ์ฐฝ์ ํธ์ถํ์ฌ ๊ฒฐ์ ๋ฅผ ํ๋ ๊ฒฝ์ฐ, ๊ฒฐ์ ์์ฒญ ๋ฐฉ์ ํ๋ผ๋ฏธํฐ์ธ PCD_PAY_WORK๋ฅผ
CERT(ํํธ๋ ํ์ธ ํ ๊ฒฐ์ )์ PAY(๋ธ๋ผ์ฐ์ ์์ ์ฆ์๊ฒฐ์ ) ์ค ํ๋๋ก ์ง์ ํ์ฌ์ผ ํฉ๋๋ค.
๊ฒฐ์ ์์ฒญ ๋ฐฉ์์ ๋ํ ์์ธํ ์ค๋ช
์ ํ๋ผ๋ฏธํฐ ์ ์: PCD_PAY_WORK
์์ ํ์ธํด๋ณด์ธ์!
๊ฒฐ์ ์์ฒญ ์ฌ์ปจํ(CERT) ๋ฐฉ์์ ์๋์ ๊ฐ์ ํ๋ก์ธ์ค๋ก ๊ฒฐ์ ๊ฐ ์งํ๋ฉ๋๋ค.
โข
1 ~ 4 : PAY์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฒฐ์ ์ฐฝ์ ๋ธ๋ผ์ฐ์ ์ ํธ์ถํ์ฌ ๊ฒฐ์ ์์ฒญ์ ๋ณด๋ด๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ต๋๋ค.
์ด๋, ์๋ต๊ฒฐ๊ณผ๋ฅผ ๋ฐ์๋ ์์ง ๊ฒฐ์ ๋ ์๋ฃ๋์ง ์์ต๋๋ค.
๋ค์ ๋จ๊ณ๊น์ง ๋ชจ๋ ์๋ฃํด์ผ, ์ฆ ๊ฒฐ์ ์ต์ข
์น์ธ์์ฒญ์ ๋ณด๋ด์ผ ๊ฒฐ์ ๊ฐ ์๋ฃ๋ฉ๋๋ค.
โข
5 ~ 8 : ์ธ์ฆ๊ฒฐ๊ณผ ๋ฐ ๊ฒฐ์ ์ค๋น์๋ฃ ๋ฆฌํด์ ๋ฐ์ ํ, ํ์ดํ ์๋ฒ๋ก ๊ฒฐ์ ์ต์ข
์น์ธ ์์ฒญ์ ๋ณด๋ด๊ณ
๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ต๋๋ค. ์ด๋, ๊ฒฐ์ ๊ฒฐ๊ณผ๊ฐ 'success'๋ฉด ๊ฒฐ์ ์๋ฃ๋ก ํ๋จํฉ๋๋ค.
๊ฒฐ์ ์์ฒญ ์ฌ์ปจํ(CERT)์ ํด๋นํ๋ ๋ถ๋ถ์ 5 ~ 8 ์
๋๋ค.
๊ฒฐ์ ์์ฒญ ์ฌ์ปจํ(CERT) ๊ฒฐ์ ํ๋ก์ธ์ค
Request Parameters
Show All
Search
Request sample
โข
Header ์ ๋ณด
/*
* Request HTTP URL
* โป๊ฒฐ์ ์์ฒญ ํ ๋ฆฌํด๋ฐ์ PCD_PAY_COFURL๋ก ์ค์ ํด์ฃผ์ธ์.
* TEST : https://democpay.payple.kr/php/PayCardConfirmAct.php?ACT_=PAYM
* REAL : https://cpay.payple.kr/php/PayCardConfirmAct.php?ACT_=PAYM
*/
Request URL: "https://democpay.payple.kr/php/PayCardConfirmAct.php?ACT_=PAYM"
HTTP Method: POST
Content-Type: application/json
Cache-Control: no-cache
Referer: http://localhost:8080
JSON
๋ณต์ฌ
โข
Body(Payload) ๊ฐ
{
"PCD_CST_ID":"test",
"PCD_CUST_KEY": "abcd1234567890",
"PCD_AUTH_KEY": "๊ฒฐ์ ์์ฒญ ํ ๋ฆฌํด๋ฐ์ PCD_AUTH_KEY",
"PCD_PAY_REQKEY": "๊ฒฐ์ ์์ฒญ ํ ๋ฆฌํด๋ฐ์ PCD_PAY_REQKEY",
"PCD_PAYER_ID": "๊ฒฐ์ ์์ฒญ ํ ๋ฆฌํด๋ฐ์ PCD_PAYER_ID"
}
JSON
๋ณต์ฌ
Response Parameters
Show All
Search
โข
์นด๋๊ฒฐ์ (CERT) Response Sample
Response sample
{
"PCD_PAY_RST": "success"
"PCD_PAY_CODE": "PCCF0000"
"PCD_PAY_MSG": "์นด๋๊ฒฐ์ ์๋ฃ"
"PCD_PAY_REQKEY": "d2NtOFExTVF..."
"PCD_PAY_OID": "test123456789"
"PCD_PAY_TYPE": "card"
"PCD_PAYER_ID": "YWpJQXZ..."
"PCD_PAYER_NO": "1234"
"PCD_PAYER_NAME": "ํ๊ธธ๋"
"PCD_PAYER_HP": "01012345678"
"PCD_PAYER_EMAIL": "test@payple.kr"
"PCD_PAY_GOODS": "ํ
์คํธ ์ํ๋ช
"
"PCD_PAY_AMOUNT": "100"
"PCD_PAY_AMOUNT_REAL": "100"
"PCD_PAY_TOTAL": "100"
"PCD_PAY_TAXTOTAL": "0"
"PCD_PAY_ISTAX": "Y"
"PCD_PAY_CARDNAME": "NH"
"PCD_PAY_CARDNUM": "2121-****-****-2031"
"PCD_PAY_CARDTRADENUM": "202110201407049643824400"
"PCD_PAY_CARDAUTHNO": "12345678"
"PCD_PAY_CARDRECEIPT": "https://www.danalpay.com/..."
"PCD_PAY_TIME": "20211020140706"
"PCD_SIMPLE_FLAG": "N"
}
JSON
๋ณต์ฌ
4. ์ทจ์
๊ณ ๊ฐ์ด ๊ฒฐ์ ํ ๋ณ์ฌํ์ฌ ์ทจ์๋ฅผ ์ํ๊ณ ์์ต๋๋ค.
ํํธ๋๋ ํ์ดํ์ ์ทจ์๋ฅผ ์์ฒญํ์ฌ ์ฒ๋ฆฌํฉ๋๋ค.
4-1. ์ทจ์ ํ๋ก์ธ์ค
4-2. ํํธ๋ ์ธ์ฆ
ํํธ๋ ์๋ฒ
Request Parameters
๊ธฐ๋ณธ ๋ณด๊ธฐ
Search
Request sample
โข
Header ์ ๋ณด
/*
* Request HTTP URL
* TEST : https://democpay.payple.kr/php/auth.php
* REAL : https://cpay.payple.kr/php/auth.php
*/
Request URL: "https://democpay.payple.kr/php/auth.php"
HTTP Method: POST
Content-Type: application/json
Cache-Control: no-cache
Referer: https://ํํธ๋์ฌ ๋๋ฉ์ธ
/* โป Referer ์ค์ ๋ฐฉ๋ฒ
* REAL : referer์๋ ํํธ๋์ฌ ๋๋ฉ์ธ์ผ๋ก ๋ฑ๋ก๋ ๋๋ฉ์ธ์ ๋ฃ์ด์ฃผ์
์ผํฉ๋๋ค.
* ๋ค๋ฅธ ๋๋ฉ์ธ์ ๋ฃ์ผ์๋ฉด [AUTH0004] ์๋ต์ด ๋ฐ์ํฉ๋๋ค.
*/
JSON
๋ณต์ฌ
โข
Body(Payload) ๊ฐ
{
"cst_id": "test",
"custKey": "abcd1234567890",
"PCD_PAYCANCEL_FLAG": "Y"
}
JSON
๋ณต์ฌ
PHP ์ํ์ฝ๋
JAVA ์ํ์ฝ๋
NODE ์ํ์ฝ๋
Response Parameters
โข
ํํธ๋ ์ธ์ฆ์ด ์ฑ๊ณตํ๋ฉด ํ์ดํ์์ ํํธ๋์ ๋ค์๊ณผ ๊ฐ์ ์ฑ๊ณต ๋ฆฌํด์ ๋๋ฆฝ๋๋ค.
๊ธฐ๋ณธ ๋ณด๊ธฐ
Search
Response sample
{
"server_name": "์์ฒญ URL",
"result": "๊ฒฐ๊ณผํ์ธ",
"result_msg": "๊ฒฐ๊ณผ ๋ฉ์์ง",
"cst_id": "ํํธ๋์ฌ ์์ด๋",
"custKey": "ํํธ๋์ฌ ํค",
"AuthKey": "ํํธ๋์ฌ ์ธ์ฆํ ํฐ",
"PCD_PAY_HOST": "์์ฒญ ๋๋ฉ์ธ, (์: https://democpay.payple.kr)",
"PCD_PAY_URL": "์์ฒญ URL, (์: /auth.php)",
"return_url": "์์ฒญ URL (PCD_PAY_HOST + PCD_PAY_URL)"
}
JSON
๋ณต์ฌ
์คํจ ๋ฆฌํด (result = error)์ ๋ฐ์ผ์ ๊ฒฝ์ฐ,
result_msg ์ ์๋ต์ฝ๋๋ฅผ ํ์ธํ๊ณ ์๋ชป๋ ๋ถ๋ถ์ ์์ ํฉ๋๋ค.
์๋ต์ฝ๋ ๋ฆฌ์คํธ๋ ์ด ๊ณณ
์์ ํ์ธํ์ค ์ ์์ต๋๋ค.
4-3. ๊ฒฐ์ ์ทจ์ ์์ฒญ
ํํธ๋ ์๋ฒ
โข
ํํธ๋๋ ํํธ๋ ์ธ์ฆ ์๋ฃ ํ ์ทจ์ ์์ฒญ์ ์ํํฉ๋๋ค.
โข
์ด๋ ํํธ๋ ์ธ์ฆ ํ Response ๋ฐ์ cst_id, custKey, AuthKey ๊ฐ์
๊ฐ๊ฐ PCD_CST_ID, PCD_CUST_KEY, PCD_AUTH_KEY ์ ๋ฃ์ด ์์ฒญ์ ๋ณด๋ด์ผ ํฉ๋๋ค.
ํํธ๋ ์ธ์ฆ ํ Response ๋ฐ์ cst_id, custKey,AuthKey ๊ฐ์
๊ณ ์ ๊ฐ์ด ์๋๋ฏ๋ก ์ ์ฅํด๋๊ณ ๊ณ์ํด์ ์ฌ์ฉํ๋ฉด ์๋ฉ๋๋ค.
+ ํ ๋ฒ์ ํํธ๋ ์ธ์ฆ๊ณผ ํ๋์ ์์ฒญ์ด ๋งค์นญ๋์ด์ผ ํฉ๋๋ค.
์ฆ, ํ ๋ฒ์ ํํธ๋ ์ธ์ฆ์ผ๋ก ๋ฐ์ cst_id, custKey,AuthKey ๊ฐ์
์ฌ๋ฌ ์์ฒญ์ ์ฌ์ฉํ๋ฉด ์๋ฉ๋๋ค.
ํํธ๋ ์ธ์ฆ์์ฒญ ํ API ์์ฒญ์ 30๋ถ์ด๋ด๋ก ์งํํด์ฃผ์๊ธฐ ๋ฐ๋๋๋ค.
Request Parameters
๊ธฐ๋ณธ ๋ณด๊ธฐ
Search
Request sample
โข
Header ์ ๋ณด
/*
* ๊ฒฐ์ ์ทจ์ ์์ฒญ
* Request HTTP URL
* โปํํธ๋ ์ธ์ฆ ํ ๋ฆฌํด๋ฐ์ return_url๋ก ์ค์ ํด์ฃผ์ธ์.
* (return_url = PCD_PAY_HOST + PCD_PAY_URL)
* TEST : https://democpay.payple.kr/(ํํธ๋ ์ธ์ฆ ํ ๋ฆฌํด ๋ฐ์ ์์ฒญ URL(PCD_PAY_URL))
* REAL : https://cpay.payple.kr/(ํํธ๋ ์ธ์ฆ ํ ๋ฆฌํด ๋ฐ์ ์์ฒญ URL(PCD_PAY_URL))
*/
Request URL: "https://democpay.payple.kr/(ํํธ๋ ์ธ์ฆํ ๋ฆฌํด๋ฐ์ PCD_PAY_URL)"
HTTP Method: POST
Content-Type: application/json
Cache-Control: no-cache
Referer: http://localhost:8080
JSON
๋ณต์ฌ
โข
Body(Payload) ๊ฐ
{
"PCD_CST_ID" : "ํํธ๋ ์ธ์ฆ ํ ๋ฆฌํด๋ฐ์ cst_id",
"PCD_CUST_KEY" : "ํํธ๋ ์ธ์ฆ ํ ๋ฆฌํด๋ฐ์ custKey",
"PCD_AUTH_KEY" : "ํํธ๋ ์ธ์ฆ ํ ๋ฆฌํด๋ฐ์ AuthKey",
"PCD_REFUND_KEY" : "a41ce010e...",
"PCD_PAYCANCEL_FLAG": "Y",
"PCD_PAY_OID": "test099942200156938",
"PCD_PAY_DATE": "20200320",
"PCD_REFUND_TOTAL": "1000"
}
JSON
๋ณต์ฌ
Response Parameters
๊ธฐ๋ณธ ๋ณด๊ธฐ
Search
โข
์นด๋ ์ทจ์ ์๋ต ์์
Response sample
{
"PCD_PAY_RST": "success",
"PCD_PAY_CODE": "PAYC0000",
"PCD_PAY_MSG": "์น์ธ์ทจ์์ฑ๊ณต",
"PCD_PAY_OID": "test201804000001",
"PCD_PAY_TYPE": "card",
"PCD_PAYER_ID": "d0to...",
"PCD_PAY_GOODS": "์ํ1",
"PCD_REFUND_TOTAL": "100",
"PCD_REFUND_TAXTOTAL": "10",
"PCD_PAY_TIME": "20211020140706",
"PCD_PAY_CARDTRADENUM": "20221...",
"PCD_PAY_CARDRECEIPT": "https://..."
}
JSON
๋ณต์ฌ
โข
๊ณ์ข์ด์ฒด ์ทจ์ ์๋ต ์์
Response sample
{
"PCD_PAY_RST": "success",
"PCD_PAY_CODE": "PAYC0000",
"PCD_PAY_MSG": "ํ๋ถ์ฑ๊ณต",
"PCD_PAY_OID": "test201804000001",
"PCD_PAY_TYPE": "transfer",
"PCD_PAYER_ID": "NS9qNTgzU2xRNH...",
"PCD_PAY_GOODS": "์ํ1",
"PCD_REFUND_TOTAL": "1000",
"PCD_REFUND_TAXTOTAL": "10",
"PCD_PAY_TIME": "20211020140706",
"PCD_TAXSAVE_RST": "0000",
"PCD_TAXSAVE_MSG": "ํ๊ธ์์์ฆ ๋ฐํ์ทจ์ ์ฑ๊ณต",
}
JSON
๋ณต์ฌ
PCD_PAY_RST = success, PCD_PAY_CODE = "0000"์ด ํฌํจ๋ ๊ฒฝ์ฐ ์์ฒญ์ฑ๊ณต์ผ๋ก ํ๋จํฉ๋๋ค.
PCD_PAY_RST = error ์ผ ๊ฒฝ์ฐ ์์ฒญ์คํจ๋ก ํ๋จํฉ๋๋ค.
์คํจ ๋ฆฌํด(PCD_PAY_RST = error )์ ๋ฐ์ผ์ ๊ฒฝ์ฐ,
PCD_PAY_MSG ์ ์๋ต์ฝ๋๋ฅผ ํ์ธํ๊ณ ์๋ชป๋ ๋ถ๋ถ์ ์์ ํฉ๋๋ค.
์๋ต์ฝ๋ ๋ฆฌ์คํธ๋ ์ด ๊ณณ
์์ ํ์ธํ์ค ์ ์์ต๋๋ค.
5. ๋ง๋ฌด๋ฆฌ
โข
์ผํ์ฑ ๊ฐํธ๊ฒฐ์ ์ ๊ฒฐ์ ๋ถํฐ ์ทจ์๊น์ง์ ์ฐ๋์์
์ ์๋ฃํ์์ต๋๋ค! ์ถํ๋๋ฆฝ๋๋ค!
5-1. ์ด์ ๋ค๋ฅธ ๊ฒฐ์ ๋ฐฉ์ ์ฐ๋๋ฐฉ๋ฒ๋ ํ์ธํด๋ณด์ธ์.
์นด๋ ๊ณ์ข ์ ๊ธฐ๊ฒฐ์
๊ณ ๊ฐ์๊ฒ ์ต์ด 1ํ ์นด๋/๊ณ์ข ์ ๋ณด ๋ฑ๋ก๋ง ๋ฐ๊ณ , ํํธ๋์ฌ์ ๋ค์ํ ๊ฒฐ์ ์ฃผ๊ธฐ์ ๋ง์ถฐ ์๋์ผ๋ก ๊ฒฐ์ ๋ฅผ ๋ฐ์ ์ ์์ต๋๋ค.
์นด๋ ์ฑ์นด๋ ๊ฒฐ์
์นด๋์ฌ์์ ์ ๊ณตํ๋ ์ฑ์นด๋๋ก ๊ฒฐ์ ํ๋ ๋ฐฉ์์
๋๋ค. ํ ๋ถ ์๋น์ค๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
์นด๋ ๊ณ์ข URL๋งํฌ๊ฒฐ์
๊ฐ๋ฐ์ฐ๋์ด ํ์์์ด ํํธ๋ ๊ด๋ฆฌ์์์ ๋งํฌ๋ฅผ ์์ฑํด ๊ฒฐ์ ๋ฅผ ๋ฐ์ ์ ์๋ ์๋น์ค์
๋๋ค.
์นด๋ ๊ณ์ข ๋น๋ฐ๋ฒํธ ๊ฐํธ๊ฒฐ์
6์๋ฆฌ ๋น๋ฐ๋ฒํธ๋ฅผ ์ค์ ํ๊ณ ์ฌ๊ฒฐ์ ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ธ์ฆ๋ฐ์ ๊ฒฐ์ ๋ฅผ ์ฒ๋ฆฌํ๋ ์๋น์ค์
๋๋ค.
5-2. ๊ธฐํ API ํ์ฉ๋ฐฉ๋ฒ๋ ํ์ธํด๋ณด์ธ์.
์นด๋ ๊ณ์ข ๊ฒฐ์ ๊ฒฐ๊ณผ ์กฐํ
๊ฑฐ๋๊ฑด์ ๊ฒฐ์ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๋ API์
๋๋ค.
์นด๋ ๊ณ์ข ๋ฑ๋ก ์กฐํ
์ฌ๊ฒฐ์ ๋ฅผ ์ํด ๋ฑ๋กํ๋ ์นด๋/๊ณ์ข์ ๋น๋งํค(PCD_PAYER_ID)์ ์ํ๋ฅผ ์กฐํํ๋ API์
๋๋ค.
์นด๋ ๊ณ์ข ๋ฑ๋ก ํด์ง
์ฌ๊ฒฐ์ ๋ฅผ ์ํด ๋ฑ๋กํ๋ ์นด๋/๊ณ์ข์ ๋น๋งํค(PCD_PAYER_ID)๋ฅผ ํด์งํ๋ API์
๋๋ค.
๊ณ์ข ํ๊ธ์์์ฆ ๋ฐํ
๊ณ์ข์ด์ฒด๋ก ๊ฒฐ์ ๊ฐ ๋ฐ์ํ ๊ฑฐ๋์ ํ๊ธ์์์ฆ์ ๊ฐ๋ณ์ ์ผ๋ก ๋ฐํํ๋ API์
๋๋ค.
๊ณ์ข ํ๊ธ์์์ฆ ์ทจ์๋ฐํ
๊ณ์ข์ด์ฒด๋ก ๊ฒฐ์ ๊ฐ ๋ฐ์ํ ๊ฑฐ๋์ ํ๊ธ์์์ฆ์ ๊ฐ๋ณ์ ์ผ๋ก ์ทจ์๋ฐํํ๋ API์
๋๋ค.