ssl이 적용된 쇼핑몰에서 네이버페이연동 이미지 url https: 를 http: 로 변경 채택완료
ssl 이 적용된 쇼핑몰이고... 네이버페이 연동중에 수정사항이 왔는데
임의로 수정을 하긴 했는데 맞게 한건지 문제는 없을지 걱정돼서 글 남겨봅니다...;;
/lib/naverpay.lib.php
get_naverpay_item_image_url 부분에서
http: 를 $url 에서 매치 시켜서
true면 '' , false면 'http:' 를 $url 앞에 붙여 주게끔 되어있는데요..
/shop/naverpay/naverpay_item.php?ITEM_ID=it_id값 페이지를 들어가보면
이미지 url 부분에 http:https://~~~~~~.jpg 이런식으로 불러와서 수정이 온거더라구요...;;
구글링해가며 preg_math 부분을 아래 소스처럼 바꿔준건데...
$url에서 http: 가 있는지 매치시켜서
true 면 그냥 $url 을, false 면 http: 를 https: 로 바꿔서 출력되게 했는데
/shop/naverpay/naverpay_item.php?ITEM_ID=it_id값 페이지에서
이미지 url 부분은 http://~~~~.jpg 로 ssl 적용이 안된 이미지로 잘 불러와지기는 합니다..;;
제가 이해한게 맞는지... 저 문법에 문제는 없는지 걱정이 되어 피드백을 받아보고자 올려봅니다..;;
수정해야할 부분이나 보완해야할 부분이 있는지 조언 주시면 감사하겠습니다ㅠㅠㅠ
원본 소스
</p>
<p>//TLS(SSL/HTTPS) 프로토콜 사용 시 네이버페이/네이버 쇼핑 서버가 해당 경로로 접근하여 데이터를 취득할 수 없으므로, 반드시 http 를 사용해야 함
$url = (preg_match('#^http:#', $url) ? '' : 'http:').$url;</p>
<p>
수정 소스
</p>
<p>//TLS(SSL/HTTPS) 프로토콜 사용 시 네이버페이/네이버 쇼핑 서버가 해당 경로로 접근하여 데이터를 취득할 수 없으므로, 반드시 http 를 사용해야 함
// 191107 수정
$url = (preg_match('#^http:#', $url) ? $url : str_replace('https:', 'http:', $url));</p>
<p>
ps.
위 소스처럼 수정하고 네이버페이로 찜하기한 후에
네이버쇼핑 > MY쇼핑 > 찜한상품 가보면... 썸네일이 출력이 안되고있습니다;;ㅠㅠㅠ
답변 3개
$url = (preg_match('#^http(s):#', $url) ? $url : str_replace('https:', 'http:', $url));
이렇게 추가해보세요.
답변에 대한 댓글 4개
강제로 redirect 걸린 상황이라 그런지... 네이버페이쪽에 넘겨줄땐 https 가 붙은채로 넘어가는듯하네요;;ㅠㅠㅠㅠ
원본 코드의 문제가 아닙니다. 원본 코드가 정상적으로 되어 있는 것이구요.
네이버에서 https로 된 이미지 링크를 전달받으면 처리를 못합니다. 꼭 http 프로토콜로 이미지의 링크가 전달되어야만 처리가 가능합니다. 이 문제는 네이버 측의 시스템 설계가 그런 것이라 어쩔 수가 없습니다. 네이버페이를 쓰려는 사람이 맞추는 수밖에 없네요.
문제는, 사이트 자체가 http로 접속하는 경우, https로 몽땅 강제 리다이렉트 시키는 것입니다.
일단, 제 쇼핑몰의 경우는 서버의 /etc/httpd/conf/httpd.conf 파일에서 리다이렉트시키는 구문을 없앴습니다. 직접 서버를 운영하지 않고, 웹호스팅을 하신다면 서버 관리자에게 요청하셔야 하는 문제입니다.
댓글을 작성하려면 로그인이 필요합니다.
가맹점의 상품이미지URL에 대해서만 예외적으로 https:// 로 Redirect 되지 않도록 예외처리 해주시면 이미지 수집이 가능한 점 참고 바랍니다.
답변에 대한 댓글 3개
/shop/naverpay/naverpay_itme.php?ITEM_ID=상품번호
였던가... 들어가면 해당 제품의 정보가 출력되는데
거기에 이미지 경로가
https://http://도메인/~~~~ 이런식으로 프로토콜이 2번씩 붙어서 문제가 됐었습니다.
/lib/naverpay.lib.php 파일에서 get_naverpay_item_image_url 이 함수를 찾아서
https:// 로 불러오는걸 막고 http:// 로 경로를 강제로 바꿔치기했습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
정규식에서 추가해주신 (s) 의 의미를 알 수 있을까요...??
preg_match에서 http: 유무를 체크하는거 같은데...
(s) 를 넣으면 어떻게 달라지는 건가요...??