네이버페이 연동검수 오류 (찜등록 이미지URL)

네이버페이 연동검수 오류 (찜등록 이미지URL)

QA

네이버페이 연동검수 오류 (찜등록 이미지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)를 바로 넣으면 될까요?

이 질문에 댓글 쓰기 :

답변 1

주소 보니까 http 뒤에 https가 또 붙네요 위 부분을 확인해 보셔야 할듯 합니다.

댓글감사합니다

한가지 여쭤봐도 될까요?
혹 urlencode에서 https를 붙이나요?

get_naverpay_item_image_url() 함수 내에서는
$url = (preg_match('#^http:#', $url) ? '' : 'http:').$url;
이 부분으로 봤을땐 http로 붙는 것 같은데 거기다가

urlencode 얘가 중간에 https를 추가해서 저러는건지ㅠㅠ

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

회원로그인

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