토스페이먼츠 모바일 질문드립니다.
본문
반응형 홈페이지를 사용하고 있는데 토스페이먼츠가 PC에선 결제창이 나오는데 모바일에선 오류화면이 떠서
토스페이먼츠에 문의를 해보니 xpay 모듈이 pc/모바일로 구분되어 있어서 모바일에 맞게 수정을 해야한다고 합니다.
모바일로만 뜨게 하면 될거 같은데 어떤 파일을 수정해야 하나요?
답변 2
어떤 오류인지 알아야 도와드리죠...
아마도 유추해보자면 PC/모바일로 나뉜 영카트를 모바일을 사용안함으로 하고
결제창을 호출하니 PC 결제창이 모바일에서 뜨면서 나는 오류 같은데
어차피 모바일 사용안할거면
/shop/lg/xpay_request.php 파일 여셔서
$xpay = new XPay($configPath, $CST_PLATFORM);
이 코드를 삭제하고
// --- 접속 환경 확인 ---
$agent = strtolower($_SERVER['HTTP_USER_AGENT']);
$is_mobile = (strpos($agent, 'iphone') !== false || strpos($agent, 'android') !== false);
// 플랫폼 구분 (PC / MOBILE)
$platform = $is_mobile ? "MOBILE" : "PC";
// --- XPay 객체 생성 ---
$xpay = new XPay($configPath, $platform);
// Mert Key 설정
$xpay->set_config_value('t'.$LGD_MID, $config['cf_lg_mert_key']);
위 코드로 한번 대체 해보세요..
그래도 안된다면 의뢰로 가셔야 할것 같습니다.
이
!-->
1. LGD_MTRANSFERNOTEURL 값 확인
-
LGD_MTRANSFERNOTEURL
은 결제 완료 후 사용자가 리디렉션되는 URL을 설정하는 부분입니다. PC와 모바일에서 다른 URL을 사용할 수 있습니다. -
모바일 결제에서 오류가 발생하는 경우, 모바일 환경에서 올바르게 동작할 수 있는 URL을 설정해야 합니다.
LGD_MTRANSFERNOTEURL
값이 잘못되었을 가능성이 있습니다.
2. 모바일과 PC의 URL을 다르게 설정하기
-
PC와 모바일에서 사용하는 URL이 다를 수 있으므로,
LGD_MTRANSFERNOTEURL
을 조건에 따라 다르게 설정해야 할 수 있습니다. 예를 들어, 아래와 같이user-agent
를 기반으로 모바일과 PC 환경을 구분하고, 적절한 URL을 설정해보세요.
if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false) {
$LGD_MTRANSFERNOTEURL = "모바일용 결제 완료 URL";
} else {
$LGD_MTRANSFERNOTEURL = "PC용 결제 완료 URL";
정확한 부분은 소스 커스텀을 확인하며 처리가 필요한 부분이 있다보니 참고해 주시고요
직접 처리가 어려우시다면 제작의뢰쪽으로 진행해보시는것도 좋지 않으실까 싶습니다.
답변을 작성하시기 전에 로그인 해주세요.