php7
구모듈 모바일 결제 셈플 테스트 중입니다. PHP7.x 에 들어 있는 내용에 대한 Readme 화일의 내용이 아리송합니다. 현재 php7.3 을 사용하고 있는데 신규로 작업할 경우 PHP7.x 내의 셈플을 참고해야 하나요? 아니면 기본 셈플을 사용해야 하나요? 기본셈플은 결제 후 에러가 없는 것 같고, PHP7.x 에서는 결제 후 XC01 오류가 발생합니다.
42 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
오류 발생한 주문 번호 공유해주시겠어요?
샘플은 참고하시고 연동문서 확인하시어 개발하시는 것을 추천드립니다.
conf/mall.conf 파일의 키 정보때문에 에러 발생할 것으로 보입니다.
실제 발급받으신 mertkey로 테스트 부탁드리며, 지속적으로 에러 발생하신다면 이실장님 말씀하신것처럼 주문번호 같이 공유 부탁드려요.
php 셈플 내에 PHP7.x 디렉터리의 내용은 그냥 참고용인가요? 아니면 php7.x 인 경우 그 셈플을 사용하라는 건가요?
7버전과 5버전은 문법이 다릅니다. 7버전은 해당 샘플을 참고하시면됩니다.
아 7버전은 php7.x 디렉터리의 셈플을 참고하라는 말씀이신가요?
네네 맞습니다
그리고 returnurl.php 에서 payres.php 로 $_POST가 넘어오지 않는 것 같습니다. 이부분이 7버젼의 차이때문인가요?
그건 버전 문제가 아닌 것 같은데요. 우선 보내주신 정보만으로는 어느부분에서 문제가 발생하는지 알기 어렵스빈다.
1. 주문번호를 공유해주시기 바랍니다.
2. 화면 에러내용을 캡처해주시기 바랍니다.
결제요청시 보낸 mid가 mall.conf파일에도 있나요?
네 CST_MID : mitest 로 요청했고 mall 에 tmitest와 mitest 로 설정했습니다.
mall에는 mitest만 설정해주시면 되는데요.
토스페이먼츠 결제연동팀
techsupport@tosspayments.com
위 메일로 mall.conf파일 보내주시겠어요?
메일 발송했습니다.. 확인 부탁드립니다.
테스트 하기 위해 payreq 화일에 XPayClient 호출전 LGD_MERTKEY 값을 강제로 설정을 하여 테스트 중입니다.
앗 시간이 다 되었네요...
verify_cert = 0
으로 인증서 사용안함으로 다시 해보시겠어요?
mall.conf 파일에서 mid 설정은 특별한 이상은 없어보입니다.
음답코드가 XC01 이고 payres로 POST 값으로 CST_PLATFORM, CST_MID 값이 넘어오지 않고 있습니다. 이부분을 일단 해결해 봐야 할 것 같습니다.
시간이 늦었는데, 괜찮으신가요? 좀더 수정해서 테스트 해 보겠습니다.
네 괜찮습니다.
네 아무래도 PHP7.x 셈플의 동작이 미완성인 소스 같습니다.
@soloreum_80774 님 PHP7.x 소스는 어디서 받은 것인지 확인 부탁드려요.
Tosspayments 홈페이지에서 예전에 받아 놓은 소스 입니다.
LGD_WINDOW_VER 값을 이상하게 보내시는것 같은데요.
LGD_WINDOW_VER 값이 <br />
<b>Notice</b>: Undefined variable: LGD_WINDOW_VER in <b>/home/ibmitest/public_html/wp_toss_mobilepay/payreq_crossplatform.php</b> on line <b>176</b><br />
이렇게 오고 있습니다. LGD_WINDOW_VER 을 "2.5" 로 고정해서 보내주실수 있을까요?
위에 냥과장님 조치와 함께 , 아래부분도 함께 테스트 부탁드려요
저희 샘플 소스중 php 파일 (payreq_crossplatform.php, returnurl.php, payres.php ) 의 최상단에 아래 구문을 한번 넣어서 테스트 해보시겠어요?
<?
ini_set('error_reporting', E_ALL ^ E_NOTICE);
ini_set('display_errors', 'Off');
결과코드가 XC01 로 나오고 있습니다.
결제요청이 완료되었습니다. 나오고 거래정보들이 나오지 않고, 존재하지 않는 LGD_MID 입니다.(tmitest) 로 나옵니다.
payreq_crossplatform.php 에서,
$configPath 부분은, /conf/lgdacom.conf 위치로 지정되어 있으신가요?
/home/xxxxxtest/public_html/wp_toss_mobilepay/PHP7x/lgdacom
네 맞게 설정한 것 같습니다.
원래 제공되는 모바일 셈플이 정상적으로 동작하는 것이 맞는 것인가요?
네
아 그렇다면 제가 처음부터 다시 꼼꼼히 봐야 할 것 같습니다.
절대경로로 설정 하신거 같은데,
절대경로 말고, 현재 결제요청 소스에서, 해당 폴더 바라보도록 다른 루트 방식으로도 설정 해보실 수 있을까요?
기존 버전은 문제 없다고 하시니
기존것도 같이 보시면 문제 해결에 도움이 되시지 않을까 생각 됩니다
pc 용 버전에서도 같은 방법으로 설정을 했습니다.
PHP7.x 버젼말고 그 상위 디렉터리에 있는 셈플에서는 정상적으로 결과코드가 0000으로 잘 나오고 있는 것 같습니다.
위에 적어주신건 PHP7x 인데, 혹시나 폴더명이 PHP7x 맞는지도 확인해보시면 좋을것 같아요
+ 최신 소스는 아래에서 확인이 가능하십니다.
XPAY결제 - Mobile
모바일 XPay 통합결제창 연동을 위한 매뉴얼과 프로그램입니다. JSP・ASP・PHP・.NET를 지원합니다.
(https://drive.google.com/drive/folders/1IEnJeixz6SCk2QT7vAumZXnM5KgBDzXT?usp=sharing)
네 소스는 날짜로 비교하는 같은 날짜입니다. 결제가 정상적으로 처리되고(결과코드 0000) 난 뒤... returnurl.php에서 CST_PLATFORM 값이 넘어오지 않고 있습니다. 따라서 payres.php에서 처리를 못하고 XC01 오류가 나오는 것 같습니다.
아무래도 SESSION으로 넘겨야 할 것 같습니다. 셈플에 pc 버젼에서 없던 $_SESSION 의 설정이 있습니다. 물론 사용하는 곳은 없지만... 뭔가 의미가 있는 것 같습니다.
Issac 님이 공유 주신 드라이버 루트에 있는 파일과
지금 보고 계시는 파일이 동일한지 확인 부탁 드립니다.
오래된 세션 샘플 보고 있으신게 아닌지도 확인이 필요 할것 같습니다.
아 상위 디렉터이에 있는 셈플에서는 payres.php 에서 CST_PLATFORM의 값을 강제로 "test"라고 들어 있어서 정상적으로 처리된 것 같습니다.
모바일에서는 payres 에서 CST_PLATFORM 값을 "test" 나 "service" 로 지정해 주셔야 합니다.
모바일의 경우 returnurl.php 에 해당 값이 넘어가지 않습니다.
$_SESSION 설정이 있다고 하셨는데, 이건 어디에서 확인 하신 걸까요?
아 그래서 payreq_cross...php 화일 $_SESSION를 사용할 부분이 있습니다. 그 뒤로 어디에서도 사용한 흔적이 없습니다.
crossplatform 에서 $_SESSION 을 사용하고 있다면, 오래된 샘플을 보고 있으신것 아닌지 꼭 확인 해주시기 바랍니다.
저의가 공유드리는 연동 모듈에서는 $_SESSION 을 사용하지 않고 있습니다.
https://drive.google.com/drive/folders/1IEnJeixz6SCk2QT7vAumZXnM5KgBDzXT
모바일은 본래 $_SESSION 을 사용하지 않았습니다.
PC 버전 샘플을 모바일에 적용한것 아닌지도 확인 해보셔야 할것 같습니다.
보내주신 셈플 화일이데 $_SESSION값을 넣는 부분이 있습니다. 물론 다른곳에서 사용한 흔적은 없는 것 같습니다.
CST_PLATFORM 값과 CST_MID 값을 강제로 payres.php에 설정하니 정상적으로 값이 처리되고 있습니다.
이부분에 대한 처리방법만 고민좀 하면 될 것 같습니다.
한가지... 결제모듈이 동작을 시작할 때 상품명의 한글이 깨지고 있습니다. 이부분은 어떻게 해결할 수 있을까요? 소스는 모두 utf-8로 설정하여 사용하고 있습니다.
payres.php 에서 넘겨받은 값들을 출력할 때도 상품명과 고객명이 깨지고 있네요.
기본적으로 xpay는 EUC-KR을 사용합니다.
UTF-8을 사용하시는 경우 아래와 같이 사용하시면 됩니다.
- LGD_ENCODING=UTF-8
- 결제창 인증 완료 후 승인요청에 대한 서버응답의 인코딩 설정은 mall.conf 파일에서 UTF-8 사용일 경우 output_UTF8 = 1 을 사용하시면 됩니다. (EUR_KR 은 0 입니다.)
네 감사합니다. 셈플이 동작하고 있으니, 이제 작업을 진행할 수 있겠습니다. 늦은시간까지 감사드립니다. 수고하십시오.
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.