hyeonbae1
hyeonbae17h ago

LG U+ 토스페이먼트 설정 변경 질문드립니다.

이전에 모바일 버전 카드결제 작업을 진행했는데 오류가 나서 가이드를 보고 returnurl.php 파일의 수정해서 처리했으나 계좌이체에서 같은 이슈가 발생하고 있습니다. 확인이 필요합니다
19 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
Kimoon Lee
Kimoon Lee7h ago
계좌이체에서 같은 이슈 라는게 어떤 이슈인지 추가 설명부탁드립니다.
hyeonbae1
hyeonbae1OP7h ago
네 return_url에 보낸 페이지로 이동하면 아래 항목에서 걸리네요 if (!isset($_SESSION['PAYREQ_MAP'])) { echo "<script>alert('세션이 만료 되었거나 유효하지 않은 요청 입니다. 로그인 후 다시 시도해주세요.');</script>"; $this->run_logout(); // echo "세션이 만료 되었거나 유효하지 않은 요청 입니다."; // return; }
Kimoon Lee
Kimoon Lee7h ago
카드에서 저부분지우신것 아닌가요? 동일하게 처리 부탁드립니다.
hyeonbae1
hyeonbae1OP7h ago
카드에서는 애초에 PAYREQ_MAP 가 넘어와서 따로 지우지는 않았어요 지우고 테스트해 볼게요 잠시만요
Kimoon Lee
Kimoon Lee7h ago
_SESSION 이부분이 문제일겁니다.
hyeonbae1
hyeonbae1OP7h ago
세션 자체가 넘어오지를 않아요 아래 내용에서 세션으로 받아서 모든 걸 처리하게 되어 있어요 $_SESSION['PAYREQ_MAP'];
Kimoon Lee
Kimoon Lee7h ago
네 세션이 원래 넘어 오지 않을겁니다. 예전 샘플을 사용하고 계세요. 카드도 $_SESSION['PAYREQ_MAP']; 이걸 받게 되어 있으신가요? 그럼 똑같은 오류가 날텐데요. https://drive.google.com/file/d/17BCgzkSNtvh5eXDIwESN1TKZ3yr4v8q0/view?usp=share_link
hyeonbae1
hyeonbae1OP7h ago
카드는 잘 돼요 returnurl.php 수정했더니 잘 되네요 세션 넘어오고요
Kimoon Lee
Kimoon Lee7h ago
여기 샘플에 있는 returnURL 파일내용으로 바꿔보세요. 크롬 최신버전에서 세션을 날려버리기 때문에 세션을 사용하는 식으로 구성을 하시면 문제생깁니다.
hyeonbae1
hyeonbae1OP7h ago
보내주신걸로 이미 수정해 놓은 상태에요 returnurl.ph요 컨트롤러에서 아니 저 폼에서 return_url 페이지 컨트롤러로 다시 보내거든요 처리하려고 그 컨트롤러 내용이 세션방식이에요 그 소스 참고할 게 잇을까요 $LGD_PAYKEY = $_REQUEST['LGD_PAYKEY']; 이부분을 $_POST로 변경하면 해결이 되려나요 기존에 REQUEST부분이 POST로 변경이 되어 있던 게 기억이 나네요
Kimoon Lee
Kimoon Lee7h ago
코드를 변경해서 쓰시는거면 저희가 가이드 드리기가 좀 어렵습니다.
hyeonbae1
hyeonbae1OP7h ago
변경을해서 쓰는게아니고요
Kimoon Lee
Kimoon Lee7h ago
그럼 returnURL 소스를 올려주실수 있을까요?
hyeonbae1
hyeonbae1OP7h ago
<html> <head> <script type="text/javascript"> function setLGDResult() { parent.payment_return(); try { } catch (e) { alert(e.message); } } </script> </head> <body onload="setLGDResult()"> <?php $LGD_RESPCODE = $_POST['LGD_RESPCODE']; $LGD_RESPMSG = $_POST['LGD_RESPMSG']; $LGD_PAYKEY = ""; if($LGD_RESPCODE == "0000"){ $LGD_PAYKEY = $_POST['LGD_PAYKEY']; ?> <form method="post" name="LGD_RETURNINFO" id="LGD_RETURNINFO" action="<?=SITE_URL.LANG?>/payment/payment_result"> <input type="hidden" id="LGD_RESPCODE" name="LGD_RESPCODE" value="<?= $LGD_RESPCODE ?>"/> <input type="hidden" id="LGD_RESPMSG" name="LGD_RESPMSG" value="<?= $LGD_RESPMSG ?>"/> <input type="hidden" id="LGD_PAYKEY" name="LGD_PAYKEY" value="<?= $LGD_PAYKEY ?>"/> </form> <?php } else{ echo "LGD_RESPCODE:" + $LGD_RESPCODE + " ,LGD_RESPMSG:" + $LGD_RESPMSG; //인증 실패에 대한 처리 로직 추가 } ?> </body> </html>
Kimoon Lee
Kimoon Lee7h ago
이부분은 문제 없으신거죠? parent.payment_return(); 여기까지 잘호출될것 같은데요.
hyeonbae1
hyeonbae1OP7h ago
흠.. 간헐적인 오류가 생길 수도 잇나요? 지금까지 계속 안 되다가 다시 시도하니까 이번엔 또 되네요 저희 소스에서 사용하니 쿠키나 세션 관련해서 충돌이 있나 확인해 봐야겠네요 추가로 문의할 내용있으면 다시 말씀드릴게요 확인해 주셔서 감사합니다
Kimoon Lee
Kimoon Lee7h ago
그럼 캐시 때문이실것 같습니다.
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.