네이버페이 연동검수 오류 (찜등록 이미지URL)
본문
네이버페이 연동중인데
2. 찜등록 쿼리스트링 내 유효하지 않은 상품이미지URL이 전달되고 있습니다.
아래 참고하시어 찜등록 쿼리스트링 및 상품정보XML 모두 유효한 상품이미지URL이 전달되도록 수정 부탁드립니다.
...
ITEM_IMAGE:http:https://도메인.com/data/item/1607576003/511500.jpg,
ITEM_THUMB :http:https://도메인.com/data/item/1607576003/511500.jpg,
...
이런 답변이 왔습니다.
▼ lib>naverpay.lib.php 파일 get_naverpay_item_image_url($it_id) 부분입니다.
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);
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;
}
▼ shop/naverpay/naverpay_item.php 중 상품정보 부분입니다.
for($i=0; $i<$count; $i++) {
$it_id = $_POST['it_id'][$i];
// 상품정보
$sql = " select * from {$g5['g5_shop_item_table']} where it_id = '$it_id' ";
$it = sql_fetch($sql);
if(!$it['it_id'])
alert_close('상품정보가 존재하지 않습니다.');
$id = urlencode($it['it_id']);
$name = urlencode($it['it_name']);
$description = urlencode($it['it_basic']);
$price = get_price($it);
$image = urlencode(get_naverpay_item_image_url($it_id));
$item_url = urlencode(G5_SHOP_URL.'/item.php?it_id='.$it_id);
$item .= '&ITEM_ID='.$id;
if($it['ec_mall_pid'])
$item .= '&EC_MALL_PID='.urlencode($it['ec_mall_pid']);
$item .= '&ITEM_NAME='.$name;
$item .= '&ITEM_DESC='.$description;
$item .= '&ITEM_UPRICE='.$price;
$item .= '&ITEM_IMAGE='.$image;
$item .= '&ITEM_THUMB='.$image;
$item .= '&ITEM_URL='.$item_url;
}
찾아보니 urlencode가 문자열을 url로 인코딩하는 함수라고 하더라구요
$image = urlencode(get_naverpay_item_image_url($it_id));
이부분이 문제인듯한데 어떻게 수정해야할지 모르겠습니다
그냥 urlencode() 없애고 get_naverpay_item_image_url($it_id)를 바로 넣으면 될까요?
!-->!-->
답변을 작성하시기 전에 로그인 해주세요.