maro79
maro793mo ago

결제 완료 후 성고처리시 사용자 창 닫았을경우

https://api.tosspayments.com/v1/payments/confirm toss 결제 완료 후 성공 실패 처리를 하고 있습니다. 결제 호출시 success.php 를 만들어서 결제 성공에 따른 현 시스템에 저장을 하는데 문제는 사용자들이 그 페이지를 닫거나 새로고침을 할 경우 toss 결제는 됐으나 사용자의 구매 내역을 시스템 db에 저장하는 부분이 안되고 있는데 이럴경우 어떤식으로 해결 할수 있을까요?
9 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
today.lastday
today.lastday3mo ago
웹훅을 받아서 처리할 수 있습니다.
today.lastday
today.lastday3mo ago
웹훅을 받아서 최종 결제 완료 상태를 관리하시면 사용자 액션과 별개로 토스페이먼츠 -> 가맹점 서버로 결제상태 변화를 전달해드리고 있습니다. https://docs.tosspayments.com/reference/using-api/webhook-events#payment_status_changed
웹훅 이벤트 | 토스페이먼츠 개발자센터
토스페이먼츠에서 제공하는 웹훅 이벤트 목록입니다.
Kimoon Lee
Kimoon Lee3mo ago
결제 호출시 success.php 를 만들어서 결제 성공에 따른 현 시스템에 저장을 하는데 문제는 사용자들이 그 페이지를 닫거나 새로고침을 할 경우
라고 하셨는데 success.php 에서 승인 API 호출하시는거 아닌가요?
maro79
maro79OP3mo ago
맞습니다. 결제 창 호출시 successUrl 페이지 이동 후 sucess.php에서 confirmPayment 호출 후 성공시 결제 내역 저장 및 완료 페이지 이동 하고 있습니다. 자동결제상태에서도 가능한가요?
Kimoon Lee
Kimoon Lee3mo ago
자동결제는 어차피 빌링키 받으신 이후에 결제는 API 로만 진행합니다. success.php 에서 승인을 하면 결제가 되고 DB 저장을 할때 페이지를 닫더라도 문제가 없습니다. 새로 고침을 하게 되면 다시 승인 요청을 하겠지만 그건 방어로직을 넣어주시면 되구요. payment 로 조회를 해서 결제성공이나 실패가 아닌경우만 승인 요청을 하신다거나 하는 방법을 쓰셔야 합니다.
maro79
maro79OP3mo ago
현재 사용중인 파일 첨부해볼게요. git에서 참고자료 받아서 작업을 했는데요. success.php 결제 승인후 edu_pay_module_toss 호출하고 있습니다. confirm에서 잘못된 호출을 하고 있는건가요?
today.lastday
today.lastday3mo ago
샘플 파일은 말그대로 결제 흐름을 보여주는 것이기 때문에 참고용 입니다. 결제는 /confirm API를 호출시켜야 완료가 되는데, confirm() 함수에서 성공을 받으면 구매내역을 업데이트 시키는 방향으로 하셔도 되고, 해당 함수 내부에 구매내역 업데이트 하도록 수정하셔도 됩니다.
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.

Did you find this page helpful?