subscribe concept - nicepayments/nicepay-manual GitHub Wiki

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

์ •๊ธฐ๊ฒฐ์ œ ์„œ๋น„์Šค๋Š” ํŠน์ • ์ฃผ๊ธฐ์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ๊ฒฐ์ œ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ์ด์•ผ๊ธฐ ํ•ฉ๋‹ˆ๋‹ค.

์ •๊ธฐ๊ฒฐ์ œ ์„œ๋น„์Šค๋ž€?

์ •๊ธฐ๊ฒฐ์ œ ์„œ๋น„์Šค๋Š” ์‚ฌ์šฉ์ž์˜ ๋™์˜ ํ•˜์— ์ •ํ•ด์ง„ ๊ธˆ์•ก์„ ์ •ํ•ด์ง„ ์ฃผ๊ธฐ๋กœ ์ž๋™์œผ๋กœ ๊ฒฐ์ œํ•˜๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.


์ •๊ธฐ๊ฒฐ์ œ ์„œ๋น„์Šค์˜ ํŠน์ง•

๊ฐ€๋งน์ ์—์„œ๋Š” ์ •๊ธฐ๊ฒฐ์ œ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์€ ํšจ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์ˆ˜์ž… ์ฐฝ์ถœ:

์ •๊ธฐ๊ฒฐ์ œ ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ๊ณ ์ •๋œ ์ฃผ๊ธฐ๋กœ ์ˆ˜์ž…์ด ๋ฐœ์ƒํ•˜๋ฏ€๋กœ, ์ˆ˜์ต ์˜ˆ์ธก์ด ์šฉ์ดํ•ด์ง€๊ณ  ์žฌ๋ฌด ๊ด€๋ฆฌ ๋ฐ ํ–ฅํ›„ ๋น„์ฆˆ๋‹ˆ์Šค ๊ณ„ํš ์ˆ˜๋ฆฝ์ด ์šฉ์ดํ•ด์ง‘๋‹ˆ๋‹ค.

  1. ๊ณ ๊ฐ ์œ ์ง€ ๋ฐ ์ดํƒˆ ๋ฐฉ์ง€:

์ •๊ธฐ๊ฒฐ์ œ๋Š” ๊ณ ๊ฐ์—๊ฒŒ ์ž๋™์ ์ธ ๊ฒฐ์ œ์˜ ํŽธ์˜์„ฑ์„ ์ œ๊ณตํ•˜๋ฉด์„œ ๋™์‹œ์— ํ•ด๋‹น ์„œ๋น„์Šค๋‚˜ ์ œํ’ˆ์— ๋Œ€ํ•œ ๊พธ์ค€ํ•œ ์ด์šฉ ์Šต๊ด€์„ ํ˜•์„ฑ์‹œํ‚ต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๊ณ ๊ฐ์˜ ์ดํƒˆ์œจ์ด ๊ฐ์†Œํ•˜๋ฉฐ, ๊ฐ€๋งน์ ๊ณผ ๊ณ ๊ฐ ์‚ฌ์ด์— ์žฅ๊ธฐ์ ์ธ ์‹ ๋ขฐ ๊ด€๊ณ„๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ, ์ •๊ธฐ๊ฒฐ์ œ๋Š” ๊ฐ€๋งน์ ์—๊ฒŒ ์•ˆ์ •์ ์ธ ์ˆ˜์ต๊ณผ ์ง€์† ๊ฐ€๋Šฅํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ์„ฑ์žฅ์˜ ๊ธฐ๋ฐ˜์ด ๋ฉ๋‹ˆ๋‹ค.

  1. ํšจ์œจ์ ์ธ ์šด์˜:

๊ณ ๊ฐ์ด ๋งค๋ฒˆ ๊ฒฐ์ œ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ž๋™์œผ๋กœ ๊ฒฐ์ œ๊ฐ€ ์ด๋ฃจ์–ด์ง€๋ฏ€๋กœ, ๋งค๋ฒˆ์˜ ๊ฒฐ์ œ ์ฒ˜๋ฆฌ์™€ ๊ด€๋ จ๋œ ์ž‘์—…๋Ÿ‰์ด ์ค„์–ด๋“ค์–ด ์šด์˜์˜ ํšจ์œจ์„ฑ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก ์ ์œผ๋กœ, ์ •๊ธฐ๊ฒฐ์ œ ๋„์ž…์€ ์•ˆ์ •์ ์ธ ์ˆ˜์ต ํ๋ฆ„์„ ํ™•๋ณดํ•˜๊ณ  ๊ณ ๊ฐ ์ดํƒˆ์œจ์„ ์ค„์—ฌ, ์žฅ๊ธฐ์ ์ธ ๊ณ ๊ฐ ๊ด€๊ณ„๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.


์ •๊ธฐ๊ฒฐ์ œ ์„œ๋น„์Šค์˜ ํ๋ฆ„

์ •๊ธฐ๊ฒฐ์ œ ์„œ๋น„์Šค๋ฅผ ์œ„ํ•ด ๊ฐ€๋งน์ ์€ ์•„๋ž˜์™€ ๊ฐ™์€ ํ๋ฆ„์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

๋นŒ๋งํ‚ค ๋ฐœ๊ธ‰ -> ๋นŒ๋งํ‚ค ์Šน์ธ -> ๋นŒ๋งํ‚ค ์‚ญ์ œ

๋นŒํ‚ค ๋ฐœ๊ธ‰ ํ”„๋กœ์„ธ์Šค

๋นŒํ‚ค ๋ฐœ๊ธ‰์€ ์ •๊ธฐ๊ฒฐ์ œ๋ฅผ ์œ„ํ•œ ํ•ต์‹ฌ ๊ณผ์ •์œผ๋กœ, ๊ณ ๊ฐ์˜ ๊ฒฐ์ œ ์ •๋ณด๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณดํ˜ธํ•˜๋ฉด์„œ๋„, ๊ฐ€๋งน์ ์ด ์ดํ›„ ์ •๊ธฐ๊ฒฐ์ œ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ณ ๊ฐ ๊ฒฐ์ œ์ •๋ณด ์ˆ˜์ง‘: ๊ฐ€๋งน์ ์€ ๊ณ ๊ฐ์œผ๋กœ๋ถ€ํ„ฐ ํ•„์š”ํ•œ ๊ฒฐ์ œ์ •๋ณด(์‹ ์šฉ์นด๋“œ ๋ฒˆํ˜ธ, ์œ ํšจ์ผ, ์ฃผ๋ฏผ๋ฒˆํ˜ธ ๋ฐ ์‚ฌ์—…์ž๋ฒˆํ˜ธ, ์นด๋“œ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋“ฑ, ์นด์œ ์ฃผ๋น„)๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.

  • ์•”ํ˜ธํ™”: ์ˆ˜์ง‘๋œ ๊ฒฐ์ œ์ •๋ณด๋Š” ๋ณด์•ˆ์„ ์œ„ํ•ด ๊ฐ€๋งน์ ์—์„œ ์•”ํ˜ธํ™” ์ฒ˜๋ฆฌ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • ๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ  ์ „์†ก: ์•”ํ˜ธํ™”๋œ ๊ฒฐ์ œ์ •๋ณด๋ฅผ ๊ฐ€๋งน์ ์ด ๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ์— ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฒฐ์ œ์ •๋ณด ์œ ํšจ์„ฑ ๊ฒ€์ฆ: ๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ๋Š” ์ „๋‹ฌ๋ฐ›์€ ๊ฒฐ์ œ์ •๋ณด์˜ ์œ ํšจ์„ฑ์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ์‹ค์ œ๋กœ ์œ ํšจํ•œ ์นด๋“œ ์ •๋ณด์ธ์ง€, ๋งŒ๋ฃŒ๋˜์ง€ ์•Š์•˜๋Š”์ง€ ๋“ฑ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  • ๋นŒํ‚ค ์ƒ์„ฑ ๋ฐ ๋ฐœ๊ธ‰: ์œ ํšจ์„ฑ ๊ฒ€์ฆ์ด ํ†ต๊ณผ๋œ ๊ฒฐ์ œ์ •๋ณด์— ๋Œ€ํ•˜์—ฌ ๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ๋Š” ๋นŒ๋งํ‚ค(๋นŒํ‚ค)๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ๋นŒํ‚ค๋Š” ํŠน์ • ๊ณ ๊ฐ์˜ ๊ฒฐ์ œ ์ˆ˜๋‹จ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ์œ ํ•œ ํ‚ค ๊ฐ’์œผ๋กœ, ์‹ค์ œ ๊ฒฐ์ œ์ •๋ณด ๋Œ€์‹  ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • ๊ฐ€๋งน์ ์— ๋นŒํ‚ค ์ „์†ก: ์ƒ์„ฑ๋œ ๋นŒํ‚ค๋ฅผ ๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ๊ฐ€ ๊ฐ€๋งน์ ์—๊ฒŒ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

  • ๋นŒํ‚ค ์ €์žฅ ๋ฐ ํ™œ์šฉ: ๊ฐ€๋งน์ ์€ ์ „๋‹ฌ๋ฐ›์€ ๋นŒํ‚ค๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅํ•˜๊ณ , ์ •๊ธฐ๊ฒฐ์ œ๊ฐ€ ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ํ•ด๋‹น ๋นŒํ‚ค๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์Šน์ธ ์š”์ฒญ์„ ๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ์— ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

sequenceDiagram
    actor Customer as ๊ณ ๊ฐ
    participant Merchant as ๊ฐ€๋งน์  ์„œ๋ฒ„
    participant NICEPAY as NICEPAY ์„œ๋ฒ„
    participant CardCo as ์นด๋“œ์‚ฌ

    Customer->>Merchant: 1. ์ •๊ธฐ๊ฒฐ์ œ ์„œ๋น„์Šค ์‹ ์ฒญ
    Merchant->>Customer: 2. ์•ฝ๊ด€ ๋™์˜ ์š”์ฒญ<br/>(๊ฐœ์ธ์ •๋ณด ์ˆ˜์ง‘/์ด์šฉ)
    Customer->>Merchant: 3. ์•ฝ๊ด€ ๋™์˜ + ๊ฒฐ์ œ์ •๋ณด ์ž…๋ ฅ<br/>(์นด๋“œ๋ฒˆํ˜ธ, ์œ ํšจ๊ธฐ๊ฐ„, ์ƒ๋…„์›”์ผ, ์นด๋“œPW)

    rect rgb(255, 240, 245)
        Note over Merchant: ๐Ÿ” ๊ฒฐ์ œ์ •๋ณด ์•”ํ˜ธํ™”
        Merchant->>Merchant: 4. encData ์ƒ์„ฑ<br/>AES128(secretKey ์•ž16์ž๋ฆฌ) or<br/>AES256(secretKey 32์ž, IV 16์ž)
    end

    Merchant->>NICEPAY: 5. ๋นŒํ‚ค ๋ฐœ๊ธ‰ ์š”์ฒญ<br/>POST /v1/subscribe/regist<br/>{encData, orderId, encMode}

    NICEPAY->>NICEPAY: 6. encData ๋ณตํ˜ธํ™”
    NICEPAY->>CardCo: 7. ์นด๋“œ ์œ ํšจ์„ฑ ํ™•์ธ
    CardCo-->>NICEPAY: 8. ์œ ํšจ์„ฑ ํ™•์ธ ๊ฒฐ๊ณผ

    alt ์œ ํšจํ•œ ์นด๋“œ
        NICEPAY->>NICEPAY: 9. BID ์ƒ์„ฑ<br/>BIKY + 30์ž ๊ณ ์œ  ID
        NICEPAY-->>Merchant: 10. ๋นŒํ‚ค ๋ฐœ๊ธ‰ ์„ฑ๊ณต<br/>{bid, tid, cardCode, cardName}
        Merchant->>Merchant: 11. BID ์ €์žฅ (DB)<br/>๊ณ ๊ฐID์™€ ๋งคํ•‘
        Merchant->>Customer: 12. ๊ตฌ๋… ๋“ฑ๋ก ์™„๋ฃŒ ์•ˆ๋‚ด
    else ์œ ํšจํ•˜์ง€ ์•Š์€ ์นด๋“œ
        NICEPAY-->>Merchant: 10. ๋นŒํ‚ค ๋ฐœ๊ธ‰ ์‹คํŒจ
        Merchant->>Customer: 12. ๋“ฑ๋ก ์‹คํŒจ ์•ˆ๋‚ด
    end
Loading

๋นŒํ‚ค ์Šน์ธ (์ •๊ธฐ๊ฒฐ์ œ ์Šน์ธ ์‹คํ–‰)

๋นŒ๋งํ‚ค ์Šน์ธ ๊ณผ์ •์€ ๊ฐ€๋งน์ ์ด ์ €์žฅํ•œ ๋นŒํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ์— ๊ฒฐ์ œ ์Šน์ธ์„ ์š”์ฒญํ•˜๋Š” ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆœ์„œ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค:

  • ์Šน์ธ ์š”์ฒญ: ๊ฐ€๋งน์ ์€ ๋ฏธ๋ฆฌ ๋ฐœ๊ธ‰๋ฐ›์•„ ์ €์žฅํ•ด๋‘” ๋นŒ๋งํ‚ค์™€ ํ•จ๊ป˜ ๊ฒฐ์ œ ๊ธˆ์•ก, ์ƒํ’ˆ ์ •๋ณด ๋“ฑ ํ•„์š”ํ•œ ๊ฒฐ์ œ ์ƒ์„ธ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜์—ฌ ๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ์— ์Šน์ธ ์š”์ฒญ์„ ํ•ฉ๋‹ˆ๋‹ค.

  • ๋นŒ๋งํ‚ค ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ: ๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ๋Š” ์š”์ฒญ๋ฐ›์€ ๋นŒ๋งํ‚ค์˜ ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, ๋นŒ๋งํ‚ค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋ฐœ๊ธ‰๋œ ๊ฒƒ์ธ์ง€, ๋งŒ๋ฃŒ๋˜์ง€ ์•Š์•˜๋Š”์ง€ ๋“ฑ์˜ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  • ์‹ค์ œ ๊ฒฐ์ œ ์ฒ˜๋ฆฌ: ๋นŒ๋งํ‚ค์˜ ์œ ํšจ์„ฑ์ด ํ™•์ธ๋˜๋ฉด, ๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ๋Š” ๋นŒ๋งํ‚ค์™€ ์—ฐ๋™๋œ ๊ณ ๊ฐ์˜ ์‹ค์ œ ๊ฒฐ์ œ ์ˆ˜๋‹จ(์˜ˆ: ์‹ ์šฉ์นด๋“œ)๋ฅผ ํ†ตํ•ด ์ œํœด์‚ฌ๋กœ ๊ฒฐ์ œ ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

  • ์Šน์ธ ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜: ๊ฒฐ์ œ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๋ฉด, ๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ๋Š” ๊ฐ€๋งน์ ์—๊ฒŒ ์Šน์ธ ๊ฒฐ๊ณผ๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฐ€๋งน์  ์ฒ˜๋ฆฌ: ๊ฐ€๋งน์ ์€ ๋‚˜์ด์ŠคํŽ˜์ด๋จผ์ธ ๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์Šน์ธ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•„์š”ํ•œ ๋‚ด๋ถ€ ์ฒ˜๋ฆฌ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

sequenceDiagram
	actor Customer as ๊ณ ๊ฐ
	participant Scheduler as ์Šค์ผ€์ค„๋Ÿฌ
	participant Merchant as ๊ฐ€๋งน์  ์„œ๋ฒ„
	participant DB as ๊ฐ€๋งน์  DB
	participant NICEPAY as NICEPAY ์„œ๋ฒ„
	participant CardCo as ์นด๋“œ์‚ฌ

    Scheduler->>Merchant: 1. ๊ฒฐ์ œ์ผ ๋„๋ž˜ ํŠธ๋ฆฌ๊ฑฐ<br/>(๋งค์›” 1์ผ, ๋งค์ฃผ ์›”์š”์ผ ๋“ฑ)
    Merchant->>DB: 2. ๊ฒฐ์ œ ๋Œ€์ƒ ์กฐํšŒ<br/>(BID, ๊ณ ๊ฐ์ •๋ณด, ๊ฒฐ์ œ๊ธˆ์•ก)
    DB-->>Merchant: 3. ๊ฒฐ์ œ ๋Œ€์ƒ ๋ชฉ๋ก

    loop ๊ฐ ๊ณ ๊ฐ๋ณ„
        Merchant->>NICEPAY: 4. ๋นŒํ‚ค ์Šน์ธ ์š”์ฒญ<br/>POST /v1/subscribe/{bid}/payments<br/>{orderId, amount, goodsName}

        NICEPAY->>CardCo: 5. ๊ฒฐ์ œ ์Šน์ธ ์š”์ฒญ
        CardCo-->>NICEPAY: 6. ์Šน์ธ ๊ฒฐ๊ณผ

        alt ์Šน์ธ ์„ฑ๊ณต
            NICEPAY-->>Merchant: 7. ์Šน์ธ ์„ฑ๊ณต<br/>{tid, status:paid, approveNo}
            Merchant->>DB: 8. ๊ฒฐ์ œ ๋‚ด์—ญ ์ €์žฅ<br/>(TID, ์Šน์ธ๋ฒˆํ˜ธ, ๊ฒฐ์ œ์ผ์‹œ)
            Merchant->>Customer: 9. ๊ฒฐ์ œ ์™„๋ฃŒ ์•Œ๋ฆผ<br/>(์ด๋ฉ”์ผ/SMS)
        else ์Šน์ธ ์‹คํŒจ
            NICEPAY-->>Merchant: 7. ์Šน์ธ ์‹คํŒจ<br/>{resultCode, resultMsg}
            Merchant->>DB: 8. ์‹คํŒจ ๋‚ด์—ญ ๊ธฐ๋ก
            Merchant->>Customer: 9. ๊ฒฐ์ œ ์‹คํŒจ ์•ˆ๋‚ด<br/>๊ฒฐ์ œ์ˆ˜๋‹จ ํ™•์ธ ์š”์ฒญ
        end
    end
Loading

๋นŒํ‚ค ์‚ญ์ œ (๊ตฌ๋… ํ•ด์ง€)

๋นŒ๋งํ‚ค ์‚ญ์ œ๋Š” ๊ณ ๊ฐ์˜ ๊ฒฐ์ œ ์ •๋ณด๋ฅผ ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ๋‚˜ ๊ณ ๊ฐ์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ํ•ด๋‹น ๋นŒ๋งํ‚ค๋ฅผ ํ๊ธฐํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.
๋นŒ๋งํ‚ค ์‚ญ์ œ๋Š” ์ฃผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ƒํ™ฉ์—์„œ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

  • ๊ณ ๊ฐ์˜ ์š”์ฒญ: ๊ณ ๊ฐ์ด ์ •๊ธฐ๊ฒฐ์ œ ์„œ๋น„์Šค์˜ ํ•ด์ง€๋‚˜ ๊ฐ€๋งน์ ์—์„œ์˜ ์„œ๋น„์Šค ์ด์šฉ ์ข…๋ฃŒ๋ฅผ ์›ํ•  ๋•Œ ๋นŒ๋งํ‚ค๋ฅผ ์‚ญ์ œํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ฐ€๋งน์ ์˜ ์ •์ฑ…: ์ผ์ • ๊ธฐ๊ฐ„๋™์•ˆ ๋นŒ๋งํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ณ ๊ฐ, ๋˜๋Š” ํŠน์ • ์กฐ๊ฑด์— ๋”ฐ๋ผ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๊ฒŒ ๋œ ๊ณ ๊ฐ์˜ ๋นŒ๋งํ‚ค๋ฅผ ์ •๊ธฐ์ ์œผ๋กœ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

sequenceDiagram
    actor Customer as ๊ณ ๊ฐ
    participant Merchant as ๊ฐ€๋งน์  ์„œ๋ฒ„
    participant DB as ๊ฐ€๋งน์  DB
    participant NICEPAY as NICEPAY ์„œ๋ฒ„

    Customer->>Merchant: 1. ๊ตฌ๋… ํ•ด์ง€ ์š”์ฒญ
    Merchant->>DB: 2. ๊ณ ๊ฐ์˜ BID ์กฐํšŒ
    DB-->>Merchant: 3. BID ์ •๋ณด

    Merchant->>NICEPAY: 4. ๋นŒํ‚ค ์‚ญ์ œ ์š”์ฒญ<br/>POST /v1/subscribe/{bid}/expire<br/>{orderId}

    NICEPAY->>NICEPAY: 5. BID ๋งŒ๋ฃŒ ์ฒ˜๋ฆฌ
    NICEPAY-->>Merchant: 6. ์‚ญ์ œ ์™„๋ฃŒ<br/>{resultCode:0000, bid}

    Merchant->>DB: 7. BID ์‚ญ์ œ/๋งŒ๋ฃŒ ์ƒํƒœ ์—…๋ฐ์ดํŠธ
    Merchant->>Customer: 8. ๊ตฌ๋… ํ•ด์ง€ ์™„๋ฃŒ ์•ˆ๋‚ด

    Note over NICEPAY: โš ๏ธ ์‚ญ์ œ๋œ BID๋กœ๋Š”<br/>๋” ์ด์ƒ ์Šน์ธ ๋ถˆ๊ฐ€
Loading
โš ๏ธ **GitHub.com Fallback** โš ๏ธ