인트 (DEV)
인트 (DEV)2d ago

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
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
인트 (DEV)
인트 (DEV)OP2d ago
BRANDPAY
{
"amount": "61600",
"orderId": "0929-1332-3625561-0",
"entryUrl": "https%3A%2F%2Fwww.inflearn.com%2Fcarts%3FtargetCourseId%3D325969",
"methodId": "c_k5rkDP5omLMLDy8n",
"successUrl": "https%3A%2F%2Fcourse-api.inflearn.com%2Fclient%2Fapi%2Fv2%2Fpayments%2Fcomplete%3FserviceId%3DCOURSE",
"failUrl": "https%3A%2F%2Fwww.inflearn.com%2Forders%2Fpay%2Fdomestic-fail%3FserviceId%3DCOURSE",
"paymentKey": "",
"paymentType": "BRANDPAY"
}
{
"amount": "61600",
"orderId": "0929-1332-3625561-0",
"entryUrl": "https%3A%2F%2Fwww.inflearn.com%2Fcarts%3FtargetCourseId%3D325969",
"methodId": "c_k5rkDP5omLMLDy8n",
"successUrl": "https%3A%2F%2Fcourse-api.inflearn.com%2Fclient%2Fapi%2Fv2%2Fpayments%2Fcomplete%3FserviceId%3DCOURSE",
"failUrl": "https%3A%2F%2Fwww.inflearn.com%2Forders%2Fpay%2Fdomestic-fail%3FserviceId%3DCOURSE",
"paymentKey": "",
"paymentType": "BRANDPAY"
}
NORMAL
{
"amount": "25300",
"orderId": "0929-1706-3626041-0",
"entryUrl": "https://www.inflearn.com/carts?targetCourseId%3D338838",
"successUrl": "https://course-api.inflearn.com/client/api/v2/payments/complete?serviceId%3DCOURSE",
"failUrl": "https://www.inflearn.com/orders/pay/domestic-fail?serviceId%3DCOURSE",
"paymentKey": "",
"paymentType": "NORMAL"
}
{
"amount": "25300",
"orderId": "0929-1706-3626041-0",
"entryUrl": "https://www.inflearn.com/carts?targetCourseId%3D338838",
"successUrl": "https://course-api.inflearn.com/client/api/v2/payments/complete?serviceId%3DCOURSE",
"failUrl": "https://www.inflearn.com/orders/pay/domestic-fail?serviceId%3DCOURSE",
"paymentKey": "",
"paymentType": "NORMAL"
}

Did you find this page helpful?