[YC4] 네이버 체크아웃 연동 개발자버전 > 기술자료 | 해피정닷컴

[YC4] 네이버 체크아웃 연동 개발자버전 > 기술자료

본문 바로가기

사이트 내 전체검색

[YC4] 네이버 체크아웃 연동 개발자버전 > 기술자료

영카트 [YC4] 네이버 체크아웃 연동 개발자버전

페이지 정보


첨부파일

본문

 
네이버 체크아웃을 연동하는 방법을 소개합니다.
 
실제 운영하는 사이트에 적용 해보지는 않았으므로 적용후 많은 테스트를 거치시기 바랍니다.
 
이 코드와 관련된 질문은 아래 코멘트로 남겨 주십시오.
 
 
extend/naver_checkout.extend.php 파일을 생성합니다.
 
<?
// 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음
define("_GNUBOARD_", TRUE);
// 체크아웃 사용 : true , 미사용 : false (미사용의 경우 아래 설정은 무용지물임)
$checkout['use'] = true;
// 체크아웃 테스트 : true , 실제운영 : false
$checkout['test'] = true;
// 체크아웃 도메인
if ($checkout['test'])
$checkout['domain'] = "test-checkout.naver.com"; // 테스트 도메인
else
$checkout['domain'] = "checkout.naver.com"; // 실제운영 도메인
// 체크아웃 쇼핑몰아이디
$checkout['shop_id'] = "네이버체크아웃아이디";
// 체크아웃 가맹점 인증키
$checkout['certi_key'] = "네이버에서 알려줍니다";
// 체크아웃 버튼 인증키
$checkout['button_key'] = "네이버에서 알려줍니다";
?>
 
shop/item.php 을 수정합니다.
<?
$arr_option = array();
// 선택옵션 출력
for ($i=1; $i<=6; $i++)
{
// 옵션에 문자가 존재한다면
$str = get_item_options(trim($it["it_opt{$i}_subject"]), trim($it["it_opt{$i}"]), $i);
if ($str)
{
echo "<tr height=25>";
echo "<td>&nbsp;&nbsp;&nbsp; · ".$it["it_opt{$i}_subject"]."</td>";
echo "<td align=center>:</td>";
echo "<td style='word-break:break-all;'>$str</td></tr>\n";
echo "<tr><td colspan=3 height=1 background='$g4[shop_img_path]/dot_line.gif'></td></tr>\n";
if (preg_match("#<select#", $str))
$arr_option[] = "checkOption(form.it_opt{$i}, '".$it["it_opt{$i}_subject"]."')";
}
}
$check_option = implode(" && ", $arr_option);
?>
<? if ($checkout['use']) { ?>
<!-- 네이버 체크아웃 코드 -->
<script type="text/javascript" >
//<![CDATA[
function checkOption(selectBox, optionName)
{
if (selectBox.value == '' || selectBox.value == '선택') {
alert("상품 옵션을 선택해 주세요. (" + optionName + ")");
return false;
}
return true;
}
function buy_nc(url)
{
var form = document.fitem;
var check = <?=isset($check_option)?($check_option?$check_option:1):-1; // 옵션이 있으면 옵션검사 코드, 없으면 무조건 true ?>;
if ( check ) {
// 네이버 체크아웃으로 주문 정보를 등록하는 가맹점 페이지로 이동.
// 해당 페이지에서 주문 정보 등록 후 네이버 체크아웃 주문서 페이지로 이동.
var option = "";
var delimiter = "";
for (var i=1; i<=6; i++) {
if (document.getElementById("it_opt"+i)) {
option += delimiter
+ document.getElementById("it_opt"+i+"_subject").value
+ ":"
+ document.getElementById("it_opt"+i).value;
delimiter = "/";
}
}
var opt = document.createElement('input');
opt.type = 'text';
opt.name = 'option';
opt.value = option;
form.appendChild(opt);
amount_change();
var amount = parseInt(document.getElementById("it_amount").value);

form.action = "./naver_checkout.php";
form.target = "checkout";
form.submit();
} else if (check == -1) {
alert("상품옵션의 변수가 제대로 선언되지 않아 오류가 발생하였습니다.");
}
return false;
}
function wishlist_nc(url)
{
// 네이버 체크아웃으로 찜 정보를 등록하는 가맹점 페이지 팝업 창 생성.
// 해당 페이지에서 찜 정보 등록 후 네이버 체크아웃 찜 페이지로 이동.
window.open(url,"wishlist","scrollbars=yes,width=400,height=267");
var form = document.fitem;
form.action = url;
form.target = "wishlist";
form.submit();
return false;
}
function not_buy_nc()
{
alert("죄송합니다. NAVER Checkout으로 구매가 불가한 상품입니다.");
return false;
}
//]]>
</script>
<?
// 재고수량 구함
$stock_qty = get_it_stock_qty($it_id);
$is_buy_button = $stock_qty ? "Y" : "N"; // 체크아웃에서 사용
if (get_amount($it) <= 0) $is_buy_button = "N";
?>
<br />
<iframe name="checkout" style="display:none;"></iframe>
<script type="text/javascript" src="http://checkout.naver.com/customer/js/checkoutButton2.js" charset="UTF-8"></script>
<script type="text/javascript" >
//<![CDATA[
nhn.CheckoutButton.apply({
BUTTON_KEY:"<?=$checkout['button_key']?>", // 체크아웃에서 제공받은 버튼 인증 키 입력
TYPE: "A", // 버튼 모음 종류 설정
COLOR: 1, // 버튼 모음의 색 설정
COUNT: 2, // 버튼 개수 설정. 구매하기 버튼만 있으면(장바구니 페이지) 1, 찜하기 버튼도 있으면(상품 상세 페이지) 2를 입력.
ENABLE: "<?=$is_buy_button?>", // 품절 등의 이유로 버튼 모음을 비활성화할 때에는 "N" 입력
BUY_BUTTON_HANDLER: <?=($is_buy_button=="Y")?"buy_nc":"not_buy_nc";?>, // 구매하기 버튼 이벤트 Handler 함수 등록. 품절인 경우 not_buy_nc 함수 사용
WISHLIST_BUTTON_HANDLER:wishlist_nc, // 찜하기 버튼 이벤트 Handler 함수 등록
WISHLIST_BUTTON_LINK_URL:"<?=$g4[shop_path]?>/naver_wishlist.php", // 찜하기 팝업 링크 주소
"":""
});
//]]>
</script>
<!-- /네이버 체크아웃 코드 -->
<? } ?>
 
shop/cartsub.inc.php 를 수정합니다.
$option = "";
$delimiter = "";
for ($k=1; $k<=6; $k++) {
if ($row["it_opt{$k}"]) {
$option .= $delimiter . $row["it_opt{$k}_subject"] . ":" . $row["it_opt{$k}"];
$delimiter = "/";
}
}
$option = get_text($option);
$arr_it_id[] = "it_id=".$row[it_id];
if ($i > 0)
echo "<tr><td colspan='$colspan' height=1 bgcolor=#E7E9E9></td></tr>";

echo "<tr>";
echo "<td align=left style='padding:5px;'>$image</td><td>";
echo "\n<input type=hidden name='ct_id[$i]' value='$row[ct_id]'>";
echo "\n<input type=hidden name='it_id[$i]' value='$row[it_id]'>";
echo "\n<input type=hidden name='option[$i]' value='$option'>";
echo "\n<input type=hidden name='it_amount[$i]' value='$row[ct_amount]'>";
//echo "\n<input type=hidden name='ap_id[$i]' value='$row[ap_id]'>";
//echo "\n<input type=hidden name='bi_id[$i]' value='$row[bi_id]'>";
echo "\n<input type=hidden name='it_name[$i]' value='".get_text($row[it_name])."'>";
echo $it_name;
echo "</td>\n";
<? if ($checkout['use']) { ?>
<!-- 네이버 체크아웃 코드 -->
<script type="text/javascript" >
//<![CDATA[
function checkOption(selectBox, nonSelectedIndex, optionName)
{
if (selectBox.selectedIndex == nonSelectedIndex) {
alert("상품 옵션을 선택해 주세요. (" + optionName + ")");
return false;
}
return true;
}
function buy_nc(url)
{
var form = document.frmcartlist;
var check = 1;
if ( check ) {
form.action = "./naver_checkout.php";
form.target = "checkout";
form.submit();
}
return false;
}
function wishlist_nc(url)
{
window.open(url,"wishlist","scrollbars=yes,width=400,height=267");
var form = document.frmcartlist;
form.action = url;
form.target = "wishlist";
form.submit();
return false;
}
function not_buy_nc()
{
alert("죄송합니다. NAVER Checkout으로 구매가 불가한 상품입니다.");
return false;
}
//]]>
</script>
<?
if ($goods_count > -1) $is_buy_button = "Y";
?>
<br />
<iframe name="checkout" style="display:none;"></iframe>
<script type="text/javascript" src="http://checkout.naver.com/customer/js/checkoutButton2.js" charset="UTF-8"></script>
<script type="text/javascript" >//<![CDATA[
nhn.CheckoutButton.apply({
BUTTON_KEY:"<?=$checkout['button_key']?>", // 체크아웃에서 제공받은 버튼 인증 키 입력
TYPE: "A", // 버튼 모음 종류 설정
COLOR: 1, // 버튼 모음의 색 설정
COUNT: 2, // 버튼 개수 설정. 구매하기 버튼만 있으면(장바구니 페이지) 1, 찜하기 버튼도 있으면(상품 상세 페이지) 2를 입력.
ENABLE: "<?=$is_buy_button?>", // 품절 등의 이유로 버튼 모음을 비활성화할 때에는 "N" 입력
BUY_BUTTON_HANDLER: <?=($is_buy_button=="Y")?"buy_nc":"not_buy_nc";?>, // 구매하기 버튼 이벤트 Handler 함수 등록. 품절인 경우 not_buy_nc 함수 사용
WISHLIST_BUTTON_HANDLER:wishlist_nc, // 찜하기 버튼 이벤트 Handler 함수 등록
WISHLIST_BUTTON_LINK_URL:"<?=$g4[shop_path]?>/naver_wishlist.php", // 찜하기 팝업 링크 주소
"":""
});
//]]>
</script>
<!-- /네이버 체크아웃 코드 -->
<? } ?>
 
 
shop/naver_checkout.php 을 생성합니다.
shop/naver_wishlist.php 을 생성합니다.




자료인용
http://sir.co.kr/bbs/board.php?bo_table=yc4_tiptech&wr_id=1335 

댓글목록

등록된 댓글이 없습니다.


Total 123건 4 페이지
  • RSS
기술자료 목록
63
영카트   13385  2014-08-05 18:57  
62
영카트   14070  2014-08-03 18:23  
61
영카트   13777  2014-07-17 15:54  
60
영카트   16969  2014-06-16 05:40 ~ 2017-02-09 00:00  
59
영카트   23739  2014-06-14 15:19  
58
영카트   13772  2014-05-22 19:53  
57
영카트   12648  2014-02-19 12:42  
56
영카트   17014  2014-02-19 12:37 ~ 2018-05-24 19:34  
55
영카트   16490  2013-12-17 13:54  
54
영카트   12674  2013-09-24 16:44  
53
영카트   11467  2013-06-23 01:49  
52
영카트   12201  2013-05-22 14:32  
51
영카트   18179  2013-03-13 14:20 ~ 2023-01-27 12:48  
50
영카트   13778  2013-01-09 17:57  
49
영카트   20776  2013-01-07 18:34  
열람
영카트   27162  2012-07-16 20:51  
47
영카트   15774  2012-07-16 20:41  
46
영카트   17145  2012-04-07 14:13 ~ 2015-01-23 00:00  
45
영카트   12872  2012-03-02 13:03  
44
영카트   12808  2012-01-18 19:51  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2024 해피정닷컴. All Rights Reserved.