subscribe integration - nicepayments/nicepay-manual GitHub Wiki

์ •๊ธฐ๊ฒฐ์ œ ์—ฐ๋™

์ •๊ธฐ๊ฒฐ์ œ ์„œ๋น„์Šค ์—ฐ๋™

๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ  for StartUp ์„œ๋น„์Šค๋Š” ๊ฐ€๋งน์ ์˜ ์ •๊ธฐ๊ฒฐ์ œ ์„œ๋น„์Šค๋ฅผ ์œ„ํ•ด ์„ธ ๊ฐ€์ง€ API๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๋นŒํ‚ค ๋ฐœ๊ธ‰
  2. ๋นŒํ‚ค ์Šน์ธ
  3. ๋นŒํ‚ค ์‚ญ์ œ

๋นŒํ‚ค ๋ฐœ๊ธ‰

๊ฐ€๋งน์ ์€ ์ •๊ธฐ๊ฒฐ์ œ ์„œ๋น„์Šค๋ฅผ ๊ณ ๊ฐ์—๊ฒŒ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ๋นŒํ‚ค ๋ฐœ๊ธ‰ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋™์ผํ•œ ๊ฒฐ์ œ์ˆ˜๋‹จ์œผ๋กœ ๋‹ค์ˆ˜์˜ ๋นŒํ‚ค๋ฅผ ๋ฐœ๊ธ‰ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋นŒํ‚ค ๋ฐœ๊ธ‰ API๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์‚ฌ์ „์— ๊ณ ๊ฐ์˜ ๊ฒฐ์ œ์ •๋ณด๋ฅผ ๋ฐ›์•„ encData ๊ฐ’์„ ๋งŒ๋“ค์–ด ๋ณด๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ์ธ์ •๋ณด๋ณดํ˜ธ๋ฒ•์— ๋”ฐ๋ผ ๊ณ ๊ฐ์˜ ๊ฐœ์ธ์ •๋ณด ๋ฐ ๊ฒฐ์ œ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๊ณ  ์žฌ์‚ฌ์šฉ๋จ์„ ๊ณ ๊ฐ์—๊ฒŒ ๋ช…ํ™•ํžˆ ์•Œ๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค.

curl -X POST 'https://api.nicepay.co.kr/v1/subscribe/regist'  # (1) ๋นŒํ‚ค๋ฐœ๊ธ‰์„ ์œ„ํ•œ endpoint
-H 'Content-Type: application/json' 
-H 'Authorization: Basic ZWVjOGQzNTA4Y2IwNDI1ZGI5NTViMzBiZjM5...' 
-D '{
	"encData":"{์•”ํ˜ธํ™”๋œ ๊ฒฐ์ œ์ •๋ณด ๋ฐ์ดํ„ฐ}"  # (2) ๊ฒฐ์ œ์ •๋ณด ์•”ํ˜ธํ™” AES128 or AES256
	, "orderId":"{์ƒ์  ๊ฑฐ๋ž˜ ๊ณ ์œ ๋ฒˆํ˜ธ}"   # (3) ๊ฒฐ์ œ ์š”์ฒญ์ด ์ค‘๋ณต์œผ๋กœ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ๊ฐ€๋งน์ ์—์„œ ์ƒ์„ฑํ•˜๋Š” ์œ ๋‹ˆํฌํ•œ ID
	, "encMode":"{null or A2}" # null: AES128, A2: AES256   # (4) ์•”ํ˜ธํ™” ๋ชจ๋“œ (null: AES128, A2: AES256)
}'
  • (1): curl -X POST 'https://api.nicepay.co.kr/v1/subscribe/regist'

    • ๋นŒํ‚ค ๋ฐœ๊ธ‰์„ ์œ„ํ•œ endpoint
  • (2): "encData":"{์•”ํ˜ธํ™”๋œ ๊ฒฐ์ œ์ •๋ณด ๋ฐ์ดํ„ฐ}"

    • ๊ณ ๊ฐ์˜ ๊ฒฐ์ œ์ •๋ณด๋ฅผ AES128, AES256 ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐฉ์‹์œผ๋กœ ์•”ํ˜ธํ™”ํ•œ ๋ฐ์ดํ„ฐ
    • encMode ๊ฐ’์ด null๋กœ ๋นˆ ๊ฐ’์„ ๋ณด๋‚ด๋Š” ๊ฒฝ์šฐ AES128๋กœ ์•”ํ˜ธํ™” ํ•ด์•ผํ•˜๊ณ , encMode์˜ ๊ฐ’์„ A2๋กœ ์„ค์ •ํ–ˆ๋‹ค๋ฉด encData๋Š” AES256 ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์•”ํ˜ธํ™”
    • encData ๋ช…์„ธ์„œ
  • (3): orderId":"{์ƒ์  ๊ฑฐ๋ž˜ ๊ณ ์œ ๋ฒˆํ˜ธ}"

    • ๊ฐ€๋งน์ ์˜ ์š”์ฒญ์ด ์ค‘๋ณต์ฒ˜๋ฆฌ ๋˜์ง€ ์•Š๋„๋ก, ๊ฐ€๋งน์ ์€ uniqueํ•œ ID ๊ฐ’์„ ์„ค์ •
    • ๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ๋Š” ๊ฐ€๋งน์ ์˜ API ์š”์ฒญ์‹œ orderId์˜ ์ค‘๋ณต์„ ๊ฒ€์ฆํ•˜์—ฌ ๋™์ผํ•œ ์š”์ฒญ์ •๋ณด๊ฐ€ ์—ฌ๋Ÿฌ ์ฐจ๋ก€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ํ•จ
  • (4): "encMode":"{null or A2}"

    • ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋“  encData๋กœ ๋นŒํ‚ค ๋ฐœ๊ธ‰์„ ์š”์ฒญํ•˜๋ ค๊ณ  ํ•  ๋•Œ, ๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ์— encData๋ฅผ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ๋งŒ๋“ค์—ˆ๋Š”์ง€๋ฅผ ์ „๋‹ฌํ•˜๋Š” ํ•„๋“œ ๊ฐ’
    • encMode ํ•„๋“œ์˜ ๊ฐ’์„ ์„ค์ •ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ, ๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ๋Š” AES128 ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐฉ์‹์ด๋ผ ํŒ๋‹จํ•˜๊ณ  ๊ฒ€์ฆํ•˜๊ณ , A2๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ AES256 ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐฉ์‹์ด๋ผ ํŒ๋‹จํ•˜๊ณ  ๊ฒ€์ฆ
  • ๋นŒํ‚ค ๋ฐœ๊ธ‰ API ์‘๋‹ต ๋ช…์„ธ

{
  "resultCode": "0000",
  "resultMsg": "์ •์ƒ ์ฒ˜๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.",
  "tid": "{๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ๊ฐ€ ๋ฐœ๊ธ‰ํ•œ ๋นŒํ‚ค ๋ฐœ๊ธ‰์— ๋Œ€ํ•œ TransactionId}",
  "orderId": "{๊ฐ€๋งน์  ์ฃผ๋ฌธ ๊ณ ์œ  ์‹๋ณ„์ž}",
  "bid": "BIKY{๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ๊ฐ€ ๋ฐœ๊ธ‰ํ•œ ๋นŒํ‚ค}",  # (1) ๋นŒํ‚ค ๋ฐœ๊ธ‰ ์„ฑ๊ณต์‹œ ๋ฐœ๊ธ‰๋œ ๋นŒํ‚ค(ํ•ด๋‹น ํ‚ค๋ฅผ ํ†ตํ•ด ๋นŒํ‚ค ์Šน์ธ ์š”์ฒญ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.)
  "authDate": "2023-12-26T00:00:00.000+0900",
  "cardCode": "06",
  "cardName": "[์‹ ํ•œ]",
  "messageSource": "nicepay"
}
  • (1): "bid": BIKY{๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ๊ฐ€ ๋ฐœ๊ธ‰ํ•œ ๋นŒํ‚ค}
    • ์ •์ƒ์ ์ธ ๋นŒํ‚ค ๋ฐœ๊ธ‰ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ๊ฐ€ ๋ฐœ๊ธ‰ํ•œ ๋นŒํ‚ค
    • ํ•ด๋‹น ๋นŒํ‚ค๋ฅผ ํ†ตํ•ด ์ •๊ธฐ์ ์ธ ๋นŒํ‚ค์Šน์ธ ์š”์ฒญ์œผ๋กœ ์ •๊ธฐ๊ฒฐ์ œ ์„œ๋น„์Šค ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

encData ๊ตฌํ˜„ ๋ฐฉ์‹ (AES128, AES256)

encData์˜ ๊ตฌ์„ฑ์š”์†Œ๋Š” ์นด๋“œ๋ฒˆํ˜ธ, ์œ ํšจ๊ธฐ๊ฐ„(YY, MM), ์ƒ๋…„์›”์ผ / ์‚ฌ์—…์ž๋ฒˆํ˜ธ, ์นด๋“œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ๊ฐ’์œผ๋กœ ๋ชจ๋“  ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•˜๋ฉฐ ์ผ๋ถ€ ๊ณ„์•ฝ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • encData ํ•„๋“œ ์•”ํ˜ธํ™” ์˜ˆ์‹œ (AES-128)
    • secretKey๋ฅผ ์•”ํ˜ธํ‚ค๋กœ ์‚ฌ์šฉ
- ํ‰๋ฌธ  : cardNo=1234567890123456&expYear=25&expMonth=12&idNo=800101&cardPw=12
- ์•”ํ˜ธํ‚ค : 2dcc2a0d63bf4694 (SecretKey ์•ž16์ž๋ฆฌ)
- ์•”ํ˜ธํ™”๊ฒฐ๊ณผ : `2127975b6d82c36136ba8197a997a994f6c086ff75a6d35e514c54a1e686545e60b76f11bec706de1082e43dd74ae5c5f0709dc1eca6c3cd20e1c0e9e9b7a85c6505461c91c865d82072e41ba5284bd7`
  • encData ํ•„๋“œ ์•”ํ˜ธํ™” ์˜ˆ์‹œ (AES-256)
    • secretKey๋ฅผ ์•”ํ˜ธํ‚ค๋กœ ์‚ฌ์šฉ
    • secretKey์˜ ์•ž 16์ž๋ฆฌ๋ฅผ IV ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ
- ํ‰๋ฌธ : cardNo=1234567890123456&expYear=25&expMonth=12&idNo=800101&cardPw=12
- ์•”ํ˜ธํ‚ค : 2dcc2a0d63bf469490bb19a201be3735
- IV  : 2dcc2a0d63bf4694 (SecretKey ์•ž16์ž๋ฆฌ)
- ์•”ํ˜ธํ™”๊ฒฐ๊ณผ : `6ecfe97e521bc67c3053d74a9dbdba53033d343fc9e8e38e730964b22ef2e4a59607171b00a9da977141b3f79fffa1e80a16c08bc58666b479f554a966a363414347e62f2621f8df220c7a4a545592d0`

๋นŒํ‚ค ๋ฐœ๊ธ‰ API ๋Œ€ํ•œ F&Q

Q1. PKCS7 ์ „์ž์„œ๋ช… ๊ฒ€์ฆ ์‹คํŒจ
A. ๊ฒฐ์ œ์ •๋ณด๋ฅผ ์•”ํ˜ธํ™” ํ•˜๊ธฐ ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ž˜๋ชป๋˜์—ˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

๋นŒํ‚ค ์Šน์ธ

๋นŒํ‚ค ์Šน์ธ์€ ์ •๊ธฐ ๊ฒฐ์ œ ์„œ๋น„์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ์‹ค์ œ ์Šน์ธ ์š”์ฒญํ•˜๋Š” ๊ณผ์ •์˜ API ์ž…๋‹ˆ๋‹ค.

๋นŒํ‚ค ๋ฐœ๊ธ‰์„ ํ†ตํ•ด ๋ฐœ๊ธ‰ ๋ฐ›์€ BID๋ฅผ ํ†ตํ•ด ๋นŒํ‚ค ์Šน์ธ์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

curl --request POST --url 'https://api.nicepay.co.kr/v1/subscribe/{bid}/payments' # (1) ๋นŒํ‚ค ์Šน์ธ์„ ์œ„ํ•œ endpoint
--header 'Content-Type: application/json' 
--header 'Authorization: Basic ZWVjOGQzNTA4Y2IwNDI1ZGI5NTViMzBi...' 
--data '{
	"orderId":"{๊ฐ€๋งน์ ์˜ API ์š”์ฒญ ์‹๋ณ„์ž}" # (2) ๊ฐ€๋งน์ ์—์„œ ๋นŒํ‚ค ์Šน์ธ ์š”์ฒญ์„ ์œ„ํ•œ ๊ณ ์œ  ์š”์ฒญ ์‹๋ณ„์ž
	,"amount":1004
	,"goodsName":"์ •๊ธฐ๊ฒฐ์ œ ์ƒํ’ˆ"
	,"cardQuota":0            # (3) ํ• ๋ถ€๊ฐœ์›”์ˆ˜ (0: ์ผ์‹œ๋ถˆ, 01~12: ๊ฐœ์›”์ˆ˜)
	,"useShopInterest":false  # (4) ์ƒ์  ๋ถ„๋‹ด ๋ฌด์ด์ž ์„ค์ • ์—ฌ๋ถ€ (true: ๋ฌด์ด์ž , false: ์œ ์ด์ž)
}'
  • (1): curl --request POST --url 'https://api.nicepay.co.kr/v1/subscribe/{bid}/payments'

    • ๋นŒํ‚ค ์Šน์ธ์„ ์œ„ํ•œ endpoint
    • {bid}๋Š” ๋นŒํ‚ค ๋ฐœ๊ธ‰ API๋ฅผ ํ†ตํ•ด ๋ฐœ๊ธ‰ ๋ฐ›์€ BID ๊ฐ’์œผ๋กœ ๋Œ€์ฒด
  • (2): "orderId":"{๊ฐ€๋งน์ ์˜ API ์š”์ฒญ ์‹๋ณ„์ž}"

    • ๊ฐ€๋งน์ ์—์„œ ๋นŒํ‚ค ์Šน์ธ ์š”์ฒญ์„ ์œ„ํ•œ ๊ณ ์œ  ์š”์ฒญ ์‹๋ณ„์ž
    • ์š”์ฒญ ๋ฐ์ดํ„ฐ์˜ ์ •ํ•ฉ์„ฑ์„ ๊ฒ€์ฆ ํ•˜๊ธฐ ์œ„ํ•œ SignData๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํ•„์ˆ˜ ์š”์†Œ
  • (3): "cardQuota":0

    • ํ• ๋ถ€๊ฐœ์›”์ˆ˜ (0: ์ผ์‹œ๋ถˆ, 01~12: ๊ฐœ์›”์ˆ˜)
  • (4): "useShopInterest":false

    • ์ƒ์  ๋ถ„๋‹ด ๋ฌด์ด์ž ์„ค์ • ์—ฌ๋ถ€ (true: ๋ฌด์ด์ž , false: ์œ ์ด์ž)
  • ๋นŒํ‚ค ์Šน์ธ ์‘๋‹ต

๋นŒํ‚ค ์Šน์ธ ์‘๋‹ต์€ ์‹ ์šฉ์นด๋“œ ๊ฒฐ์ œ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

{
  "resultCode": "0000",
  "resultMsg": "์ •์ƒ ์ฒ˜๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.",
  "tid": "{๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ๊ฐ€ ๋ฐœ๊ธ‰ํ•œ ๋นŒํ‚ค ์Šน์ธ์— ๋Œ€ํ•œ TransactionId}", # (1) ๋นŒํ‚ค ์Šน์ธ ์„ฑ๊ณต์‹œ ๋ฐœ๊ธ‰๋œ TransactionId
  "cancelledTid": null,
  "orderId": "{๊ฐ€๋งน์ ์˜ API ์š”์ฒญ ์‹๋ณ„์ž}", # (2) ๊ฐ€๋งน์ ์—์„œ ๋นŒํ‚ค ์Šน์ธ ์š”์ฒญ์„ ์œ„ํ•œ ๊ณ ์œ  ์š”์ฒญ ์‹๋ณ„์ž
  "ediDate": "2023-12-26T10:53:30.151+0900",
  "signature": "{๋ฐ์ดํ„ฐ ๊ฒ€์ฆ์„ ์œ„ํ•œ ์‹œ๊ทธ๋‹ˆ์ฒ˜ ์ •๋ณด}",
  "status": "paid",
  "paidAt": "2023-12-26T10:53:29.000+0900",
  "failedAt": "0",
  "cancelledAt": "0",
  "payMethod": "card",
  "amount": 1004,
  "balanceAmt": 1004,
  "goodsName": "์ •๊ธฐ๊ฒฐ์ œ ์ƒํ’ˆ",
  "mallReserved": null,
  "useEscrow": false,
  "currency": "KRW",
  "channel": null,
  "approveNo": "{์Šน์ธ ๋ฒˆํ˜ธ}",
  "buyerName": null,
  "buyerTel": null,
  "buyerEmail": null,
  "receiptUrl": "https://npg.nicepay.co.kr/issue/IssueLoader.do?type=0&innerWin=Y&TID={๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ๊ฐ€ ๋ฐœ๊ธ‰ํ•œ ๋นŒํ‚ค ์Šน์ธ์— ๋Œ€ํ•œ TransactionId}",
  "mallUserId": null,
  "issuedCashReceipt": false,
  "coupon": {
    "couponAmt": 0
  },
  "card": { # (3) ์นด๋“œ ์ •๋ณด
    "cardCode": "06",
    "cardName": "์‹ ํ•œ",
    "cardNum": "123456******1234",
    "cardQuota": 0,
    "isInterestFree": false,
    "cardType": "credit",
    "canPartCancel": true,
    "acquCardCode": "06",
    "acquCardName": "์‹ ํ•œ"
  },
  "bid": "BIKY{๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ๊ฐ€ ๋ฐœ๊ธ‰ํ•œ ๋นŒํ‚ค}",
  "messageSource": "nicepay"
}
  • (1): "tid": "{๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ๊ฐ€ ๋ฐœ๊ธ‰ํ•œ ๋นŒํ‚ค ์Šน์ธ์— ๋Œ€ํ•œ TransactionId}"
    • ๋นŒํ‚ค ์Šน์ธ ์„ฑ๊ณต์‹œ ๋ฐœ๊ธ‰๋œ TransactionId
    • ๋นŒํ‚ค ์Šน์ธ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ๊ฐ€ ๋ฐœ๊ธ‰ํ•œ TransactionId
    • ํ•ด๋‹น TransactionId๋ฅผ ํ†ตํ•ด ๊ฒฐ์ œ ์ทจ์†Œ ์š”์ฒญ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • (2): "orderId": "{๊ฐ€๋งน์ ์˜ API ์š”์ฒญ ์‹๋ณ„์ž}"
    • ๊ฐ€๋งน์ ์—์„œ ๋นŒํ‚ค ์Šน์ธ ์š”์ฒญ์„ ์œ„ํ•œ ๊ณ ์œ  ์š”์ฒญ ์‹๋ณ„์ž
  • (3): "card": {์นด๋“œ ์ •๋ณด}
    • ์นด๋“œ ์ •๋ณด
    • ์นด๋“œ๋ฒˆํ˜ธ(cardNum)๋Š” ์•ž 6์ž๋ฆฌ์™€ ๋’ค 4์ž๋ฆฌ๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€๋ฅผ *๋กœ ๋งˆ์Šคํ‚น ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

๋นŒํ‚ค ์‚ญ์ œ

๋นŒํ‚ค ์‚ญ์ œ๋Š” ์ •๊ธฐ๊ฒฐ์ œ๋ฅผ ์œ„ํ•ด ๋ฐœ๊ธ‰ ๋ฐ›์•˜๋˜ ๋นŒํ‚ค๋ฅผ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•œ API ์ž…๋‹ˆ๋‹ค.

์‚ญ์ œ์ฒ˜๋ฆฌ๊ฐ€ ์ด๋ฃจ์–ด์ง„ BID๋กœ๋Š” ๋นŒํ‚ค ์Šน์ธ์š”์ฒญ์ด ๋ถˆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

curl --request POST --url 'https://api.nicepay.co.kr/v1/subscribe/BIKY{๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ๊ฐ€ ๋ฐœ๊ธ‰ํ•œ ๋นŒํ‚ค}/expire' \ # (1) ๋นŒํ‚ค ์‚ญ์ œ๋ฅผ ์œ„ํ•œ endpoint
--header 'Authorization: Basic ZWVjOGQzNTA4Y2IwNDI1ZGI5NTViMzBi...' \
--header 'Content-Type: application/json' \
--data '{
  "orderId":"{๊ฐ€๋งน์ ์˜ API ์š”์ฒญ ์‹๋ณ„์ž}", # (2) ๊ฐ€๋งน์ ์—์„œ ๋นŒํ‚ค์‚ญ์ œ ์š”์ฒญ์„ ์œ„ํ•œ ๊ณ ์œ  ์š”์ฒญ ์‹๋ณ„์ž (signData ์ƒ์„ฑ์„ ์œ„ํ•ด ํ•„์ˆ˜ ๊ฐ’)
  "returnCharSet":"UTF-8"
}'
  • (1): curl --request POST --url 'https://api.nicepay.co.kr/v1/subscribe/BIKY{๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ๊ฐ€ ๋ฐœ๊ธ‰ํ•œ ๋นŒํ‚ค}/expire'

    • ๋นŒํ‚ค ์‚ญ์ œ๋ฅผ ์œ„ํ•œ endpoint
    • {bid}๋Š” ๋นŒํ‚ค ๋ฐœ๊ธ‰ API๋ฅผ ํ†ตํ•ด ๋ฐœ๊ธ‰ ๋ฐ›์€ BID ๊ฐ’์œผ๋กœ ๋Œ€์ฒด
  • (2): "orderId":"{๊ฐ€๋งน์ ์˜ API ์š”์ฒญ ์‹๋ณ„์ž}"

    • ๊ฐ€๋งน์ ์—์„œ ๋นŒํ‚ค ์Šน์ธ ์š”์ฒญ์„ ์œ„ํ•œ ๊ณ ์œ  ์š”์ฒญ ์‹๋ณ„์ž
    • ์š”์ฒญ ๋ฐ์ดํ„ฐ์˜ ์ •ํ•ฉ์„ฑ์„ ๊ฒ€์ฆ ํ•˜๊ธฐ ์œ„ํ•œ SignData๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํ•„์ˆ˜ ์š”์†Œ
  • ๋นŒํ‚ค ์‚ญ์ œ API ์‘๋‹ต ๋ช…์„ธ

{
  "resultCode": "0000",
  "resultMsg": "์ •์ƒ ์ฒ˜๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.",
  "tid": "{๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ๊ฐ€ ๋ฐœ๊ธ‰ํ•œ ๋นŒํ‚ค์‚ญ์ œ์— ๋Œ€ํ•œ TransactionId}",
  "orderId": "{๊ฐ€๋งน์ ์˜ API ์š”์ฒญ ์‹๋ณ„์ž}",
  "bid": "BIKY{๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ๊ฐ€ ๋ฐœ๊ธ‰ํ•œ ๋นŒํ‚ค}",
  "authDate": "2023-12-26T11:12:00.750+0900"
}
โš ๏ธ **GitHub.com Fallback** โš ๏ธ