결제연동 오류 확인 부탁 드립니다.
카드 결제 시 아래와 같은 오류가 발생합니다.
CST_PLATFORM= service
LGD_MID = itgardqpzy
LGD_PAYKEY= 20240826181614D81461D46BC2AB75EBDCE4FC19A29D237F635957
결제요청이 실패하였습니다!
TX Response_code = 20001
TX Response_msg = URL error; WINHTTP error code = 122
-2147217900 - 에러 번호
65 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
새로 연동하시는 건가요? 아니면 기존에 연동하시다가 갑자기 에러가 나시는 건가요?
conf/lgdacom.conf 파일 안에 기재된 내용을 공유부탁드립니다.
내용 공유해 드립니다. 2년째 결제를 못하고 있다가 제가 담당자로 와서 손보고 있습니다.
url = https://xpayclient.lgdacom.net/xpay/Gateway.do
test_url = https://xpayclient.lgdacom.net:7443/xpay/Gateway.do
aux_url = http://xpayclient.lgdacom.net:7080/xpay/Gateway.do
아래와 같이 변경해주시기 바랍니다.
url = https://xpayvvipclient.tosspayments.com/xpay/Gateway.do
test_url = https://xpay-gateway-sandbox.tosspayments.com/xpay/Gateway.do
aux_url은 삭제하셔도 됩니다.
그리고 결제창 호출 js 주소도 아래와 같이 변경해주시기 바랍니다.
운영 :
https://xpayvvip.tosspayments.com/xpay/js/xpay_crossplatform.js
테스트 :
https://js.tosspayments.com/xpay_crossplatform/sandbox/v1
configpath 로 설정한 경로가 어떻게 되시나요??
lgdacom 폴더까지 지정이 되어있나요??
위 설정한 경로 하위 루트에 conf 폴더가 있는지도 확인 부탁드립니다
asp에서 20001 url 에러는
configpath에 지정된 환경파일을 참조하지 못할떄 발생될 수 있습니다.
configPath= /www/common/lgupcrossplatformConf/conf
CST_PLATFORM= service
LGD_MID = itgardqpzy
LGD_PAYKEY= 202408271320095AF4E6C18D77E09E15163E38D4FA6162F3ABA4C1
결제요청이 실패하였습니다!
TX Response_code = 20001
TX Response_msg = URL error; WINHTTP error code = 122
-2147217900 - 에러 번호
동일한 에러가 발생합니다.
url = https://xpayvvipclient.tosspayments.com/xpay/Gateway.do
test_url = https://xpay-gateway-sandbox.tosspayments.com/xpay/Gateway.do
conf 디렉토리 실제 경로입니다 F:/home/itgarden/www/common/lgupcrossplatformConf/conf
@박의원 잘 보니 CST_PLATFORM이 service네요
test_url이랑은 무관할 것 같습니다
' 데이콤(DACOM) __
Case CM_PG_DACOM
' # 테스트용 <-> 서비스용 변경시 수정 페이지 ([DACOM] 테스트용 : platform = "test", [DACOM] 서비스용 : platform = "service")
' 1. /pay/dacom/payutil.js
' 2. /my/pop_order_buyConfirm.asp
' 주) /pay/dacom/log 폴더에 웹계정 쓰기권한 설정. 데이콤 결제 오류로그 기록
protocol = iif(sitePort=443, "https", "http")
' # 테스트용<->서비스용 변경
' [DACOM] 테스트용 (platform : test)
If CST_PLATFORM = "test" Then '[jings3] 서비스or테스트 분기 (S)
lguplusport = iif( protocol = "https", "7443", "7080" )
.Write "<script type=""text/javascript"" src="""& protocol &"://js.tosspayments.com:"& lguplusport &"/xpay_crossplatform/sandbox/v1""></script>"& vbCrLf
else
' [DACOM] 서비스용 (platform : service)
.Write "<script type=""text/javascript"" src="""& protocol &"://xpayvvip.tosspayments.com/xpay/js/xpay_crossplatform.js""></script>"& vbCrLf
End If '[jings3] 서비스or테스트 분기 (E)
.Write "<script type=""text/javascript"" src="""& pathPay &"/dacom/payutil.js""></script>"& vbCrLf
보통 configPath 경로 설정은 , 토스페이먼츠에서 제공한 환경파일중 conf 상위폴더까지 지정이 원칙입니다.
configPath= /www/common/lgupcrossplatformConf/conf 가 아닌
configPath= /www/common/lgupcrossplatformConf 와 같이 지정후 테스트 부탁드립니다.
먼저, 스크립트 불러오실때, 테스트용에서 lguplusport빼주세요. 443으로 통합되었습니다.
configPath= F:/home/itgarden/www/common/lgupcrossplatformConf
CST_PLATFORM= service
LGD_MID = itgardqpzy
LGD_PAYKEY= 20240827174618682E32D658723001437DDC36B59ABF0C21A34E0B
결제요청이 실패하였습니다!
TX Response_code = 20001
TX Response_msg = URL error; WINHTTP error code = 122
-2147217900 - 에러 번호
수정하였으나 위 결과와 동일합니다 ㅠㅠ
URL 에러면아직 못찾는 건데요.
F:/home/itgarden/www/common/lgupcrossplatformConf/conf 아래에 lgdacom.conf 파일이 있으신건가요?
파일이 있다면, F:/home/itgarden/www/common/lgupcrossplatformConf/conf 폴더와 하위파일에 대해 IIS_USER 계정 읽기/쓰기 권한이 잡혀있는지도 확인부탁드립니다.
네 파일도 있고, 권한도 있고, 경로도 맞습니다.
혹시 위 캡쳐하신 FTP경로상에 log 폴더를 보시면 로그가 남아 있을까요? 20240827일자 로그파일을 techsupport@tosspayments.com 으로 전달부탁드립니다.
그리고 가능하시다면, 결제 승인요청페이지 (샘플소스 기준 payres.asp) 도 함께 전달 부탁드려요
네 파일 드립니다
TX Response_msg = URL error; WINHTTP error code = 122
-2147217900 - 에러 번호
로그 2022년 9월 20일 것인데 어제나 오늘날짜로 된 파일은 없으신가요?
네 그 이후로 호스팅 업체가 바뀌면서 카드결 제가 지금까지 안되고 있엇다고 해요 ㅠ
지금 로그도 안쌓이는 것으로 보아 path 자체가 안된는 것으로 보입니다.
FTP 로 보고 계신게 실제
F:/home/itgarden/www/common/lgupcrossplatformConf/conf
이 폴더가 맞는지 호스팅 업체에 확인해 주세요.
네 알겠습니다 다른거 수정 할껀 더 없을까요 선생님?
일단 conf 파일 위치가 특정되어서 로그도 남고 URL 도 인식이 되어야 다음단계 진행이 가능할것 같습니다.
혹시 참고가 되실까 해서 추가로 말씀드리면,
FTP에 ASP 빈페이지를 하나 올리시고,
<%=Server.MapPath(".")%>
를 출력해보시면, 해당 파일이 올라간 윈도우서버의 절대경로가 확인될겁니다. 호스팅사쪽의 회신이 늦을경우 이 방법으로 실제 절대경로 위치를 확인하시어 configPath 를 수정해보시기 바랍니다.
폴더 경로는 맞는거 같아요 ㅠ
F:/home/itgarden/www/common/lgupcrossplatformConf/conf/mall.conf 파일내용중 하단 mid 및 mertkey 정보를 뺀 나머지 정보를 공유주실수 있으실까요? . 그리고 F:/home/itgarden/www/common/lgupcrossplatformConf/conf/lgdacom.conf 파일 내용도 다시한번 공유부탁드립니다.
일단 호스팅 서비스를 받고 있어 테스트진행에 어려움이 있어서, 자체 서버로 이관하여 다시 테스트 중입니다. error 메시지가 조금 달라지긴 했네요
i
어제보내주신 payres.asp 기준으로 말씀드리면 403 ~ 405라인을 탄것 같구요.
360 ~ 388 라인의 , 결제성공 DB처리가 FALSE (DB처리실패) 가 되어 에러가 난것 같습니다.
424 - 에러번호 는, 438라인을 출력한것 같은데요.. Err.Number 는 저희 코드가 아닙니다.
캡쳐해주신 configPath 의 log 폴더 안에 log는 남아있을까요?
이상하게 호스팅서버에서는 로그가 안쌓입니다. 쓰기 권한도 다 부여했는데요.
log_dir = F:/home/itgarden/www/common/lgupcrossplatformConf/log
이 위치에 로그파일이 전혀 없다는 말씀이시죠?
payres.asp 쪽에
Response.Write("LGD_PAYKEY= " & LGD_PAYKEY & "<br>")
Response.Write("xpay.TX() " & xpay.TX() & "<br>")
이렇게, LGD_PAYKEY 아랫줄에 xpay.TX() 를 넣고, 결과를 출력해보시겠어요?
configPath= F:/home/itgarden/www/common/lgupcrossplatformConf
CST_PLATFORM= service
LGD_MID = itgardqpzy
LGD_PAYKEY= 202409051039441726F24C2A9E075E74453F732B39055F091971A3
LGD_PAYKEY= 202409051039441726F24C2A9E075E74453F732B39055F091971A3
xpay.TX() 0
결제요청이 실패하였습니다!
TX Response_code = 20001
TX Response_msg = URL error; WINHTTP error code = 122
-2147217900 - 에러 번호
configPath= F:/home/itgarden/www/common/lgupcrossplatformConf
CST_PLATFORM= service
LGD_MID = itgardqpzy
LGD_PAYKEY= 202409051117456EDADA8098B52D5F68F692DC433AD15BAB69DC5D
LGD_PAYKEY= 202409051117456EDADA8098B52D5F68F692DC433AD15BAB69DC5D
xpay.TX() 0
LGD_RESPCODE=
LGD_RESPMSG=
LGD_OID= A20240905111721904
GD_FINANCECODE =
LGD_FINANCENAME=
LGD_FINANCEAUTHNUM=
결제요청이 실패하였습니다!
TX Response_code = 20001
TX Response_msg = URL error; WINHTTP error code = 122
-2147217900 - 에러 번호
Dim LGD_RESPCODE ' 응답코드: 0000(성공) 그외 실패
Dim LGD_RESPMSG ' 응답메세지
Dim LGD_MID ' 상점아이디
Dim LGD_OID ' 주문번호
Dim LGD_AMOUNT ' 거래금액
Dim LGD_TID ' 데이콤이 부여한 거래번호
Dim LGD_PAYTYPE ' 결제수단코드
Dim LGD_PAYDATE ' 거래일시(승인일시/이체일시)
Dim LGD_HASHDATA ' 해쉬값
Dim LGD_FINANCECODE ' 결제기관코드(카드종류/은행코드/이통사코드)
Dim LGD_FINANCENAME ' 결제기관이름(카드이름/은행이름/이통사이름)
Dim LGD_ESCROWYN ' 에스크로 적용여부
Dim LGD_TIMESTAMP ' 타임스탬프
Dim LGD_FINANCEAUTHNUM ' 결제기관 승인번호(신용카드, 계좌이체, 상품권)
URL 에러인거 보면 설정된 URL 을 못가져오는 것 처럼 보이는데요.
F:/home/itgarden/www/common/lgupcrossplatformConf/conf 폴더와 lgdacon.conf 파일도 읽기 원한 모두 있으신거죠?
도통 원인을 모르겠습니다
payres.asp 파일을 techsupport@tosspayments.com 으로 보내주실수 있을까요?
에러 증상은 config 파일을 못찾거나 권한이 없어는등의 이유로 못열어서 접근할 URL 을 찾지 못하는 상황입니다.
네 메일 드렸습니다
43번 라인에
Response.Write("xpay.TX() " & xpay.TX() & "<br>")
이거는 원래부터 있으셨던 건가요?
근데 지금 권한 설정하신건 FTP 에 대한 권한설정이실것 같은데요.
실제 서버쪽 콘솔에는 접속하실수 없나요?
네 Response.Write("xpay.TX() " & xpay.TX() & "<br>") 라인은 위에 "박위원" 님 말씀에 따라 추가해본거구요~
호스팅 서버라 실서버 콘솔 접속은 안된다고 합니다
그러면 혹시 저 lgdacom.conf 파일을 ASP 에서 열어서 내용을 찍는 프로그램을 하나 짜서 동작하는지 확인해 보실수 있을까요?
제가 개발자는 아니여서요;; 혹시 참조할 만한 소스가 있을까요?
VoidNoble IT Zone
Classic ASP UTF-8 파일 읽기, 쓰기
'// UTF-8 파일 읽기 Function fread_utf8(fpath) If fpath = "" Then Exit Function Dim objStream, txt Set objStream = Server.CreateObject("ADODB.Stream") objStream.Mode = 3 objStream.Type = 2 ' 텍스트 타입 (1: Bin, 2: Text) objStream.CharSet = "UTF-8" objStream.Open objStream.LoadFromFile Server.MapPath(fpath) txt = objStream.ReadText objStream.Close Set ob...
이걸 참고해서 F:/home/itgarden/www/common/lgupcrossplatformConf/conf/lgdacom.conf 파일을 읽은후에 내용을 출력해 보시면 될것 같습니다.
<%
'// UTF-8 파일 읽기
Function fread_utf8(fpath)
If fpath = "F:/home/itgarden/www/common/lgupcrossplatformConf/conf/lgdacom.conf" Then Exit Function
Dim objStream, txt
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Mode = 3
objStream.Type = 2 ' 텍스트 타입 (1: Bin, 2: Text)
objStream.CharSet = "UTF-8"
objStream.Open
objStream.LoadFromFile Server.MapPath()
txt = objStream.ReadText
objStream.Close
Set objStream = Nothing
fread_utf8 = txt
End Function
%> 이렇게 asp 파일 만들어서 테스트하면 될까요?
번거로우시겠지만 하나만 더 확인부탁드릴께요.
test.asp 라는 빈 파일을 하나 만드셔서, 아래 코드 전체를 적용하고 /www/common/lgupcrossplatformConf/ 안에 업로드 해주신다음에, 이 파일을 웹에서 실행해보실수 있으실까요?
<%
Response.Write(". :" & server.mappath(".") & "<br>")
Response.Write("/ :" & server.mappath("/") & "<br>")
Response.Write("\ :" & server.mappath("\") & "<br>")
%>
<%
Set fs = Server.CreateObject("Scripting.FileSystemObject")
Set objFile = fs.OpenTextFile("F:/home/itgarden/www/common/lgupcrossplatformConf/conf/lgdacom.conf",1)
%>
<HTML>
<head>
<meta charset="UTF-8">
</head>
<BODY>
<br><center><font face="돋움" size="2">
<h2>FSO 텍스트화일 읽기</h2>
<%
Do While objFile.AtEndOfStream <> True
Response.write objFile.readLine & "<br>"
loop
' 이런 방법도 같은 결과를 출력한다.(ReadAll 사용)
' content = objFile.readall
' str = replace(content,chr(13)&chr(10),"<br>")
' Response.write str
%>
</font></center></BODY>
</HTML>
디렉토리 문제인가 싶어 디렉토리를 새로 만들고 경로를 추가 후에 테스트 한 경로 입니다.
configPath= F:/home/itgarden/www/common/toss
CST_PLATFORM= service
LGD_MID = itgardqpzy
LGD_PAYKEY= 2024090515390378A4B02BC9DC35E9C6182E1C0BB0FB65841CA464
LGD_PAYKEY= 2024090515390378A4B02BC9DC35E9C6182E1C0BB0FB65841CA464
xpay.TX() 0
LGD_RESPCODE=
LGD_RESPMSG=
LGD_OID= A20240905153845376
GD_FINANCECODE =
LGD_FINANCENAME=
LGD_FINANCEAUTHNUM=
결제요청이 실패하였습니다!
TX Response_code = 20001
TX Response_msg = URL error; WINHTTP error code = 122
-2147217900 - 에러 번호
. :F:\home\itgarden\www\common\toss\conf
/ :F:\home\itgarden\www
\ :F:\home\itgarden\www
log 폴더에서는 결제 테스트 후 web.config 라는 파일만 생성됩니다
파일 읽기도 잘 되는거 같습니다
혹시 테스트했던 파일을 /www/common/lgupcrossplatformConf/ 에 업로드하여 실행한것이 맞으실까요? 이게 맞으면
F:\home\itgarden\www\common\lgupcrossplatformConf\conf 로 출력되어야 하는데, 실제 파일의 절대경로가 F:\home\itgarden\www\common\toss\conf 로 출력됬습니다.
음... payres.asp (승인요청페이지) 의 아래 부분을 수정 한 다음에 결제테스트 및 로그가 남는지 확인가능하실까요?
1) payres.asp 의 아래 부분 수정
종전 : configPath = "F:/home/itgarden/www/common/lgupcrossplatformConf" 'LG유플러스에서 제공한 환경파일(/conf/lgdacom.conf, /conf/mall.conf)이 위치한 디렉토리 지정
수정 : configPath = "F:\home\itgarden\www\common\toss" 'LG유플러스에서 제공한 환경파일(/conf/lgdacom.conf, /conf/mall.conf)이 위치한 디렉토리 지정
2) /www/common/lgupcrossplatformConf/mall.conf 의 아래 부분 수정 종전 : log_dir = F:/home/itgarden/www/common/lgupcrossplatformConf/log 변경 log_dir = F:\home\itgarden\www\common\toss\log
수정 : configPath = "F:\home\itgarden\www\common\toss" 'LG유플러스에서 제공한 환경파일(/conf/lgdacom.conf, /conf/mall.conf)이 위치한 디렉토리 지정
2) /www/common/lgupcrossplatformConf/mall.conf 의 아래 부분 수정 종전 : log_dir = F:/home/itgarden/www/common/lgupcrossplatformConf/log 변경 log_dir = F:\home\itgarden\www\common\toss\log
패스정보만 / 에서 \ 로 바뀌고 결과는 동일합니다.
configPath= F:\home\itgarden\www\common\toss
CST_PLATFORM= service
LGD_MID = itgardqpzy
LGD_PAYKEY= 20240906192352DAA77B40D69D25CAE38D99A18C03F36B44CCED1F
LGD_PAYKEY= 20240906192352DAA77B40D69D25CAE38D99A18C03F36B44CCED1F
xpay.TX() 0
LGD_RESPCODE=
LGD_RESPMSG=
LGD_OID= A20240906192332888
GD_FINANCECODE =
LGD_FINANCENAME=
LGD_FINANCEAUTHNUM=
결제요청이 실패하였습니다!
TX Response_code = 20001
TX Response_msg = URL error; WINHTTP error code = 122
-2147217900 - 에러 번호
모든게 정상이라 의심되는건 방화벽밖에 없어 보입니다.
210.98.141.15
210.98.141.16
103.182.250.5
103.182.251.5
이렇게 4개 IP 에 대해 443포트가 outbound 로 열려 있는지 확인부탁드릴께요.
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
아직 해결이 안되었습니다....
에러는 동일한가요?
결제요청 페이지 파일이 어느 폴더에 위치해 있나요?
예를 들어, lgupcrossplatformConf 를 찾아가려면, 상대경로로 어떻게 바라봐야 하나요?
현재 폴더에서 lgupcrossplatformConf 를 바로 바라보면 되는건지
- ./lgupcrossplatformConf
아니면 결제요청 파일 위치가 특정 폴더 하위에 있어서, 상위 폴더로 이동해서 lgupcrossplatformConf 로 가야 하는건지
- ../lgupcrossplatformConf
아니면 결제요청 파일 위치가 특정 폴더아래의 또 다른 특정폴더에 위치해 있어서, 상위 폴더를 두번 이동해야 하는건지
- ../../lgupcrossplatformConf
이렇게 상대경로로 잡아봅시다
전혀 다른 문제였네요. 여러모로 도와주셔서 감사드립니다. ^^