real 1transaction - nicepayments/nicepay-manual GitHub Wiki
1 Transaction ๊ฒฐ์ ๋ฐฉ์์ ๋์ด์คํ์ด๋จผ์ธ ์์ '์ธ์ฆ' ๊ณผ '์น์ธ' ๋จ๊ณ๋ฅผ ๋ชจ๋ ์ฒ๋ฆฌํ๋ ์๋น์ค์ ๋๋ค.
์ด๋ 2 Transaction ๋ฐฉ์์์ ๊ฐ๋งน์ ์ด ๋ฐ๋ก ์ฒ๋ฆฌํด์ผ ํ๋ ๋ ๋จ๊ณ๋ฅผ ํ๋๋ก ํฉ์ณ, ๊ฒฐ์ ํ๋ก์ธ์ค๋ฅผ ๋จ์ํํฉ๋๋ค.
๊ฐ๋งน์ ์ ์ธ์ฆ ์์ฒญ ์ ์น์ธ๊น์ง ์ฒ๋ฆฌ๋ ํ์ ์น์ธ ์๋ต์ ๋ฐ๊ฒ ๋๋ฏ๋ก, ๋ณต์กํ ๊ตฌํ ์์ด ๋น ๋ฅธ ๊ฒฐ์ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
ํ์ง๋ง, ์ด ๋ฐฉ์์ ์ ํํ ๋๋ ๋ช ๊ฐ์ง ์ค์ํ ๊ณ ๋ ค์ฌํญ์ด ์์ต๋๋ค.
์ค์ํ ๊ณ ๋ ค์ฌํญ
-
๊ฐ๋งน์ ์ ๋คํธ์ํฌ ์ํ
- ๊ฐ๋งน์ ์ ํธ๋ํฝ์ด ์ฆ๊ฐํ์ฌ ๋คํธ์ํฌ ์ํ๊ฐ ๋ถ์์ ํ ๊ฒฝ์ฐ, ๋์ด์คํ์ด๋จผ์ธ ๋ก๋ถํฐ์ ์๋ต์ ๋ฐ์ง ๋ชปํ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
- ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์ถ๊ฐ์ ์ธ ๊ฒ์ฆ ๋ฐ ํ์ธ ์ ์ฐจ๊ฐ ํ์ํ ์ ์์ต๋๋ค.
-
์นํ ์ ํ์์ฑ
- ์นํ ์ 1 Transaction ๋ฐฉ์์์ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.
- ์นํ ์ ํตํด ๋์ด์คํ์ด๋จผ์ธ ๋ก๋ถํฐ์ ์๋ต์ ์์ ์ ์ผ๋ก ๋ฐ์ ์ ์์ผ๋ฉฐ, ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ๋ ํ๋ณดํฉ๋๋ค.
-
๊ฒฐ์ ๊ฒ์ฆ์ ํ์์ฑ
- 1 Transaction ๋ฐฉ์์์๋ ๊ฒฐ์ ๊ฒ์ฆ์ ํ์์ ๋๋ค.
- ๋์ด์คํ์ด๋จผ์ธ ๊ฐ ๋ชจ๋ ๊ณผ์ ์ ์ฒ๋ฆฌํ๋๋ผ๋, ๊ฐ๋งน์ ์์์ ์ถ๊ฐ์ ์ธ ๊ฒ์ฆ ์ ์ฐจ๋ฅผ ํตํด ๊ฒฐ์ ์ ์์ ์ฑ์ ๋์ฑ ๊ฐํํ ์ ์์ต๋๋ค.
1 Transaction ๋ฐฉ์์ ์ด๋ฌํ ์ธก๋ฉด๋ค์ด ์ ์ ํ ์ฒ๋ฆฌ๋ ๋ ๊ฐ์ฅ ํจ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค.
์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌํ๋๋ฉด, ์ด ๋ฐฉ์์ ๊ฐ๋งน์ ์ด ๋น ๋ฅด๊ณ ํจ์จ์ ์ธ ๊ฒฐ์ ์ฒ๋ฆฌ๋ฅผ ์งํํ ์ ์์ต๋๋ค.
๊ฐ๋งน์ ํ ์คํธ ์์ ์ Client ์น์ธ & basic ์ธ์ฆ์ผ๋ก ๋ฐ๊ธ ๋ฐ์ clientId ๋ฐ secretKey๋ก ์๋ ์ฐ๋์ ์งํํฉ๋๋ค.
๊ฒฐ์ ์ฐฝ JS SDK ์ฝ์
<script src="https://pay.nicepay.co.kr/v1/js/"></script> // (1)
- (1):
https://pay.nicepay.co.kr/v1/js/
- ๊ฐ๋งน์ ์ด ๊ฒฐ์ ์ฐฝ์ ์ผ๊ด๋๊ณ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋๋ก ์ ์ํ JS SDK
๊ฒฐ์ ์ฐฝ JS ํธ์ถ ์ฝ๋
<script src="https://pay.nicepay.co.kr/v1/js/"></script>
<script>
function serverAuth() {
AUTHNICE.requestPay({ // (1) ๋์ด์คํ์ด๋จผ์ธ ๊ฒฐ์ ์ฐฝ ํธ์ถ ํจ์
clientId: 'R1_xxx', // (2) ๊ฐ๋งน์ ์ด์ํ๊ฒฝ 1Transaction(Client ์น์ธ & basic ์ธ์ฆ)
method: 'card', // (3) ๊ณ ๊ฐ ๊ฒฐ์ ์๋จ
orderId: 'your-unique-orderid', // (4) ๊ฐ๋งน์ ๊ณ ์ ์ฃผ๋ฌธ์ ๋ณด
amount: 1004, // (5) ๊ฐ๋งน์ ์ํ ๊ธ์ก
goodsName: '๋์ด์คํ์ด-์ํ', // (6) ๊ฐ๋งน์ ์ํ ๋ช
returnUrl: 'http://localhost:4567/serverAuth' // (7) ๊ฐ๋งน์ ์ธ์ฆ ๊ฒฐ๊ณผ ์๋ต๋ฐ์ URL
});
}
</script>
- (1):
AUTHNICE.requestPay
- ๋์ด์คํ์ด๋จผ์ธ ๊ฒฐ์ ์ฐฝ ํธ์ถ ํจ์
- (2):
clientId: 'R1_xxx'
- ๊ฐ๋งน์ ํ ์คํธ ์์ ์ key ์ ๋ณด์์ ๋ฐ๊ธ ๋ฐ์ clientId
- (3):
method: 'card'
- ๊ณ ๊ฐ์ด ์ ํํ ๊ฒฐ์ ์๋จ
- ์ด์ํ๊ฒฝ์์ ์ ๊ณตํ๋ ์ธ์ฆ ๊ฒฐ์ ์ฐฝ ๊ฒฐ์ ์๋จ
- (4):
orderId: 'your-unique-orderid'
- ๊ฐ๋งน์ ๊ณ ์ ์ฃผ๋ฌธ์ ๋ณด
- ๋์ด์คํ์ด๋จผ์ธ ์์ ๊ฐ๋งน์ ์ด ์์ฒญํ ๊ฒฐ์ ์์ฒญ์ด ์ค๋ณต์ฒ๋ฆฌ๊ฐ ๋์ง ์๋๋ก ๊ฒ์ฆ
- (5):
amount: 1004
- ๊ฒฐ์ ๊ธ์ก
- ๊ฐ๋งน์ ์์ ํ๋งคํ๋ ์ํ ๊ธ์ก
- (6):
returnUrl: 'http://localhost:4567/serverAuth'
- ๊ฐ๋งน์ ์์ ์ธ์ฆ์ ๋ํ ์๋ต ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ ๋ฐ์ URL
- 2 Transaction ์ธ์ฆ ์๋ต ๋ช ์ธ์
์ธ์ฆ ์์ฒญ์ ๋ํ F&Q
Q1. [P006]. clientId๊ฐ ์ ํจํ์ง ์์ต๋๋ค.(GID ํ๋ ์คํจ)
์ด์ clientId๋ R1_ or R2_ ์ผ๋ก ์์ํฉ๋๋ค.
์น์ธ ์๋ต์ ๋ํ ์ค๋ช
์น์ธ ์๋ต์ ๊ฒฐ์ ๊ณผ์ ์ค์์ ๊ณ ๊ฐ์ ์นด๋์ฌ์ ์ํด ํน์ ๊ธ์ก์ ๊ฒฐ์ ๊ฐ ํ๊ฐ๋์์์ ๋ํ๋ด๋ ๋ฉ์์ง์ ๋๋ค.
๊ฐ๋งน์ ์ ์ค์๊ฐ(์ธ์ฆ ์์ฒญ ์์ returnUrl)์ผ๋ก ๊ฒฐ๊ณผ๋ฅผ ํ์ธ ํ ์๋ ์๊ณ , ๋์์ ๊ฒฐ์ ์๋จ์ ๋ํ ์นํ URL์ ๋ฑ๋กํ์์ ๊ฒฝ์ฐ, ์นํ ์ ํตํด ๊ฒฐ์ ํต๋ณด๋ฅผ ์๋ฒ๋ก ์ ๋ฌ๋ฐ์ ์ ์์ต๋๋ค.
์นํ ์ ํตํด ๊ฒฐ์ ํต๋ณด๋ฅผ ๋ฐ๋ ๊ฒฝ์ฐ ๊ฐ๋งน์ ์ ๊ฒฐ์ ๊ฒฐ๊ณผ์ ๋ํ ์ถ๊ฐ์ ์ธ ๊ฒ์ฆ์ ์งํํ ์ ์์ต๋๋ค.
์ด์ ์น์ธ ์๋ต ๋ฐ์ดํฐ
{
"resultCode": "0000",
"resultMsg": "์ ์ ์ฒ๋ฆฌ๋์์ต๋๋ค.",
"tid": "{{tid}}",
"cancelledTid": null,
"orderId": "{{unique_orderId}",
"ediDate": "2023-08-14T17:07:28.021+0900",
"signature": "{{hex(sha256(tid + amount + ediDate+ SecretKey))}}",
"status": "paid",
"paidAt": "2023-08-14T17:07:27.000+0900",
"failedAt": "0",
"cancelledAt": "0",
"payMethod": "card",
"amount": 1004,
"balanceAmt": 1004,
"goodsName": "์ํ๋ช
",
"mallReserved": null,
"useEscrow": false,
"currency": "KRW",
"channel": "pc",
"approveNo": "000000",
"buyerName": null,
"buyerTel": null,
"buyerEmail": null,
"receiptUrl": "https://npg.nicepay.co.kr/issue/IssueLoader.do?type=0&innerWin=Y&TID={{tid}}",
"mallUserId": null,
"issuedCashReceipt": false,
"coupon": null,
"card": {
"cardCode": "{{์นด๋์ฌ์ฝ๋}}",
"cardName": "{{์นด๋์ฌ}}",
"cardNum": "{{์ ์ฉ์นด๋ ๋ฒํธ}}", // PCI-DSS ์ 6์๋ฆฌ, ๋ค 4์๋ฆฌ ์ธ ๋ง์คํน ์ฒ๋ฆฌ
"cardQuota": 0,
"isInterestFree": false,
"cardType": "credit",
"canPartCancel": true,
"acquCardCode": "{{๋งค์
์ฌ ์ฝ๋}}",
"acquCardName": "{{๋งค์
์ฌ ๋ช
}}"
},
"vbank": null,
"bank": null,
"cellphone": null,
"cancels": null,
"cashReceipts": null,
"messageSource": "nicepay"
}