퇴근하자
퇴근하자2y ago

결제 오류 문의

상점 아이디 : hourpluvwu order_id : BP_105010_319287, BP_105011_319287, PC 브라우저에서 결제창을 띄우는 방식으로 사용하고 있습니다. 에러 예상 위치 tossPayments.requestPayment(type, { amount: e.data.data.price, orderId: e.data.data.ordr_idxx, orderName: e.data.data.goods_name, customerEmail: e.data.data.buyr_mail, customerName: e.data.data.buyr_name, validHours: 720 }).then(function (data) { const paymentKey = data.paymentKey // 해당 부분에서 오류가 발생하는것 같습니다. 에러 Cannot read properties of undefined ( reading 'paymentKey' )
32 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
이실장
이실장2y ago
저희와 별개로 선언하신 paymentKey변수를 못읽는 부분이 있는 것 아닌가요?
Kimoon Lee
Kimoon Lee2y ago
결제창은 표시가 되시나요?
퇴근하자
퇴근하자OP2y ago
결제창 관련해서는 고객 문의 후 답변 드리겠습니다. 현재 상용에서 간헐적으로 발생하고 있는 부분입니다.
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
퇴근하자
퇴근하자OP2y ago
고객님과 통화해보니 결제창이 뜨기전에 오류가 발생하고 있다고 합니다.
이실장
이실장2y ago
그럼 결제창 띄울 때 paymentKey라는 값을 전달하고 계신지 확인바랍니다. 그건 결제요청이 아니라 결제승인 때 사용되는 값이라서요
퇴근하자
퇴근하자OP2y ago
tossPayments.requestPayment(type, { amount: e.data.data.price, orderId: e.data.data.ordr_idxx, orderName: e.data.data.goods_name, customerEmail: e.data.data.buyr_mail, customerName: e.data.data.buyr_name, validHours: 720 }).then(function (data) { console.log(data) const paymentKey = data.paymentKey 결제창 호출 후에 결제창에서 완료되면 제가 받는 값 아닌가요?
이실장
이실장2y ago
네 맞습니다. 현재 정확히 어떤 상황에서 발생하는지 알기가 어렵네요. Cannot read properties of undefined ( reading 'paymentKey' ) 아래 콘솔에러로 확인해주시면 될 것 같아요. 위 에러는 저희가 내려드리는 에러가 아니라 js 문법에러입니다.
Ayaan이안
Ayaan이안2y ago
paymentKey가 undefined인거 같은데... 혹시 저희가 테스트 해볼 수 있는 URL이 있을까요?
퇴근하자
퇴근하자OP2y ago
저희도 고객분이 오류발생했을 경우 고객분 정보로 로그인해서 동일하게 시도를 하면 정상작동하고 있어서 100% 재현이 안되는 오류라서 답답한 심정입니다.
이실장
이실장2y ago
우선 저희가 직접 테스트 불가하고, 올라온 로그도 없어 안내 드리기가 어려운 상황입니다. 특정기기에서만 발생하면 더욱 확인이 어려운 점 양해바랍니다.
퇴근하자
퇴근하자OP2y ago
tossPayments.requestPayment 호출 후에 결제창이 나오지 않고 바로 response 되는 경우를 예상이 안되는건가요?
이실장
이실장2y ago
제가 예상되는 문제는 위에 말씀드렸습니다.
Ayaan이안
Ayaan이안2y ago
그런 경우는 존재하지 않아야 정상입니다.
이실장
이실장2y ago
requestPayment에 paymentKey파라미터가 포함되는지 확인바랍니다.
퇴근하자
퇴근하자OP2y ago
tossPayments.requestPayment(type, { amount: e.data.data.price, orderId: e.data.data.ordr_idxx, orderName: e.data.data.goods_name, customerEmail: e.data.data.buyr_mail, customerName: e.data.data.buyr_name, validHours: 720 }).then(function (data) { paymentKey 항목 자체가 없습니다.
이실장
이실장2y ago
그럼 문의자님께서 말씀해주신 것 처럼 정상 동작하는게 맞습니다. 보내주신 내용만으로는 저희도 위 내용만 유추할 수 있습니다. 에러 동영상, console/network tab error 등 확인을 해주시면 추가 확인이 가능합니다. 저희 로그상으로는 결제요청이 진행되다가 끊겼습니다. (Cannot read properties of undefined ( reading 'paymentKey' )) 는 저희가 내리는 에러가 아니라 로그에 남지 않음)
퇴근하자
퇴근하자OP2y ago
}).then(function (data) { console.log(data) const paymentKey = data.paymentKey 결제창이 뜨지도 않고 response 를 받아서 paymentKey 가 없어서 에러가 발생한 것으로 보고 있습니다. 저희도 100% 재현이 가능하거나 toss sdk 에서 에러를 주면 좋지만 에러도 없이 저런 현상이 발생해서 문의하는 겁니다.
이실장
이실장2y ago
우선 한번 더 로그 확인 후 전달드리겠습니다. @iam.ayaan 위 가맹점은 로그 확인이 필요하며, 원 문의에 주문번호가 있습니다. 저희가 나머지 확인해보겠습니다.
Kimoon Lee
Kimoon Lee2y ago
@proinworks 님 지금 재현이 되지는 않는 거죠?
퇴근하자
퇴근하자OP2y ago
간헐적으로 발생하고 있으며, 오늘 주문번호 BP_106442_322589 으로 한번 발생했습니다.
이실장
이실장2y ago
@proinworks 결제창이 안났다는건 고객이 문의주신거죠? 말씀하신 것처럼 재현이 안되어 직접 확인하시진 못하셨고요?
Kimoon Lee
Kimoon Lee2y ago
BP_106442_322589 이 주문번호는 아예 로그 확인이 안되는데 로그 다시한번 확인부탁드립니다.
퇴근하자
퇴근하자OP2y ago
네 재현이 되지 않고 있습니다. BP_106442_322589 주문번호 로그 자체가 없다는건. 결제창 띄우는 과정에서 toss 서버 통신도 못하고 죽은거 아닐까요? 문제는 결제창을 띄우지도 않고 response 가 와서 전 paymentKey 를 읽어오다 오류가 발생하는 것으로 보고 있습니다. 고객님이 결제 오류가 난다 하셔서 상황까지 문의한 결과 결제창이 뜨지 않고 오류만 발생한다 하셨습니다. paymentKey 읽어오는 부분은 한군데 밖에 없으며, 결제창 결과값 받는 부분입니다.
Kimoon Lee
Kimoon Lee2y ago
통신도 못했다면 고객 PC 의 네트워크 문제일수도 있을것 같습니다.
이실장
이실장2y ago
특정고객에게 발생하는 문제인가요? 아니면 불특정한 인원에게 발생하나요?
퇴근하자
퇴근하자OP2y ago
불특정 인원에게 발생하고 있습니다 VIRTUAL_ACCOUNT(가상계좌) 발급할때만 발생하는것으로 보입니다.
Kimoon Lee
Kimoon Lee2y ago
에러가 발생하시는 분들의브라우저에서 콘솔 에러나 network 에러를 확인가능하실까요? 그리고 tossPayments.requestPayment(type, { amount: e.data.data.price, orderId: e.data.data.ordr_idxx, orderName: e.data.data.goods_name, customerEmail: e.data.data.buyr_mail, customerName: e.data.data.buyr_name, validHours: 720 }).then(function (data) { console.log(data) const paymentKey = data.paymentKey 여기에서 requestPayment 의 catch 로 넘어오는것은 없는지도 확인 부탁드립니다. requestPayment가 실패했다면 catch 로 내려와야 하는게 맞아서요
퇴근하자
퇴근하자OP2y ago
제가 보내드린 에러창에 tossPayments.requestPayment 의 catch 부분에서 발생한 에러입니다. 제가 의심하는 부분은 카드 결제쪽에서는 해당 에러가 발생하지 않고 가상계좌 발급할때만 발생하고, 2일에 한명꼴로 발생하고 있는 부분이라서요. 그럼 가상계좌 발급 요청부분에서 화면을 띄우지도 않고 requestPayment.then 으로 빈값으로 내려주는 에러가 있다고 생각할수 밖에 없습니다. 그래서 requestPayment.catch 부분에서 paymentKey 를 읽어 오지 못해서 해당 에러를 띄워주고 있고요. 에러 화면도 재현이 되지 않아서 고객분께 받은 상태입니다.
Ayaan이안
Ayaan이안2y ago
catch로 떨어진게 Cannot read properties of undefined ( reading 'paymentKey' ) 인건가요? Promise의 구조 상 then에 들어있는 부분에서 오류가 나더라도 catch로 떨어집니다. catch로 떨어질 때, console에 오류 외에 다른 값이 찍히는건 없는지 확인부탁드립니다.
이실장
이실장2y ago
귀사 플랫폼 주문서 페이지 접근할 수 없어 재현에 어려움이 있네요. 별도로 QA과정이나, 다른 가맹점으로부터 문의도 없어 확인이 어렵고요 보내주신 requestPayments Method만 보았을 때. - orderId 중복 사용 - requestPayment 중복 호출 등의 이슈가 있을 수 있을 것 같아요 모바일/PC 중에 특정플랫폼에서만 발생하고 있을까요? 안되는 고객은 계속 안되는지, 특정 OS에서만 발생하는지도 확인해주시면 감사하겠습니다.

Did you find this page helpful?