네이버페이 질문입니다.
underzombie
6년 전
조회 3,451
말씀 드리기는 좀 그렇지만 보드 기반으로 네이버페이를 사용하는것이 아닌 독립몰 기반으로 네이버페이를 작업하고 있습니다
그런데 작업중에 오류 하나 때문에 계속 진행이 안되는것이 답답해서 질문을 드립니다
"error":"FAIL:[OTHER_ERR] Required String parameter 'SHOP_ID' is not present10614346"
네이버페이 주문서 쪽에 데이터를 전송해주는 단계에서 오류가 나는것 같은데 네이버쪽에도 물어보니 메뉴얼을 참조 하라는 말 밖에는 안와서 ㅠㅠㅠ 부탁드립니다
</p>
<p> </p>
<p><?</p>
<p>
//print_a($_POST);</p>
<p>
$pre_link = empty($_POST["pre_link"])?die("잘못된 접근입니다."):$_POST["pre_link"];
$idx = empty($_POST["idx"])?die("잘못된 접근입니다."):$_POST["idx"];
$option_one_price = empty($_POST["option_one_price"])?"":explode("|||",substr($_POST["option_one_price"],0,-3));
$option_idx_arr = empty($_POST["option_idx_arr"])?"":explode("|||",substr($_POST["option_idx_arr"],0,-3));
$option_quantity = empty($_POST["option_quantity"])?"":explode("|||",substr($_POST["option_quantity"],0,-3));
</p>
<p> require CFG_MODEL_PATH_ABS."/class.product.php";
$cls_product = new product();
//네이버페이
require CFG_MODEL_PATH_ABS."/class.naverpay.php";</p>
<p> $shippingType = 'FREE';
if ($shippingType == 'PAYED') {
$shippingPrice = 2500;
}else{
$shippingPrice = 0;
}</p>
<p> $sp = '&';
$encode = "&page=product_view&idx=".$idx;</p>
<p> $encode = urlencode($encode);</p>
<p> if($pre_link == "shop")
$backUrl = "<a href="http://".$_SERVER["HTTP_HOST"]."/?folder=shop".$encode;" target="_blank" rel="noopener noreferrer">http://".$_SERVER["HTTP_HOST"]."/?folder=shop".$encode;</a>
else
$backUrl = "<a href="http://".$_SERVER["HTTP_HOST"]."/?folder=mypage&page=order_cart";" target="_blank" rel="noopener noreferrer">http://".$_SERVER["HTTP_HOST"]."/?folder=mypage&page=order_cart";</a></p>
<p>$queryString = 'SHOP_ID='.urlencode(NPAY_SHOP_ID);
$queryString .= '&CERTI_KEY='.urlencode(NPAY_CERT_KEY);
$queryString .= '&SHIPPING_TYPE='.$shippingType;
$queryString .= '&SHIPPING_PRICE='.$shippingPrice;
$queryString .= '&RESERVE1=&RESERVE2=&RESERVE3=&RESERVE4=&RESERVE5=';
$queryString .= '&BACK_URL='.$backUrl;
$queryString .= '&SA_CLICK_ID='.$_COOKIE["NVADID"]; //CTS
// CPA 스크립트 가이드 설치 업체는 해당 값 전달
//$queryString .= '&CPA_INFLOW_CODE='.urlencode($_COOKIE["CPAValidator"]);
//$queryString .= '&NAVER_INFLOW_CODE='.urlencode($_COOKIE["NA_CO"]);
$totalMoney = 0;</p>
<p>echo $queryString;</p>
<p>$row = $cls_product->get_view($idx);</p>
<p>$id = $row["idx"];
$name = $row["name"];
$naver_id = $row["navershop_id"];
$uprice = $row["price"];
$count = count($row["idx"]);
$tprice = $uprice * $count;
$option = "";</p>
<p>//echo $id;
$item = new ItemStack($id, $name, $tprice, $uprice, $option, $count);
$totalMoney += $tprice;
$queryString .= '&'.$item->makeQueryString();</p>
<p>
//}</p>
<p>$totalPrice = (int)$totalMoney + (int)$shippingPrice;
$queryString .= '&TOTAL_PRICE='.$totalPrice;</p>
<p>
echo ($queryString."
\n")."
";</p>
<p>$req_addr = 'ssl://test-pay.naver.com';
$req_url = 'POST /customer/api/order.nhn HTTP/1.1'; // utf-8
// $req_url = 'POST /customer/api/CP949/order.nhn HTTP/1.1'; // euc-kr
$req_host = 'test-pay.naver.com';
$req_port = 443;
$nc_sock = @fsockopen($req_addr, $req_port, $errno, $errstr);</p>
<p>if($nc_sock)
{
fwrite($nc_sock, $req_url."\r\n" );
fwrite($nc_sock, "Host: ".$req_host.":".$req_port."\r\n" );
fwrite($nc_sock, "Content-type: application/x-www-form-urlencoded; charset=utf8\r\n");
fwrite($nc_sock, "Content-length: ".strlen($queryString)."\r\n");
fwrite($nc_sock, "Accept: */*\r\n");
fwrite($nc_sock, "\r\n");
fwrite($nc_sock, $queryString."\r\n");
fwrite($nc_sock, "\r\n");
while(!feof($nc_sock))
{</p>
<p> $header=fgets($nc_sock,4096);
echo $header;</p>
<p> $headers .= $header;</p>
<p> echo $headers;
</p>
<p> if($header=="\r\n")
{
break;
}</p>
<p> else
{
$headers .= $header;
}
} </p>
<p> while(!feof($nc_sock))</p>
<p> {
$bodys.=fgets($nc_sock,4096);
}</p>
<p> fclose($nc_sock);</p>
<p> $resultCode = substr($header,9,3);</p>
<p> if ($resultCode == 200)
{
// success
$orderId = $bodys;
}
else
{
// fail
return_error2json($bodys);
} </p>
<p>
}</p>
<p> else
{
echo "$errstr ($errno)
\n";
exit(-1);
//에러처리
}</p>
<p> echo ($orderId."
\n");</p>
<p> </p>
<p>//$orderUrl = "<a href="https://test-pay.naver.com/customer/order.nhn?ORDER_ID=".$orderId."&SHOP_ID=".urlencode(NPAY_SHOP_ID)."&TOTAL_PRICE=".$totalPrice;" target="_blank" rel="noopener noreferrer">https://test-pay.naver.com/customer/order.nhn?ORDER_ID=".$orderId."&SHOP_ID=".urlencode(NPAY_SHOP_ID)."&TOTAL_PRICE=".$totalPrice;</a></p>
<p>if($resultCode == 200){
die(json_encode(array('error'=>'', 'ORDER_ID'=>$orderId, 'SHOP_ID'=>urlencode(NPAY_SHOP_ID), 'TOTAL_PRICE'=>$totalPrice)));
}else{
die(json_encode(array('error'=>'error')));
}</p>
<p>//echo $orderUrl;</p>
<p>?></p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
답변을 작성하려면 로그인이 필요합니다.
로그인