비트백
비트백13mo ago

가상계좌 웹훅관련

결제 승인 API의 응답으로 돌아온 secret값이 null인데 가상계좌 웹훅 요청이 정상적인 요청인지 어떻게 검정하죠? 혹시 테스트환경이라서 secret값이 null인건가요?
No description
18 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
Ayaan이안
Ayaan이안13mo ago
해당 응답을 받은 주문번호 공유해 주세요
비트백
비트백OP13mo ago
2402202217455913
이실장
이실장13mo ago
{"mId":"tvivarepublica","lastTransactionKey":"26DEE992917E047DBD27F70B3A885812","paymentKey":"tviva20240220221825dcEN7","orderId":"2402202217455913","orderName":"[비트백] DIY 보석십자수 주문제작 LIMITED","taxExemptionAmount":0,"status":"WAITING_FOR_DEPOSIT","requestedAt":"2024-02-20T22:18:25+09:00","approvedAt":null,"useEscrow":false,"cultureExpense":false,"card":null,"virtualAccount":{"accountNumber":"X6516299618311","accountType":"일반","bankCode":"20","customerName":"비트백","dueDate":"2024-02-27T22:18:23+09:00","expired":false,"settlementStatus":"INCOMPLETED","refundStatus":"NONE","refundReceiveAccount":null},"transfer":null,"mobilePhone":null,"giftCertificate":null,"cashReceipt":null,"cashReceipts":null,"discount":null,"cancels":null,"secret":"ps_0RnYX2w532MNDOdY56OP8NeyqApQ","type":"NORMAL","easyPay":null,"country":"KR","failure":null,"isPartialCancelable":true,"receipt":{"url":"https://pgweb.tosspayments.com:9091/MpFlowCtrl?eventDiv1=search&eventDiv2=getCasReceiptList&trxid=tviva20240220221825dcEN7&SYSTEM=NEW"},"checkout":{"url":"https://api.tosspayments.com/v1/payments/tviva20240220221825dcEN7/checkout"},"currency":"KRW","totalAmount":128000,"balanceAmount":128000,"suppliedAmount":116364,"vat":11636,"taxFreeAmount":0,"method":"가상계좌","version":"2022-11-16"}
{"mId":"tvivarepublica","lastTransactionKey":"26DEE992917E047DBD27F70B3A885812","paymentKey":"tviva20240220221825dcEN7","orderId":"2402202217455913","orderName":"[비트백] DIY 보석십자수 주문제작 LIMITED","taxExemptionAmount":0,"status":"WAITING_FOR_DEPOSIT","requestedAt":"2024-02-20T22:18:25+09:00","approvedAt":null,"useEscrow":false,"cultureExpense":false,"card":null,"virtualAccount":{"accountNumber":"X6516299618311","accountType":"일반","bankCode":"20","customerName":"비트백","dueDate":"2024-02-27T22:18:23+09:00","expired":false,"settlementStatus":"INCOMPLETED","refundStatus":"NONE","refundReceiveAccount":null},"transfer":null,"mobilePhone":null,"giftCertificate":null,"cashReceipt":null,"cashReceipts":null,"discount":null,"cancels":null,"secret":"ps_0RnYX2w532MNDOdY56OP8NeyqApQ","type":"NORMAL","easyPay":null,"country":"KR","failure":null,"isPartialCancelable":true,"receipt":{"url":"https://pgweb.tosspayments.com:9091/MpFlowCtrl?eventDiv1=search&eventDiv2=getCasReceiptList&trxid=tviva20240220221825dcEN7&SYSTEM=NEW"},"checkout":{"url":"https://api.tosspayments.com/v1/payments/tviva20240220221825dcEN7/checkout"},"currency":"KRW","totalAmount":128000,"balanceAmount":128000,"suppliedAmount":116364,"vat":11636,"taxFreeAmount":0,"method":"가상계좌","version":"2022-11-16"}
secret값은 잘 내려드렸네요
비트백
비트백OP13mo ago
제가 받은 객체값에는 secret값이 왜 null일가요?
No description
비트백
비트백OP13mo ago
문제점 발견했습니다.제가 https://api.tosspayments.com/v1/payments/confirm 이 아니라 https://api.tosspayments.com/v1/payments 로 response.data객체를 받았네요... 가상계좌 웹훅 요청이 정상적인 요청인지 검증하기 위해 결제승인API로 돌려받은secret키값은 별도 저장해놓아야 하나요 아니면 웹훅로직에서 주문번호로 즉시 secret 받아서 검증할수 있는 방법이 따로 있나요?
Ayaan이안
Ayaan이안13mo ago
보통 KV데이터베이스(redis 등)에 저장해 두고 검증을 진행하는 가맹점들이 많습니다. SQL에 저장할 필요까지는 없습니다.
비트백
비트백OP13mo ago
앞전에 가상계좌 웹훅관련하여 "은행의 이슈로 2분안에 입금 ,취소, 입금 액션이 발생될 경우 2분 지연통보를 세팅하시면 위 3가지 액션에 대한 웹훅이 모두 전송되지 않고 최종 액션에 대해서만 웹훅이 전송이 됩니다."라는 답변을 받았습니다.2분지연통보로 세팅할 경우 돌아오는 status 상태값은 DONE 이나 WAITING_FOR_DEPOSIT 둘중 하나인가요?아니면 다른 상태값도 있나요?은행문제일 경우 결제 고객에게 다시 입금하도록 안내해야 하는데 2분지연통보로 세팅할 경우 WAITING_FOR_DEPOSIT 상태값이 정상적으로 들어오는지 궁급합니다.
Ayaan이안
Ayaan이안13mo ago
단순히 토스페이먼츠로 통보가 오고 2분 뒤에 다시 체크한 상태값으로 반환해 드린다는 의미이기 때문에 일반적인 세팅과 동일하게 응답됩니다.
김차장
김차장13mo ago
https://docs.tosspayments.com/guides/learn/virtual-account-webhook 하늘색칠한 부분이 웹훅이 발송되는 로직입니다.
가상계좌 웹훅 연동하기 | 토스페이먼츠 개발자센터
가상계좌를 연동한 뒤 웹훅으로 입금 알림을 받을 수 있는 방법을 알아봅니다.
No description
김차장
김차장13mo ago
DONE 으로 갔을때 웹훅이 발송될것이고 여기에 자세한 확률까지 표기가 안되어있지만 굉장히 드믄 확률로(2분지연까지 걸려있는데도!) 발생한다면 WAITING_FOR_DEPOSIT 도 받으실거에요
비트백
비트백OP13mo ago
제가 이렇게 묻는 이유는 최초 가상계좌를 발급받았을때 초기상태값은 WAITING_FOR_DEPOSIT인데 아주 드문 확율로 은행문제로 DONE으로 변경됬다가 또다시 WAITING_FOR_DEPOSIT로 변경됬을 경우 toss API에서는 이를 상태가 변한것으로 판단하여 웹훅이 정상적으로 전송되는지 궁금해서입니다.
김차장
김차장13mo ago
네 전송드린다고 답변드린것 입니다 위의 Flow 에서 화살표 방향으로 흐름에 따라 하늘색에 도달하면 발송되는 것입니다. 확률도 궁금하실텐데요 2분 지연응답이 안걸려있는 경우 제 경험상 2만건 정도 결제시 1~2건 발생합니다. 2분 지연응답이 걸려있으면 이것보다 낮은데 측정이 어렵습니다 확률 관련 내용은 경험적 데이터라서 참고만 해주셔요
비트백
비트백OP13mo ago
2분 지연통보를 세팅할 경우 모든 결제상태의 변경을 2분뒤에 보낸다는 거죠?이럴태면 구매자가 주동적으로 취소해도 저희는 2분뒤에 그 상태를 받는것에 동의한다는 거죠?
김차장
김차장13mo ago
2분지연통보는 DONE 상태에만 해당됩니다. 다른 상태에 도달하면 바로 발송되구요 구매자가 주동적으로 취소 이 내용이 약간 애매한데 가맹점의 컨펌없이는 취소가 어렵습니다. 은행에서 오프라인으로 창구접수하면서 사고신고를 해야 취소가 가능한걸로 알고있어요
비트백
비트백OP13mo ago
아,네,이제 결국 정확히 이해했습니다.답변 대한히 감사합니다!
김차장
김차장13mo ago
넵 ㅎㅎ 좋은 서비스 만드시길 바랍니다
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.

Did you find this page helpful?