successUrl 이동 시 결제수단에 따라 쿼리스트링 인코딩 방식이 다른이유
결제위젯을 사용할 때 successUrl 에 쿼리스트링으로 url 을 인코딩해서 사용중입니다.
예: https://payment-api.devinflearn.com/client/api/v1/payments/processing/toss?entryUrl=https%3A%2F%2Fwww.devinflearn.com%2Fcarts&successUrl=https%3A%2F%2Fcourse-api.devinflearn.com%2Fclient%2Fapi%2Fv2%2Fpayments%2Fcomplete%3FserviceId%3DCOURSE&failUrl=https%3A%2F%2Fwww.devinflearn.com%2Forders%2Fpay%2Fdomestic-fail%3FserviceId%3DCOURSE
참고로 쿼리스트링으로 제공하는 successUrl, failUrl, entryUrl 은 토스와 관계없고 저희 백엔드 서버에서 처리하는 데이터입니다.
APM 으로 확인해보니 paymentType 이
BRANDPAY
일 때는 괜찮은데 NORMAL
인 경우가 일부 특수문자들이 디코딩이 된 채로 이동하는거 같습니다.
BRANDPAY 인 경우
http://payment-api.inflearn.com/client/api/v1/payments/processing/toss?amount=66820&entryUrl=https%3A%2F%2Fwww.inflearn.com%2Fcarts%3FtargetCourseId%3D337692&failUrl=https%3A%2F%2Fwww.inflearn.com%2Forders%2Fpay%2Fdomestic-fail%3FserviceId%3DCOURSE&methodId=c_0Arne5leDdNoBVvm&orderId=0929-1654-3626018-0&paymentKey=xxx&paymentType=BRANDPAY&successUrl=https%3A%2F%2Fcourse-api.inflearn.com%2Fclient%2Fapi%2Fv2%2Fpayments%2Fcomplete%3FserviceId%3DCOURSE
NORMAL 인 경우
http://payment-api.devinflearn.com/client/api/v1/payments/processing/toss?entryUrl=https://www.devinflearn.com/carts&successUrl=https://course-api.devinflearn.com/client/api/v2/payments/complete?serviceId%3DCOURSE&failUrl=https://www.devinflearn.com/orders/pay/domestic-fail?serviceId%3DCOURSE&paymentType=NORMAL&orderId=0929-1658-348790-0&paymentKey=xxx&amount=202400
=
문자는 정상적으로 인코딩이 유지된채로 오는데 :/?
와 같은 문자만 디코딩이 된 상태로 이동하는거 같습니다.
NORMAL 인 경우만 다르게 동작하는 이유가 따로 있는건지 궁금합니다!2 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
BRANDPAY
NORMAL