webhook management - nicepayments/nicepay-manual GitHub Wiki
API๋ฅผ ํตํด ์นํ URL์ ๋ฑ๋ก, ์กฐํ, ์์ , ์ญ์ ํ๊ณ ์ํ ๊ฑฐ๋ํต๋ณด๋ก ๊ฒ์ฆํ๋ ๊ฐ์ด๋
- ์ด์ ClientId (R1_ ๋๋ R2_ prefix)
- ์ด์ SecretKey
- HTTPS ์นํ ์๋ํฌ์ธํธ URL
์นํ ์ ๋ฐ์ ์๋ฒ ์๋ํฌ์ธํธ๊ฐ ๋ค์ ์กฐ๊ฑด์ ๋ง์กฑํด์ผ ํฉ๋๋ค:
HTTP Status: 200
Content-Type: text/html
Response Body: "OK"
Content-Type์ด application/json์ด๋ฉด ์ ๋ฉ๋๋ค!
Base64 ์ธ์ฝ๋ฉ์ผ๋ก ์ธ์ฆ ํ ํฐ์ ์์ฑํฉ๋๋ค.
# macOS/Linux
echo -n "R2_your_client_id:your_secret_key" | base64
# ๊ฒฐ๊ณผ ์์
UjJfeW91cl9jbGllbnRfaWQ6eW91cl9zZWNyZXRfa2V5์นด๋ ๊ฒฐ์ ์นํ URL์ ๋ฑ๋กํฉ๋๋ค.
curl -X POST 'https://api.nicepay.co.kr/v1/webhook' \
-H 'Content-type: application/json' \
-H 'Authorization: Basic UjJfeW91cl9jbGllbnRfaWQ6eW91cl9zZWNyZXRfa2V5' \
-d '{
"method": "card",
"url": "https://your-domain.com/webhook/nicepay",
"managerEmail": "[email protected]"
}'- API ์์ฒญ ์ ์ก
- NICEPAY๊ฐ ๋ฑ๋กํ URL๋ก ์ํ ๊ฑฐ๋ํต๋ณด ์ ์ก
- ์๋ฒ์์
HTTP 200+"OK"์๋ต - ๊ฒ์ฆ ์ฑ๊ณต ์ ๋ฑ๋ก ์๋ฃ
{
"resultCode": "0000",
"resultMsg": "์ ์ ์ฒ๋ฆฌ๋์์ต๋๋ค.",
"messageSource": "nicepay"
}์นํ URL ๋ฑ๋ก ์ NICEPAY๊ฐ ๋ณด๋ด๋ ์ํ ๋ฐ์ดํฐ ์์:
{
"resultCode": "0000",
"resultMsg": "sample",
"tid": "nictest00m01012109281716439616M3497138",
"orderId": "SAMPLE-ORDER-ID",
"amount": 1000,
"payMethod": "card",
"status": "paid",
"signature": "์ํ_signature",
"ediDate": "2024-01-01T00:00:00+09:00"
}์ํ ๋ฐ์ดํฐ ํน์ง:
-
resultMsg: "sample"- ํ ์คํธ ๋ฐ์ดํฐ์์ ํ์ - Signature ๊ฒ์ฆ ๋ถํ์ (๋๋ฏธ ๋ฐ์ดํฐ)
- ์๋ฒ ๋ก๊ทธ์์ ์ํ ๋ฐ์ดํฐ ์์ ํ์ธ
-
HTTP 200+"OK"์๋ต ํ์ธ - API ์๋ต์์
resultCode: "0000"ํ์ธ
๋ฑ๋ก๋ ์นํ URL์ ์กฐํํฉ๋๋ค.
curl -X GET 'https://api.nicepay.co.kr/v1/webhook' \
-H 'Content-type: application/json' \
-H 'Authorization: Basic UjJfeW91cl9jbGllbnRfaWQ6eW91cl9zZWNyZXRfa2V5'{
"resultCode": "0000",
"resultMsg": "์ ์ ์ฒ๋ฆฌ๋์์ต๋๋ค.",
"messageSource": "nicepay",
"urls": [
{
"method": "card",
"url": "https://your-domain.com/webhook/nicepay",
"managerEmail": "[email protected]"
}
]
}์ถ๊ฐ ๊ฒฐ์ ์๋จ ๋ฑ๋ก
curl -X POST 'https://api.nicepay.co.kr/v1/webhook' \
-H 'Content-type: application/json' \
-H 'Authorization: Basic UjJfeW91cl9jbGllbnRfaWQ6...' \
-d '{
"method": "vbank",
"url": "https://your-domain.com/webhook/nicepay"
}'curl -X POST 'https://api.nicepay.co.kr/v1/webhook' \
-H 'Content-type: application/json' \
-H 'Authorization: Basic UjJfeW91cl9jbGllbnRfaWQ6...' \
-d '{
"method": "bank",
"url": "https://your-domain.com/webhook/nicepay"
}'ํ: ๋ชจ๋ ๊ฒฐ์ ์๋จ์ ํ๋์ URL๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
์นํ URL ์์
curl -X POST 'https://api.nicepay.co.kr/v1/webhook/card/update' \
-H 'Content-type: application/json' \
-H 'Authorization: Basic UjJfeW91cl9jbGllbnRfaWQ6...' \
-d '{
"url": "https://your-domain.com/webhook/nicepay-v2"
}'์นํ URL ์ญ์
curl -X POST 'https://api.nicepay.co.kr/v1/webhook/card/delete' \
-H 'Content-type: application/json' \
-H 'Authorization: Basic UjJfeW91cl9jbGllbnRfaWQ6...'์์ธ:
- Content-Type์ด
application/json - Response Body๊ฐ "OK"๊ฐ ์๋
- HTTP Status๊ฐ 200์ด ์๋
ํด๊ฒฐ: ์นํ ์๋ํฌ์ธํธ๊ฐ ๋ค์ ํ์์ผ๋ก ์๋ตํ๋์ง ํ์ธ:
HTTP/1.1 200 OK
Content-Type: text/html
OK
์์ธ:
- HTTPS ์ธ์ฆ์ ์ค๋ฅ
- ๋ฐฉํ๋ฒฝ์์ NICEPAY IP ์ฐจ๋จ
- ์นํ ์๋ํฌ์ธํธ๊ฐ ์๋ตํ์ง ์์
ํด๊ฒฐ:
- SSL ์ธ์ฆ์ ํ์ธ:
openssl s_client -connect your-domain.com:443 - ๋ฐฉํ๋ฒฝ ์ธ๋ฐ์ด๋ ๊ท์น ํ์ธ
- ์๋ฒ ์คํ ์ํ ํ์ธ
์์ธ:
- ์๋ฒ๊ฐ ์คํ ์ค์ด ์๋
- ์นํ ์๋ํฌ์ธํธ ๊ฒฝ๋ก ์ค๋ฅ
- ๋ก๋๋ฐธ๋ฐ์/ํ๋ก์ ์ค์ ์ค๋ฅ
ํด๊ฒฐ:
- ์๋ฒ ์คํ ์ํ ํ์ธ
- ์๋ํฌ์ธํธ ๊ฒฝ๋ก ํ์ธ
- nginx/apache ํ๋ก์ ์ค์ ํ์ธ
- Authorization ํ ํฐ ์์ฑ
- ์นํ
์๋ํฌ์ธํธ ๊ตฌํ (
HTTP 200+text/html+"OK") - ์นด๋ ๊ฒฐ์ ์นํ URL ๋ฑ๋ก ์ฑ๊ณต
- ์ํ ๊ฑฐ๋ํต๋ณด ์์ ํ์ธ
- ์กฐํ API๋ก ๋ฑ๋ก ์ํ ํ์ธ
- ์นํ ํ ์คํธ - ์ค์ ๊ฒฐ์ ๋ก ์นํ ์์ ํ ์คํธ
- ์นํ API ์์ธ ๋ช ์ธ