webhook test - nicepayments/nicepay-manual GitHub Wiki
์ค์ ๊ฒฐ์ ํ๋ก์ฐ๋ฅผ ํตํด ์นํ ์์ ์ ํ ์คํธํ๊ณ , ์์ ์ฑ ๋ฐ ๋ณด์์ ๊ฒ์ฆํ๋ ์ค์ฉ ๊ฐ์ด๋์ ๋๋ค.
๋ณธ๊ฒฉ์ ์ธ ํ ์คํธ ์ ์, ์นํ ์ ์์ ํ๊ณ ๋๋ฒ๊น ํ ํ๊ฒฝ์ ์ค๋นํฉ๋๋ค.
- ์นํ URL ๋ฑ๋ก ์๋ฃ: ๋ฑ๋ก ๊ฐ์ด๋๋ฅผ ์ฐธ๊ณ ํ์ฌ ํ ์คํธํ๋ ค๋ ์ด๋ฒคํธ(card, vbank ๋ฑ)์ URL์ ๋ฏธ๋ฆฌ ๋ฑ๋กํด์ผ ํฉ๋๋ค.
- ์นํ ์๋ํฌ์ธํธ ์๋ฒ ์คํ ์ค: ์นํ ์ ์์ ํ ๊ฐ๋งน์ ์๋ฒ๊ฐ ์คํ ์ํ์ฌ์ผ ํฉ๋๋ค.
- ๊ฒฐ์ ์ฐฝ ์ฐ๋ ์๋ฃ: ํ ์คํธ ๊ฒฐ์ ๋ฅผ ์งํํ ์ ์๋ ๊ฒฐ์ ์ฐฝ์ด ์ค๋น๋์ด ์์ด์ผ ํฉ๋๋ค.
| ๊ตฌ๋ถ | ์๋๋ฐ์ค | ์ด์ |
|---|---|---|
| ClientId |
S1_, S2_ prefix |
R1_, R2_ prefix |
| API | sandbox-api.nicepay.co.kr |
api.nicepay.co.kr |
| ํ ์คํธ ์นด๋ | 5465-2100-0000-0003 |
์ค์ ์นด๋ ํ์ |
# 1. ngrok ์ค์น (macOS, Homebrew ๊ธฐ์ค)
brew install ngrok
# 2. ๋ก์ปฌ ์๋ฒ(์: 3000๋ฒ ํฌํธ)์ ํฐ๋ ์์ฑ
ngrok http 3000Forwarding https://<๋๋ค ์ฃผ์>.ngrok-free.app -> http://localhost:3000
์
Forwarding์ฃผ์(https://...)๋ฅผ ๋ณต์ฌํ์ฌ ์นํ URL๋ก ๋ฑ๋กํ๋ฉด, ๋ก์ปฌ ํ๊ฒฝ์์ ์นํ ์ ์์ ํ ์ ์์ต๋๋ค.
์๋ฒ๋ฅผ ์ง์ ๊ตฌํํ๊ธฐ ์ ์ ์นํ ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ ํค๋๋ฅผ ํ์ธํ๊ณ ์ถ์ ๋ ์ ์ฉํฉ๋๋ค.
- webhook.site ์ ์ํ์ฌ ๊ณ ์ URL์ ๋ณต์ฌํฉ๋๋ค.
- ๋ณต์ฌํ URL์ NICEPAY ์นํ URL๋ก ๋ฑ๋กํฉ๋๋ค.
- ํ ์คํธ ๊ฒฐ์ ๋ฅผ ์งํํ๋ฉด, ํด๋น ์ฌ์ดํธ์ ์น UI์์ ์ค์๊ฐ์ผ๋ก ์์ ๋ ์นํ ์์ฒญ์ ๋ชจ๋ ๋ด์ฉ(Header, Body)๊ณผ ํจ๊ป ํ์ธํ ์ ์์ต๋๋ค.
๊ฐ์ฅ ์ค์ํ ๋ณด์ ์ ์ฐจ์ ๋๋ค. ๋ชจ๋ ์๋๋ฆฌ์ค ํ ์คํธ์ ์์, Signature ๊ฒ์ฆ ๋ก์ง์ ์ต์ฐ์ ์ผ๋ก ๊ตฌํํด์ผ ํฉ๋๋ค.
Signature ๊ฒ์ฆ์ ์์ ํ ์นํ ์ด NICEPAY๊ฐ ๋ณด๋ธ ์๋ณธ ์์ฒญ์ด ๋ง๋์ง, ์ค๊ฐ์ ๋ฐ์ดํฐ๊ฐ ์๋ณ์กฐ๋์ง๋ ์์๋์ง ํ์ธํ๋ ๊ณผ์ ์ ๋๋ค. ์ด ์ ์ฐจ ์์ด๋ ์นํ ์ ์ ๋ขฐํ ์ ์์ต๋๋ค.
์นํ
์ด๋ฒคํธ(status)์ ์ข
๋ฅ์ ๋ฐ๋ผ Signature๋ฅผ ์์ฑํ๋ ํ๋ ์กฐํฉ์ด ๋ฌ๋ผ์ง๋๋ค.
| status | Signature ์์ฑ ํ๋ (+๋ก ๋ฌธ์์ด ์ฐ๊ฒฐ) |
|---|---|
paid |
tid + amount + ediDate + secretKey
|
cancelled |
tid + cancelAmt + ediDate + secretKey
|
ready |
tid + amount + vbankExpDate + secretKey
|
SecretKey ์ ๋ณด ๊ฒ์ฆ์ ์ฌ์ฉ๋๋
secretKey๋ ๊ฐ๋งน์ ๊ด๋ฆฌ์์ ๋ฑ๋ก๋ 48์์ SecretKey ์ ์ฒด๋ฅผ ์๋ฏธํฉ๋๋ค.
ํต์ฌ ๊ฒ์ฆ ๋ก์ง์ด ์ค๋น๋์๋ค๋ฉด, ์ด์ ์๋๋ฆฌ์ค๋ณ๋ก ์นํ ์ ํ ์คํธํฉ๋๋ค.
-
๊ฒฐ์ ์งํ: ์๋๋ฐ์ค ๊ฒฐ์ ์ฐฝ์์ ์๋ ํ
์คํธ ์นด๋๋ก ๊ฒฐ์ ๋ฅผ ์งํํฉ๋๋ค.
- ์นด๋๋ฒํธ:
5465-2100-0000-0003 - ์ ํจ๊ธฐ๊ฐ:
25/12 - CVC:
123
- ์นด๋๋ฒํธ:
-
์นํ
์์ : ๊ฒฐ์ ์๋ฃ ์
status: "paid"์ธ ์นํ ์ด ์์ ๋ฉ๋๋ค. -
๊ฒ์ฆ:
- ์์ ๋ ์นํ
์
Signature๊ฐ ์ 2๋จ๊ณ์์ ๊ตฌํํ ๋ก์ง์ ๋ฐ๋ผ ๊ฒ์ฆ๋๋์ง ํ์ธํฉ๋๋ค. -
tid,orderId,amount๋ฑ ์ฃผ์ ์ ๋ณด๊ฐ ์์๊ณผ ์ผ์นํ๋์ง ํ์ธํฉ๋๋ค.
- ์์ ๋ ์นํ
์
๊ฐ์๊ณ์ข๋ **'๋ฐ๊ธ'**๊ณผ '์ ๊ธ' ์์ ์ ๊ฐ๊ฐ ์นํ ์ด ์ ์ก๋ฉ๋๋ค.
-
1์ฐจ ์นํ
(๋ฐ๊ธ):
- ํ ์คํธ ๋ฐฉ๋ฒ: ๊ฐ์๊ณ์ข ๊ฒฐ์ ๋ฅผ ์๋ํ์ฌ ๊ณ์ข๋ฒํธ๋ฅผ ๋ฐ๊ธ๋ฐ์ต๋๋ค.
-
์์ ๋ด์ฉ:
status: "ready"์ธ ์นํ ์ด ์์ ๋๋ฉฐ,vbank๊ฐ์ฒด์ ๊ณ์ข ์ ๋ณด๊ฐ ํฌํจ๋ฉ๋๋ค. -
๊ฒ์ฆ:
ready์ํ์ ๋ง๋ Signature ๊ณต์์ ์ฌ์ฉํ์ฌ ๊ฒ์ฆ๋๋์ง ํ์ธํฉ๋๋ค.
-
2์ฐจ ์นํ
(์
๊ธ):
-
ํ
์คํธ ๋ฐฉ๋ฒ: ์ค์ ์
๊ธ ์์ด, ์๋๋ฐ์ค ์
๊ธ์ ์๋ฎฌ๋ ์ด์
ํฉ๋๋ค.
์๋๋ฐ์ค ๊ฐ๋งน์ ๊ด๋ฆฌ์ ๋ก๊ทธ์ธ โ 'ํ ์คํธ > ๊ฐ์๊ณ์ข ์ ๊ธํต๋ณด' ๋ฉ๋ด์์ ๋ฐ๊ธ๋ ์นํ ์
tid๋ฅผ ์ ๋ ฅํ์ฌ ์ ๊ธ์ ๊ฐ์ ์คํํ ์ ์์ต๋๋ค. -
์์ ๋ด์ฉ:
status: "paid"์ธ ์นํ ์ด ์์ ๋๋ฉฐ,paidAtํ๋๊ฐ ์ฑ์์ ธ ์์ต๋๋ค. -
๊ฒ์ฆ:
paid์ํ์ ๋ง๋ Signature ๊ณต์์ ์ฌ์ฉํ์ฌ ๊ฒ์ฆ๋๋์ง ํ์ธํฉ๋๋ค.
-
ํ
์คํธ ๋ฐฉ๋ฒ: ์ค์ ์
๊ธ ์์ด, ์๋๋ฐ์ค ์
๊ธ์ ์๋ฎฌ๋ ์ด์
ํฉ๋๋ค.
-
๊ฒฐ์ ์งํ: ๋จผ์ ์นด๋ ๊ฒฐ์ ๋ฅผ ์ฑ๊ณต์์ผ
tid๋ฅผ ํ๋ณดํฉ๋๋ค. -
์ทจ์ API ํธ์ถ: ํด๋น
tid๋ก ๊ฒฐ์ ์ทจ์ API๋ฅผ ํธ์ถํฉ๋๋ค. -
์นํ
์์ :
status: "cancelled"์ธ ์นํ ์ด ์์ ๋ฉ๋๋ค. -
๊ฒ์ฆ:
-
cancelled์ํ์ ๋ง๋ Signature ๊ณต์์ ์ฌ์ฉํ์ฌ ๊ฒ์ฆ๋๋์ง ํ์ธํฉ๋๋ค. -
cancelAmt๊ฐ ์์ฒญํ ์ทจ์ ๊ธ์ก๊ณผ ์ผ์นํ๋์ง ํ์ธํฉ๋๋ค.
-
๋ชจ๋ ํ ์คํธ๋ฅผ ๋ง์น ํ, ์๋ ํญ๋ชฉ์ ์ต์ข ์ ์ผ๋ก ์ ๊ฒํฉ๋๋ค.
- ์นด๋ ๊ฒฐ์ ์นํ
(
paid) - ๊ฐ์๊ณ์ข ๋ฐ๊ธ ์นํ
(
ready) - ๊ฐ์๊ณ์ข ์
๊ธ ์นํ
(
paid) - ๊ฒฐ์ ์ทจ์ ์นํ
(
cancelled)
- ๋ชจ๋ ์นํ ์ ๋ํด Signature ๊ฒ์ฆ์ ์ํํ๋๊ฐ?
- ๋ชจ๋ ์นํ
์์ ์ **
200 OK**๋ฅผ ์ฆ์ ์๋ตํ๋๊ฐ? - 1-Transaction ๋ฐฉ์์ ๊ฒฝ์ฐ, ์ค๋ณต ์ฒ๋ฆฌ ๋ฐฉ์ง ๋ก์ง์ด ์ ์ ๋์ํ๋๊ฐ?
- DB์ ์ ์ฅ๋ ์ฃผ๋ฌธ ์ ๋ณด(๊ธ์ก, ์ํ ๋ฑ)๊ฐ ์นํ ๋ด์ฉ๊ณผ ์ผ์นํ๊ฒ ์ ๋ฐ์ดํธ๋๋๊ฐ?
- 1-Transaction ์นํ & ์น์ธ๊ธ์ก๊ฒ์ฆ: 1-Transaction ๋ฐฉ์์ ์ฌ์ฉํ๋ค๋ฉด ๋ฐ๋์ ์ฝ์ด์ผ ํ ์ฌํ ๊ฐ์ด๋
- ์นํ ๊ฑฐ๋ํต๋ณด ๋ช ์ธ: ์นํ ์ผ๋ก ์ ๋ฌ๋๋ ๋ชจ๋ ํ๋์ ๋ํ ์์ธ ๋ช ์ธ