ssl이 적용된 쇼핑몰에서 네이버페이연동 이미지 url https: 를 http: 로 변경

ssl이 적용된 쇼핑몰에서 네이버페이연동 이미지 url https: 를 http: 로 변경

QA

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 적용이 안된 이미지로 잘 불러와지기는 합니다..;;

 

제가 이해한게 맞는지... 저 문법에 문제는 없는지 걱정이 되어 피드백을 받아보고자 올려봅니다..;;

 

수정해야할 부분이나 보완해야할 부분이 있는지 조언 주시면 감사하겠습니다ㅠㅠㅠ

 

원본 소스


//TLS(SSL/HTTPS) 프로토콜 사용 시 네이버페이/네이버 쇼핑 서버가 해당 경로로 접근하여 데이터를 취득할 수 없으므로, 반드시 http 를 사용해야 함
$url = (preg_match('#^http:#', $url) ? '' : 'http:').$url;

 

수정 소스


//TLS(SSL/HTTPS) 프로토콜 사용 시 네이버페이/네이버 쇼핑 서버가 해당 경로로 접근하여 데이터를 취득할 수 없으므로, 반드시 http 를 사용해야 함
// 191107 수정
$url = (preg_match('#^http:#', $url) ? $url : str_replace('https:', 'http:', $url));

 

 

ps. 

위 소스처럼 수정하고 네이버페이로 찜하기한 후에

네이버쇼핑 > MY쇼핑 > 찜한상품 가보면... 썸네일이 출력이 안되고있습니다;;ㅠㅠㅠ

이 질문에 댓글 쓰기 :

답변 3

$url = (preg_match('#^http(s):#', $url) ? $url : str_replace('https:', 'http:', $url));

이렇게 추가해보세요.

답변감사드립니다. 이제야 봤네요;;

정규식에서 추가해주신 (s) 의 의미를 알 수 있을까요...??

preg_match에서 http: 유무를 체크하는거 같은데...

(s) 를 넣으면 어떻게 달라지는 건가요...??

  이제야 봤네요;; 답변 감사합니다~! 저렇게 수정해도 뜨진 않는데...

강제로 redirect 걸린 상황이라 그런지... 네이버페이쪽에 넘겨줄땐 https 가 붙은채로 넘어가는듯하네요;;ㅠㅠㅠㅠ

시간은 지났으나, 저도 같은 문제로 이미지가 뜨지 않는 문제를 겪었기 때문에 다른 분들께 참고가 되도록 올립니다.
원본 코드의 문제가 아닙니다. 원본 코드가 정상적으로 되어 있는 것이구요.

네이버에서 https로 된 이미지 링크를 전달받으면 처리를 못합니다. 꼭 http 프로토콜로 이미지의 링크가 전달되어야만 처리가 가능합니다. 이 문제는 네이버 측의 시스템 설계가 그런 것이라 어쩔 수가 없습니다. 네이버페이를 쓰려는 사람이 맞추는 수밖에 없네요.

문제는, 사이트 자체가 http로 접속하는 경우, https로 몽땅 강제 리다이렉트 시키는 것입니다.
일단, 제 쇼핑몰의 경우는 서버의 /etc/httpd/conf/httpd.conf 파일에서 리다이렉트시키는 구문을 없앴습니다. 직접 서버를 운영하지 않고, 웹호스팅을 하신다면 서버 관리자에게 요청하셔야 하는 문제입니다.

 

한참 지났음에도 불구하고 답변주셔서 감사드립니다!

 

그러면 현재 운영중인 사이트가 SSL이 심어져있는 경우라 해도 네이버페이쪽으로 썸네일을 넘겨줄때는 무조건 http:// 처리해서 넘겨줘야한다는 말씀이신가요..??
 

그리고 redirect로 강제로 https:// 를 걸어놓은 경우에는... 리다이렉트를 없애야 한다하셨는데...

 

그럼 SSL은 회원가입작성이랑 주문서작성 페이지에만 심으면 되는건가요...??

가맹점의 상품이미지URL에 대해서만 예외적으로 https:// 로 Redirect 되지 않도록 예외처리 해주시면 이미지 수집이 가능한 점 참고 바랍니다.

제가 겪었던 경우에는 redirect도 문제였지만... 네이버쪽에 이미지 전달시 출력되는 경로가 문제였어서... 그 부분만 수정했었습니다..

/shop/naverpay/naverpay_itme.php?ITEM_ID=상품번호

였던가... 들어가면 해당 제품의 정보가 출력되는데

거기에 이미지 경로가

https://http://도메인/~~~~ 이런식으로 프로토콜이 2번씩 붙어서 문제가 됐었습니다.


/lib/naverpay.lib.php 파일에서 get_naverpay_item_image_url 이 함수를 찾아서

https:// 로 불러오는걸 막고 http:// 로 경로를 강제로 바꿔치기했습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 226
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT