테스트 사이트 - 개발 중인 베타 버전입니다

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

coDribble 6년 전 조회 4,246

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개

채택된 답변
+20 포인트
e
6년 전

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

이렇게 추가해보세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 4개

c
coDribble
6년 전
답변감사드립니다. 이제야 봤네요;;

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

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

(s) 를 넣으면 어떻게 달라지는 건가요...??
e
eyekiss
6년 전
http 또는 https 를 찾는 겁니다.
c
coDribble
6년 전
@eyekiss 이제야 봤네요;; 답변 감사합니다~! 저렇게 수정해도 뜨진 않는데...

강제로 redirect 걸린 상황이라 그런지... 네이버페이쪽에 넘겨줄땐 https 가 붙은채로 넘어가는듯하네요;;ㅠㅠㅠㅠ
c
codewave
5년 전
시간은 지났으나, 저도 같은 문제로 이미지가 뜨지 않는 문제를 겪었기 때문에 다른 분들께 참고가 되도록 올립니다.
원본 코드의 문제가 아닙니다. 원본 코드가 정상적으로 되어 있는 것이구요.

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

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

댓글을 작성하려면 로그인이 필요합니다.

4년 전

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

c
coDribble
4년 전
답변 감사드립니다~!! redirect 이슈때문에 하도 많이 겪었네요... 네이버페이 연동할때 썸네일 이슈는 ㅎㅎ;;
빽짱구
4년 전
어떻게 해결하셨나요?
c
coDribble
4년 전
제가 겪었던 경우에는 redirect도 문제였지만... 네이버쪽에 이미지 전달시 출력되는 경로가 문제였어서... 그 부분만 수정했었습니다..

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

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

거기에 이미지 경로가

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


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

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

댓글을 작성하려면 로그인이 필요합니다.

c
5년 전

@YHLEE

 

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

 

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

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

 

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

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인