xpay 가상계좌 테스트 중 한글깨짐 문의
xpay 가상계좌 테스트 중 한글이 깨져서 문의드립니다
LGD_CASFLAG=R 으로 계좌 발급시에는 한글이 안깨지는데
테스트 입금완료 처리 후 LGD_CASNOTEURL 의 url로 들어올때는
한글이 아래와 같은 케이스로 깨진 상태로 넘어옵니다
����
내용 확인 가능할까요?
22 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
서버에서 인코딩은 뭐로 받고계신가요?
Utf-8로 받으시나요?
네 그런걸로 알고 있습니다
xpay는 입금통보시 euc-kr로 보냅니다. 수신페이지 상단에
response.setCharacterEncoding("UTF-8");
response.setContentType("text/xml;charset=utf-8");
이 두개를 선언하고 확인부탁드립니다.
혹시 java 를 쓰시는게 맞으신가요?
아 xpay는 euc-kr로 오나요
네 자바씁니다
네 위 부분 적용해보시고 결과 회신부탁드립니다
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
안녕하세요 테스트를 해보니 그대로여서 추가로 문의드립니다
LGD_CASNOTEURL로 넘어오는 파라미터들이 세팅되는 시점이 어느시점인가요?
launchCrossPlatform 에서 openXpay함수 실행될 때 까지는 한글이 정상적으로 표기되고 있거든요
LGD_CASNOTEURL 는 동기통신이 아니여서
값이 세팅되는 시점은 큰 의미가 없습니다
사용중이신 jsp 파일을 저희쪽 techsupport@tosspayments.com 으로 전달부탁드립니다
launchCrossPlatform 나 payment_return 있는 스크립트 쪽만 보내면 될까요?
LGD_CASNOTEURL 에서는 어떤 encoding 으로 받으시나요
UTF-8으로 받고 계시면
payreq 에서 가상계좌 결제창 호출하실때
<input type="hidden" id="LGD_ENCODING_NOTEURL" name="LGD_ENCODING_NOTEURL" value="UTF-8"/>
이부분을 추가하고 테스트 해보실수 있을까요?
String LGD_ENCODING = "utf-8";
String LGD_ENCODING_NOTEURL = "utf-8";
String LGD_ENCODING_RETURNURL = "utf-8";
으로 사용하고 있습니다
깨지는 가상계좌 노티 받으신 OID 하고 MID 좀 알려주시겠어요?
lgdOid=s2025010300388231
lgdMid=tecredible3
입니다
String LGD_ENCODING = "UTF-8";
String LGD_ENCODING_NOTEURL = "UTF-8";
String LGD_ENCODING_RETURNURL = "UTF-8";
로 지정해보시고, http://ndev.tp.ecredible.co.kr/svc/pay/ECR07030704.do 를 LGD_CASNOTEURL로 지정하셨는데, 이 파일을 메모장으로 여신후 다른이름으로 저장시 파일형식이 "ANSI" 인지 "UTF-8" 인지 확인부탁드립니다. 파일인코딩도 UTF-8 로 되어 있어야 할겁니다.
요청당시에 상품명, 구매자명등의 한글은 안깨지고 잘 넘어왔습니다.
그렇군요.. 확인 감사합니다 말씀하신대로 확인해보겠습니다
다만 ECR07030704.do 에서 화면까지 가지 않고 컨트롤러-서비스 단에서 처리가 되고 있어서 UTF-8로 수정해보겠습니다
만일 저기까지 했는데도 깨지면,,위에 수정한것은 그대로 두시고, 아래 부분만 추가로 수정해보시기 바랍니다.
1) 소스에 아래 항목 수정 및 추가 (BOLD체)
<%@ page contentType="text/html;charset=UTF-8" %>
2) 기존에 있던 아래 항목을 수정
a. 결제요청시 String LGD_ENCODING_NOTEURL = "UTF-8"; 는 셋팅안함
b. 노티수신페이지에 아래 항목 수정
종전:
request.setCharacterEncoding("UTF-8");
response.setContentType("text/xml; charset=UTF-8");
변경:
request.setCharacterEncoding("euc-kr");
response.setContentType("text/xml; charset=euc-kr");
저도 동일 문제 request.setCharacterEncoding("euc-kr"); 로 해결한 적이 있습니다.
lgdOid=s2025010300388751
위 테스트 결제건은 한글이 정상적으로 넘어온 것 확인했습니다
String LGD_ENCODING = "UTF-8";
String LGD_ENCODING_NOTEURL = "UTF-8";
String LGD_ENCODING_RETURNURL = "UTF-8";
이부분을 수정했고요 저희가 플랫폼 통합중이라 기존서비스에서는 utf-8로 사용하면서
문제가 없었는데 특이하네요
해결에 도움주셔서 감사합니다
아마 기존 서비스는 모종의 설정이 되면서 EUC-KR로 읽어들이고 있었던것 같습니다.
서버 합치시면서 UTF-8로 리드가 되도록 설정이 바뀐듯합니다.
해결되셨다니 다행입니다.
공유해주셔서 감사합니다.