[네이버페이] 상품이미지URL 일반프로토콜(http://) 유지호출
본문
몇번째 시도인지 모르겠습니다ㅠㅠ
찜등록 쿼리스트링 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 로 설정되어 있을수 있습니다.