안녕하세요? 토스결제연동 중입니다.
PC환경에서 결제는 문제가 없습니다만, 모바일로 결제를 하려고 하면 에러가 발생합니다.
시스템상으로 PC와 모바일 결제부분에 차이는 없습니다
도와주시면 감사하겠습니다
47 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
주문번호는 SP-244835PP 입니다
어떤 에러가 발생하는지 먼저 확인해주시기 바랍니다.
스마트폰으로 결제를 시도하면 결제창이 뜨고 처리가 다 되는 듯한데, 서버쪽에 아무 반응이 없습니다.
참고로 결제처리 코드는 아래와 같습니다
let toss_pg = {
paymentKey: this.paymentKey,
amount: this.amount,
orderId: this.orderId
}
if(this.amount == this.total_amount) { // connect with api on backend this.$api("/api/tossPG/success", { param: toss_pg }) .then((res) => { console.log(res); this.changeFlag(this.orderId); //window.location.href = res.checkoutPage; }) .catch((err) => { console.error(err); });
} else { this.$swal.fire('', '상품금액과 결제금액이 불일치합니다. 문의: 1660-4602', 'error'); //return false location.href = "/fail_pg" }
if(this.amount == this.total_amount) { // connect with api on backend this.$api("/api/tossPG/success", { param: toss_pg }) .then((res) => { console.log(res); this.changeFlag(this.orderId); //window.location.href = res.checkoutPage; }) .catch((err) => { console.error(err); });
} else { this.$swal.fire('', '상품금액과 결제금액이 불일치합니다. 문의: 1660-4602', 'error'); //return false location.href = "/fail_pg" }
successUrl로는 이동했나요?
네 이동을 한 후에 fail로 이동을 해버리네요
successUrl로 이동한다음에 fail로 이동한다는 말씀이시죠?
넵
일단 저희는 succesUrl로 이동 후에는 귀사 클라이언트에 영향을 끼칠 수 없습니다.
왜 fail로 이동하는지 원인을 확인해보시기 바랍니다.
영상있으면 영상도 한번 보여주세요
그렇군요. 일단 결제창이 뜨고 결제가 시작되면 서버쪽에 console.log가 돌아가야 하는데 아무런 반응이 없는 것은 실제로는 결제자체가 이루어지는 것이 아닌걸까요?
successUrl이동 후 승인API가 호출되어야 결제가 완료됩니다.
네 조언감사합니다. 로컬쪽 원인을 더 찾아보겠습니다
네 해결안되시면 영상이랑 함께 전달요청드려요
안녕하십니까? 잠시전에 모바일 결제건으로 문의드린 사람입니다. 조언주신 이후 테스트를 몇 번 더 진행을 했습니다. 그런데 모바일에서 카카오톡으로 rul진입 시 열리는 브라우저에서 결제를 진행할 경우 결제가 되지 않고 있습니다. 해당 url을 크롬에 붙여넣기를 해서 진행을 하면 결제가 완료되구요. 오류화면은 열리지 않아서 확인은 못했습니다T-T...혹시 조언을 주실만한 내용이 있을까요?
iframe내부에서 결제창 여는 등 하시나요
아닙니다. 매뉴얼에서 제공하는 방법대로 하고 있고. sdk를 이용하고 있습니다
영상 한번 남겨주세요
안녕하십니까? 결제화면입니다..마지막 부분이 녹화가 잘 안되었는데요. 결제가 완료된 후 특별한 표시없이 결제실패url로 이동합니다.
같은 예약정보로 모바일크롬에서 진행을 하면 정상적으로 결제가 되고, 카카오톡으로 연결된 브라우저에서는 이렇게 결제가 되지 않고 있습니다'
결제 실패 페이지로 이동하면서 전달되는 query param 은 확인이 가능하실까요?
이 브라우저는 chrome://inspect/#devices로 디버깅이 안되서 확인을 못했습니다.
그리고 결제하신 저희쪽 로그를 보면 정상적으로 successURL 로 이동하는 것으로 보입니다.
아 그럼 토스쪽에서 결제는 진행이 되었다는 말씀인가요?
http://ntabi.co.kr/success_pg 로 이동시키는 로그가 확인됩니다.
Ntabi
여행갈 땐 엔타비! 해외자유,패키지 여행, 일일버스투어, 현지 프라이빗 투어, 색다른 경험의 버라이어티팩, 기획전 등 엔타비글로벌과 함께하세요!
그런데 크롬으로 결제를 진행한 건은 정상적으로 처리가 되는데, 카카오 인앱브라우저인가요? 이런 건은 서버쪽에 아무런 반응이 없습니다...
Ntabi
여행갈 땐 엔타비! 해외자유,패키지 여행, 일일버스투어, 현지 프라이빗 투어, 색다른 경험의 버라이어티팩, 기획전 등 엔타비글로벌과 함께하세요!
그리고 영상은 그 이후 부분까지 촬영해서 보내주세요. 가장 중보한 부분이 누락되어 있습니다.
같은 건의 후반부를 녹화한 화면입니다
이때 저희가 호출하는 URL 은 저희 로그상으로
http://ntabi.co.kr/success_pg 로 확인되는데요.
Ntabi
여행갈 땐 엔타비! 해외자유,패키지 여행, 일일버스투어, 현지 프라이빗 투어, 색다른 경험의 버라이어티팩, 기획전 등 엔타비글로벌과 함께하세요!

해당 서버에 호출 이력 확인 가능하신가요?
이 페이지에서 뭔가를 처리 못해서 실패 페이지로 랜딩하시는것 같아서요.
네 서버에서 호출기록이 없습니다. 저도 처리에 문제가 있는 거 같기는한데 저 url를 카피해서 모바일크롬에서 진행을 하면 정상적으로 결제가 진행되고 호출기록도 보입니다
그래서 이렇데 조언을 구합니다T-T
호출기록이 없을수가 없습니다. 지금 보내주신 영상에 보시면 적어도 ntabi.co.kr 을 호출하고 있습니다.
로그를 정확히 확인해 주시기 바랍니다.
보내주신영상으로보면 해당 URL 이 인앱브라우저로 차단당하거나 한 것 같아 보이지도 않습니다. http://ntabi.co.kr/success_pg 까지는 호출이 되셨을것 같고 여기에서 에러가 발생해서 에러 페이지로 넘어간 것으로 보입니다.
Ntabi
여행갈 땐 엔타비! 해외자유,패키지 여행, 일일버스투어, 현지 프라이빗 투어, 색다른 경험의 버라이어티팩, 기획전 등 엔타비글로벌과 함께하세요!
승인 API 가 호출된 이력도 없는 것으로 보아 해당 페이지에서 승인 페이지를 호출하기전에 실행되는 로직에서 실패로 판단했을것 같습니다.
네 서버쪽에 호출이 되면 console로 찍도록 했는데...유독 카카오로 진행되는 경우만 아무것도 찍히지가 않네요T-T
그럼 카카오 인앱브라우저에서 일어나는 문제일까요?
서버 로직 안에서 로그 찍으시기 전에 웹서버 로그를 확인해 보시기 바랍니다.
넵. 혹시 이와 유사한 문의는 없었는지요...
네 없었습니다.
일단 서버 로직 최상단에 로그를 찍어 보시고,
웹서버의 access log 상에 해당 URL access 한 로그가 있는지를 확인해 보세요.
넵 알겠습니다. 말씀대로 더 확인을 해보겠습니다. 바쁘실텐데 친절히 응해주셔서 감사합니다
지금 말씀하신대로라면 user Agent만 달라졌을것 같은데요.
웹서버 설정등에서 Agent 를 확인해서 처리하는 로직이 있는지도 확인해 보시기 바랍니다.
넵
냥과장님, 이건 토스쪽 건은 아닌 듯하나 문의를 드립니다. 결제금액의 오류나 변조를 막기 위해 금액을 일단 localstorage에 넣어서 호출페이지에서 get해서 비교하는 로직이 있습니다. 카카오톡 인앱브라우저는 이 부분에 제한이 있는가요? 카카오개발자 사이트에 들어가면 몇 개인가 문의는 있는데 답변들이 없어서...과장님께 문의를 드립니다.
카카오톡 인앱 브라우저 쪽은 카카오로 문의주셔야할 것 같습니다
넵^^
네 이건 인앱브라우저의 정책문제이지만 아마도 혀용 안하는 것 같습니다.
localstorage 말고 다른 방식(내부 DB 등) 을 이용해서 비교하시기 바랍니다.
localstorage 도 어차피 FE 영역이라 금액 변조한다면 여기도 변조가 가능해서 localstorage 값을 비교하는건 의미가 없습니다.
넵, 여러가지 조언 감사드립니다
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.