๐ ํด๋น ๊ฒ์๋ฌผ์ ์ ๊ฒ์๋ฌผ๊ณผ ์ด์ด์ง๋ ๋ด์ฉ์ ๋๋ค.
์ง๊ธ๊น์ง ๊ฒฐ์ ํ๋ ๋ก์ง์ ๋ชจ๋ ์์ฑํ์๋๋ฐ ์ด๋ฒ ํฌ์คํ ์์๋ ๊ฒฐ์ ๋ฅผ ์ทจ์ํ๋ ๊ฒ์ ๊ตฌํํ๋ ค๊ณ ํ๋ค.
๊ฒฐ์ ๋ฅผ ์ทจ์ํ๋ ค๋ฉด ๊ฒฐ์ ์น์ธ ์์ ํ ์คํ์ด๋จผ์ธ ์์ ๋ฐ๊ธ๋ฐ์ paymentKey
์ ์ทจ์ ์ด์ ์ธ cancelReason
์ด ๊ผญ ํ์ํ๋ค.
๋, ์ฑ๊ณต/์คํจ ์์ ๊ฐ์ด ํค๋์ ์ํฌ๋ฆฟ ํค๋ฅผ ์ธ์ฝ๋ฉํ์ฌ ๋ณด๋ด์ผํ๋ค.
tossPaymentCanclePoint
โ ์ทจ์ ์์ฒญ์ ๋ฐ์ Controller
โ
โ ํ์ํ ์ ๋ณด(๊ณ ๊ฐ ์ ๋ณด/paymentKey/์ทจ์ ์ด์ )๋ฅผ ๋ฐ์ Service ๋ก์ง์์ ๊ฒ์ฆ์ ์๋ฃํ ํ ๊ฒฐ์ ์ํ๋ฅผ ์ทจ์๋ก ๋ฐ๊ฟ์ค
cancelPaymentPoint()
โ Controller์์ ์ ๋ฌ๋ฐ์ ๊ฐ๋ค์ ์ด์ฉํ์ฌ ๊ฒ์ฆ ๋ก์ง๋ค์ ์ฒ๋ฆฌํ๋ ๋ฉ์๋
โ
โ ๊ฒฐ์ ์ทจ์ ์์ ์์ฌ ํฌ์ธํธ๊ฐ ์ทจ์ํ๋ ค๋ ๊ธ์ก๋งํผ ์๋ค๋ฉด ๋ถ๊ฐ๋ฅ
( ์ด ํ๋ก์ ํธ๋ ๊ฒฐ์ = ํฌ์ธํธ ์ถฉ์
์ )
โ
tossPaymentCancel()
โ ๏ธ โ ํ ์คํ์ด๋จผ์ธ ์ ์ต์ข ์ทจ์ ์น์ธ ์์ฒญ์ ๋ณด๋ด๊ธฐ ์ํด ํ์ํ ์ ๋ณด๋ค์ ๋ด์ POST๋ก ๋ณด๋ด๋ ๋ถ๋ถ
โ net.minidev.json.JSONObject
๋ฅผ ์ฌ์ฉํ์ฌ ํค/๊ฐ ์์ ๋ฌธ์์ด์ด ์๋ ์ค๋ธ์ ํธ๋ก ์ซ์ ๊ทธ๋๋ก ๋ณด๋ผ ์ ์์
โ postForObject()
์์ ํ์ํ ์ ๋ณด์ธ < ์์ฒญ URL + ์์ฒญ ๊ฐ์ฒด + ์๋ต Map.class >๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋จ
โ ์์ฒญ URL
โ"https://api.tosspayments.com/v1/payments/" + paymentKey + "/cancle"
getHeaders()
( โฌ๏ธ ๊ฒฐ์ ์ฑ๊ณต / ์คํจ ์์ ์ฌ์ฉํ getHeaders()
์ ๋์ผํ ๋ฉ์๋์ )
โ ํค๋์๋ ํ ์ค์์ ์ ๊ณตํด์ค ์ํฌ๋ฆฟ ํค๋ฅผ Basic Authorization ๋ฐฉ์์ผ๋ก base64๋ฅผ ์ด์ฉํ์ฌ ์ธ์ฝ๋ฉํ์ฌ ๊ผญ ๋ณด๋ด์ผํจ
( โ ๊ผญ! {์ํฌ๋ฆฟํค + ":"} ์กฐํฉ์ผ๋ก ์ธ์ฝ๋ฉํ๊ธฐ )
๐ฉ ์ฌ๊ธฐ๊น์ง ๊ฒฐ์ ์ทจ์ ๋ก์ง์ ๊ตฌํํ๊ณ ํ ์คํธ๋ฅผ ํด๋ณด์๋๋ฐ,
์๋์ ๊ฐ์ด CancleYN
๊ฐ true๋ก ๋ฐ๋๊ณ ์ทจ์ ์ด์ ๊ฐ ์ ์ฅ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
ํ ์คํธ ์ฌ์ง ๋ฃ์ ์์
โ ๊ฒฐ์ ๊ธ์ก ์ค ์ผ๋ถ๋ง ์ทจ์ํ๋ ค๋ฉด
cancelAmount
์ ์ทจ์ํ ๊ธ์ก์ ์ถ๊ฐํด์ ๊ฒฐ์ ์ทจ์ API๋ฅผ ์์ฒญํ๋ฉด ๋๋ค๊ณ ํ๋ค.
ํ ์คํ์ด๋จผ์ธ ์ฐธ๊ณ
getChargingHistory
โ ๊ฒฐ์ ๋ด์ญ ์กฐํ ์์ฒญ์ ๋ฐ์ Controller
โ
โ ํด๋น ๊ณ ๊ฐ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ Service ๋ก์ง์ ํ๊ณ Repository์์ ์๋ง์ ์ ๋ณด๋ค์ ์ฐพ์์ ๋ฐํ
์ด ํ๋ก์ ํธ์ ๊ฒฝ์ฐ,
๋ฐ์ดํฐ๋ฅผ ์ฌ๋ผ์ด์ค ํ์์ผ๋ก ๋ณด์ฌ์ฃผ๊ธฐ ์ํดSliceResponseDto
๋ฅผ ์ฌ์ฉํ์๋ค.
SliceResponseDto<T>
SliceInfo
ChargingHistoryDto
โ ๊ฒฐ์ ๋ด์ญ์ ๋ฐํํ๊ธฐ ์ํ ์๋ต ๋ฐ์ดํฐ
PaymentMapper
โ List ํํ์ ๊ฒฐ์ ๋ด์ญ์ stream์ ์ฌ์ฉํ์ฌ dto(์๋ต ๊ฐ์ฒด)์ ๊ฐ ์์๋ค์ ํด๋น ๊ฐ์ ๋ฃ์ด์ค
findAllChargingHistories
โ ๊ณ ๊ฐ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ ํด๋น ๊ณ ๊ฐ์ด ๋ง๋์ง ๊ฒ์ฆ ํ์ paymentRepository
์์ ํด๋น ๊ณ ๊ฐ์ ๊ฒฐ์ ๋ด์ญ์ ๋ชจ๋ ๊ฐ์ ธ์ ๋ฐํํ๋ ๋ถ๋ถ
โ paymentId
๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ์ฌ ๋ฐํ
๐ฉ ์ฌ๊ธฐ๊น์ง ํ๊ณ postman์ผ๋ก ๊ฒฐ์ ๋ด์ญ์ ์กฐํํด๋ณด๋ฉด,
์๋์ ๊ฐ์ด ์ ๋์ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ค !
์ฐ๋ฆฌ ํ๋ก์ ํธ์์๋ ์ถฉ์ ๋ด์ญ์ด ์ ๋ํ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ฌ๊ธฐ๊น์ง ํ๋ก์ ํธ์์ ๊ตฌํํ ํ ์คํ์ด๋จผ์ธ ์ฐ๋ ๊ด๋ จ ํฌ์คํ ์ด์์ต๋๋ค.
์ ๋ณด ์ ๋ฆฌ, ์ฝ๋, ๊ธ ์์จ ๋ญํ๋ ๋น ์ง๊ฒ ์๋ค์;; ๋๋ฌด ๋์ ๋ง์ด ๋์์ต๋๋ค ใ ใ ใ ใ ใ ใ