리믹스 프레임워크를 사용하여서 결제 , 환불을 구현하고자 합니다.
리믹스 프레임워크를 사용해서 결제 환불을 구현하고자 하는데 db는 prism studio를 사용할 것 같습니다.
결제 후 결제 정보를 저장해야 하는데 db 테이블을 결제 요청했을 때 들어가는 정보들만 저장을 해도 상관 없을까요?
15 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
결제 완료 후 응답값도 저장해 주셔야 합니다.
특히 paymentKey 값을 저장해 주셔야 취소와 결제 상태 조회등을 원할하게 하실 수 있습니다.
console.log(JSON.stringify(result));가 결제 후 결과값을 보여주는데 아래와 같이 보여주고 있습니다. 이 값도 저장해야하는 것이 맞을까요 ?
그리고 잘 이해가 되지 않는 부분이 있습니다.
결제 조회나 취소 같은 부분은 sdk가 아니라 따로 화면 구성을 해야하는걸까요 ?
아니면 결제 연동할 때 사용했던 sdk를 사용하면 되는걸까요 ?
취소나 환불 등을 구현할 때는 리액트 js 로는 구현하기 어려운 걸까요 ?
네 결제 승인, 취소, 환불등은 서버2서버 통신으로 이루어 지기 때문에 FE 로만 구현하시면 안됩니다.
결제 조회나 취소 같은 부분은 sdk가 아니라 따로 화면 구성을 해야하는걸까요 ?네 맞습니다. 이건 가맹점별 로 결제 성공 페이지나 환불 요청 페이지등 UI 를 직접 구현해서 정보를 보여주셔야 합니다. 저희가 별도로 UI 를 제공하지 않습니다.
위에서는 result를 전부 다 저장하면 될까요?
그리고 현재 코드가 결제 위젯을 불러오는 파일이 따로 있고 결제 성공 파일이 따로 존재하고 있습니다.
아래 이미지는 결제 성공 페이지 인데 여기서 주문자 이름을 불러올 수 있는 방법이 따로 있을까요

결제 위젯을 불러오는 코드는 아래 이미지 입니다.

주문자 이름은 넘겨주는 결제수단의 경우만 응답값에 포함됩니다.
디비에는 result 값을 전부 다 저장하면 되는걸까요?
필요하다고 생각하시는 부분만 저장하시면 됩니다.
paymentkey 과 mid 는 무조건 저장을 하셔야 하고, 나머지는 고객에게 어떤 정보를 보여주시는지에 따라 저장여부를 선택하시면 될것 같아요.
{
"mId": "tvivarepublica",
"paymentKey": "OR1ZwdkQD5GePWvyJnrKaR7lZy9o5a3gLzN97EoqYA60XKx4",
"orderId": "puvvfsvjc",
"orderName": "코인 구매",
"approvedAt": "2023-11-08T14:06:52+09:00",
"totalAmount": 200,
"method": "간편결제",
}
위와 같은 값들만 db에 저장을 하고자 합니다.
prism studio의 PostgreSQL문법으로 작성한다고 했을 때 아래처럼 작성하면 될까요?
번거롭게 자주 여쭤봐서 죄송합니다
네, 크게 이슈 없어보입니다.
감사합니다 ㅠㅠ
한가지 더 궁금한 점이 생겼는데,
결제 및 거래 조회를 이용하여서 계정마다 본인이 구매한 내역을 보여주게 하기 위해서는 결제가 승인 된 후 기존에 존재하던 유저 db에 구매한 내역을 넣어야 하는걸까요? 아니면 어떤식으로 작동을 해야하는걸까요 ?
// schema.prisma
model Payment {
id Int @id @default(autoincrement())
mId String
paymentKey String
orderId String
orderName String
approvedAt DateTime
totalAmount Int
method String
}
위 db 모델에 결제 내용을 저장하는데 어떤 계정이 구매했는지 체크를 할 수 있는 방법이 없는것 같아서요
귀사 DB 구현하는 부분은 고민해보시고 결정해주시면 될 것 같습니다. 저희쪽 응답 레퍼런스는 아래 참고해주세요.
https://docs.tosspayments.com/referenc
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.