[네이버페이] 상품이미지URL 일반프로토콜(http://) 유지호출

[네이버페이] 상품이미지URL 일반프로토콜(http://) 유지호출

QA

[네이버페이] 상품이미지URL 일반프로토콜(http://) 유지호출

답변 3

본문

몇번째 시도인지 모르겠습니다ㅠㅠ

찜등록 쿼리스트링 ITEM_IMAGE, ITEM_THUMB 항목에 전달되는 상품이미지URL 문제가 있습니다.

 

이전 요청드린 상품이미지URL은 접근 확인되었으나, 외 다수 상품의 이미지URL 접근에 실패하고 있어 메일드립니다.

상품이미지 혹은 상품정보XML URL을 일반(http://)으로 요청 시, TLS/SSL(https://)로 Redirect 되는 요청 횟수가 많아 접근에 실패하는 것으로 확인됩니다.

또한, 일부 TLS/SSL 인증서의 경우 네이버페이 서비스에서 데이터 수집에 실패할 수 있어 상품이미지와 상품정보XML URL에 대해 일반 프로토콜로 요청 시 TLS/SSL(https://)가 아닌 ​일반프로토콜 (http://)로 유지·호출되도록 수정 부탁드립니다.

 

라는 답변을 받았습니다

 

기존 lib/naverpay.lib.php 파일에서 URL에 http:https://도메인... 으로 중복되는 부분이 있어서


function get_naverpay_item_image_url($it_id)
{
    global $g5;
 
    $sql = " select it_id, it_img1, it_img2, it_img3, it_img4, it_img5, it_img6, it_img7, it_img8, it_img9, it_img10 from {$g5['g5_shop_item_table']} where it_id = '$it_id' ";
    $row = sql_fetch($sql);
 
    if(!$row['it_id'])
        return '';
 
    $url = '';
 
    for($i=1;$i<=10; $i++) {
        $file = G5_DATA_PATH.'/item/'.$row['it_img'.$i];
        if(is_file($file) && $row['it_img'.$i]) {
            $size = @getimagesize($file);
            if($size[2] < 1 || $size[2] > 3)
                continue;
 
            $url = str_replace(G5_PATH, G5_URL, $file);
 
            //추가한 부분
            $url = preg_replace('#^https:#', 'http:', $url);
 
            //if( isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) ){
            //    $url = preg_replace('#^https:#', '', $url);
            //    
            //    $port_str = ':'.$_SERVER['SERVER_PORT'];
            //    
            //    if( strpos($url, $port_str) !== false ){
            //        $url = str_replace($port_str, '', $url);
            //    }
            //}
            
            //TLS(SSL/HTTPS) 프로토콜 사용 시 네이버페이/네이버 쇼핑 서버가 해당 경로로 접근하여 데이터를 취득할 수 없으므로, 반드시 http 를 사용해야 함
            //$url = (preg_match('#^http:#', $url) ? '' : 'http:').$url;
 
            break;
        }
    }
 
    return $url;
}

이렇게 수정했는데 혹시 주석처리한 if부분때문일까요?

if문을 살리고 하단에 $url = preg_replace('#^https:#', 'http:', $url);로 수정하면 될런지요ㅠㅠ

이 질문에 댓글 쓰기 :

답변 3

리다이렉트가 많다는 거 보니

 

http:// 로 시작하는 도메인주소가 자동으로 https:// 로 변경되는게 설정되어

 

있지 않을까 싶네요

 

그렇다면 저렇게 주소를 바꿔도 https:// 로 다시 접근하기 때문에 리다이렉트가 많다고 하는거 같습니다.

https 전환하는 과정에서 http로 다시 요청하고 다시 https 요청하고 하는 문제로 보여집니다.

영카트 내에는 없을거 같고

 

.htaccess

에서 rewrite 설정되어 있거나

 

아파치 설정중에 rewrite 로 설정되어 있을수 있습니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
filter #http ×
전체 27
© SIRSOFT
현재 페이지 제일 처음으로