diff --git a/adm/shop_admin/configform.php b/adm/shop_admin/configform.php index 1925db54e..dea227d3d 100644 --- a/adm/shop_admin/configform.php +++ b/adm/shop_admin/configform.php @@ -781,10 +781,11 @@ if(!$default['de_kakaopay_cancelpwd']){ - 네이버페이, 카카오페이는 테스트결제가 되지 않습니다."); ?> + 네이버페이, 카카오페이는 테스트결제가 되지 않습니다.\n애플페이는 IOS 기기에 모바일결제만 가능합니다."); ?> >
>
- > + >
+ > diff --git a/adm/shop_admin/orderlist.php b/adm/shop_admin/orderlist.php index 9514c4289..4aed6536a 100644 --- a/adm/shop_admin/orderlist.php +++ b/adm/shop_admin/orderlist.php @@ -222,7 +222,7 @@ if( function_exists('pg_setting_check') ){ > > - + > diff --git a/css/default_shop.css b/css/default_shop.css index 6e7663e9e..aa65ca320 100644 --- a/css/default_shop.css +++ b/css/default_shop.css @@ -1148,6 +1148,7 @@ box-shadow: 1px 2px 2px #eee;} .sod_frm_mobile #m_sod_frm_paysel .inicis_lpay{background:url(../img/lpay_logo.png) no-repeat;width:35px;height:12px;overflow:hidden;text-indent:-999px;display:inline-block;background-size:100%} .sod_frm_mobile #m_sod_frm_paysel .inicis_kakaopay{background:url(../img/kakao.png) no-repeat 50% 50% #f4dc34;border-radius:30px;height:22px;width:74px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:35px auto} .sod_frm_mobile #m_sod_frm_paysel .kakaopay_icon{background:url(../img/kakao.png) no-repeat 50% 50% #f4dc34;border-radius:30px;height:22px;width:74px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:35px auto} +.sod_frm_mobile #m_sod_frm_paysel .applepay_icon{background:url(../img/ico-mobile-applepay.png) no-repeat 50% 50% #fff;border-radius:30px;height:23px;width:50px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:35px auto} .sod_frm_mobile #m_sod_frm_paysel .samsung_pay{margin-left:-23px;background:url(../img/samsungpay.png) no-repeat 24px 3px;height:25px;width:106px;display:inline-block;overflow:hidden;text-indent:-999px} .sod_frm_mobile #sod_frm_pay{border-top:1px solid #f3f3f3} .sod_frm_mobile #sod_frm_pay h2{margin:10px 0;font-size:1.25em} diff --git a/css/mobile_shop.css b/css/mobile_shop.css index c6bc83d20..71ec6c388 100644 --- a/css/mobile_shop.css +++ b/css/mobile_shop.css @@ -220,14 +220,15 @@ box-shadow: 0 0 6px rgba(0,0,0,0.2);} #m_sod_frm_paysel h3{background:#fff;padding:15px 10px ;border:1px solid #e3e5e8;border-bottom:0} #m_sod_frm_paysel ul {margin:0 0 ;background:#fff;padding:10px;border:1px solid #e3e5e8} #m_sod_frm_paysel ul:after {display:block;visibility:hidden;clear:both;content:""} -#m_sod_frm_paysel li {float:left;padding:5px ;width:46%;height:25px} +#m_sod_frm_paysel li {float:left;padding:5px;width:46%;height:35px} #m_sod_frm_paysel .KPAY{background:url('../img/kpay.png') no-repeat;width:37px;height:15px;overflow:hidden;text-indent:-999px;display:inline-block;background-size:100%} #m_sod_frm_paysel .PAYNOW{background:url('../img/paynow.png') no-repeat;width:46px;height:15px;overflow:hidden;text-indent:-999px;display:inline-block;background-size:100%;} -#m_sod_frm_paysel .PAYCO{background:url('../img/payco.png') no-repeat 1px;width:46px;height:15px;overflow:hidden;text-indent:-999px;display:inline-block;background-size:100%;} +#m_sod_frm_paysel .PAYCO{background:url('../img/payco.png') no-repeat 1px;width:50px;height:15px;overflow:hidden;text-indent:-999px;display:inline-block;background-size:100%} #m_sod_frm_paysel .inicis_lpay{background:url('../img/lpay_logo.png') no-repeat;width:35px;height:12px;overflow:hidden;text-indent:-999px;display:inline-block;background-size:100%;} -#m_sod_frm_paysel .inicis_kakaopay{background:url('../img/kakao.png') no-repeat 50% 50% #ffeb00;border-radius:30px;height:22px;width:74px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:35px auto} -#m_sod_frm_paysel .kakaopay_icon{background:url('../img/ico-mobile-kakaopay.png') no-repeat #fff;height:15px;width:43px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:35px auto} -#m_sod_frm_paysel .naverpay_icon{background:url('../img/ico-mobile-naverpay.png') no-repeat #fff;height:15px;width:40px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:35px auto} +#m_sod_frm_paysel .inicis_kakaopay{background:url('../img/kakao.png') no-repeat 50% 50% #ffeb00;border-radius:30px;height:26px;width:74px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:36px auto} +#m_sod_frm_paysel .kakaopay_icon{background:url('../img/ico-mobile-kakaopay.png') no-repeat #fff;height:23px;width:63px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:45px auto;background-position: 10% 40%} +#m_sod_frm_paysel .naverpay_icon{background:url('../img/ico-mobile-naverpay.png') no-repeat #fff;height:23px;width:60px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:45px auto;background-position: 0% 30%} +#m_sod_frm_paysel .applepay_icon{background:url('../img/ico-mobile-applepay.png') no-repeat #fff;height:30px;width:60px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:43px auto} #m_sod_frm_paysel .samsung_pay{margin-left:-23px;background:url('../img/samsungpay.png') no-repeat 24px 3px;height:25px;width:106px;display:inline-block;overflow:hidden;text-indent:-999px} #sod_frm_pay{padding:10px;;border-top:1px solid #f3f3f3} diff --git a/extend/version.extend.php b/extend/version.extend.php index 0cef9631c..f741400af 100644 --- a/extend/version.extend.php +++ b/extend/version.extend.php @@ -4,5 +4,5 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 // 자바스크립트와 CSS 파일을 새로 다운로드 하도록 파일의 끝에 년월일 지정 // 예) https://도메인/css/default.css?ver=220620 // 예) https://도메인/js/common.js?ver=220620 -define('G5_CSS_VER', '220620'); +define('G5_CSS_VER', '2303229'); define('G5_JS_VER', '2210172'); diff --git a/img/ico-mobile-applepay.png b/img/ico-mobile-applepay.png new file mode 100644 index 000000000..5f592c13a Binary files /dev/null and b/img/ico-mobile-applepay.png differ diff --git a/lib/shop.lib.php b/lib/shop.lib.php index 2a29263c5..fb0b0b033 100644 --- a/lib/shop.lib.php +++ b/lib/shop.lib.php @@ -2769,6 +2769,8 @@ function check_pay_name_replace($payname, $od=array(), $is_client=0){ return '네이버페이_NHNKCP'.$add_str; } else if( isset($od['od_other_pay_type']) && ($od['od_other_pay_type'] === 'OT13' || $od['od_other_pay_type'] === 'NHNKCP_KAKAOMONEY') ){ return '카카오페이_NHNKCP'.$add_str; + } else if( isset($od['od_other_pay_type']) && $od['od_other_pay_type'] === 'OT21' ){ + return '애플페이_NHNKCP'.$add_str; } return 'PAYCO'.$add_str; diff --git a/mobile/shop/kcp/easypay_form.1.php b/mobile/shop/kcp/easypay_form.1.php index bd978e9de..2678bc0b1 100644 --- a/mobile/shop/kcp/easypay_form.1.php +++ b/mobile/shop/kcp/easypay_form.1.php @@ -29,6 +29,7 @@ $param_opt_3 = isset($_REQUEST['param_opt_3']) ? clean_xss_tags($_REQUEST['param + diff --git a/mobile/shop/kcp/order_approval_form.php b/mobile/shop/kcp/order_approval_form.php index 7dad46432..d42b865a9 100644 --- a/mobile/shop/kcp/order_approval_form.php +++ b/mobile/shop/kcp/order_approval_form.php @@ -67,6 +67,7 @@ include_once('./_common.php'); $payco_direct = isset($_POST["payco_direct"]) ? $_POST["payco_direct"] : ''; // PAYCO 결제창 호출 $naverpay_direct = isset($_POST["naverpay_direct"]) ? $_POST["naverpay_direct"] : ''; // NAVERPAY 결제창 호출 $kakaopay_direct = isset($_POST["kakaopay_direct"]) ? $_POST["kakaopay_direct"] : ''; // KAKAOPAY 결제창 호출 + $applepay_direct = isset($_POST["applepay_direct"]) ? $_POST["applepay_direct"] : ''; // APPLEPAY 결제창 호출 /* * 기타 파라메터 추가 부분 - Start - @@ -157,7 +158,7 @@ include_once('./_common.php'); { var v_frm = document.sm_form; - + layer_cont_obj = document.getElementById("content"); layer_receipt_obj = document.getElementById("layer_receipt"); @@ -165,9 +166,16 @@ include_once('./_common.php'); layer_receipt_obj.style.display = "block"; v_frm.target = "frm_receipt"; + + // IOS 환경의 경우 iframe에서 네이버페이와 애플페이의 cors 문제가 일어나므로 iframe으로 열지 않는다. + var isIOS = /iPad|iPhone|iPod/.test(navigator.platform) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1); - // 네이버페이면 반드시 페이지전환 방식이어야 하며, 그 외에는 iframe 방식으로 한다. - if(typeof v_frm.naverpay_direct !== "undefined" && v_frm.naverpay_direct.value == "Y") { + if (isIOS) { + v_frm.target = ""; + } + + // 네이버페이 또는 애플페이의 경우 반드시 페이지전환 방식이어야 하며, 그 외에는 iframe 방식으로 한다. + if((typeof v_frm.naverpay_direct !== "undefined" && v_frm.naverpay_direct.value == "Y") || (typeof v_frm.applepay_direct !== "undefined" && v_frm.applepay_direct.value == "Y")) { v_frm.target = ""; } @@ -267,18 +275,20 @@ if($enc_data != '' && $enc_info != '' && $tran_cd != '') { ?> - + - + - - + + + + + - diff --git a/mobile/shop/kcp/orderform.1.php b/mobile/shop/kcp/orderform.1.php index c5789db5d..101548a20 100644 --- a/mobile/shop/kcp/orderform.1.php +++ b/mobile/shop/kcp/orderform.1.php @@ -24,6 +24,7 @@ $param_opt_3 = isset($_REQUEST['param_opt_3']) ? clean_xss_tags($_REQUEST['param + diff --git a/mobile/shop/orderform.sub.php b/mobile/shop/orderform.sub.php index bcb44303d..038ab9a0c 100644 --- a/mobile/shop/orderform.sub.php +++ b/mobile/shop/orderform.sub.php @@ -624,6 +624,9 @@ if($is_kakaopay_use) { if( in_array('nhnkcp_kakaopay', $de_easy_pay_service_array) ){ $easypay_prints['nhnkcp_kakaopay'] = '
  • '; } + if( in_array('nhnkcp_applepay', $de_easy_pay_service_array) && preg_match('~^(?:(?:(?:Mozilla/\d\.\d\s*\()+|Mobile\s*Safari\s*\d+\.\d+(\.\d+)?\s*)(?:iPhone(?:\s+Simulator)?|iPad|iPod);\s*(?:U;\s*)?(?:[a-z]+(?:-[a-z]+)?;\s*)?CPU\s*(?:iPhone\s*)?(?:OS\s*\d+_\d+(?:_\d+)?\s*)?(?:like|comme)\s*Mac\s*O?S?\s*X(?:;\s*[a-z]+(?:-[a-z]+)?)?\)\s*)?(?:AppleWebKit/\d+(?:\.\d+(?:\.\d+)?|\s*\+)?\s*)?(?:\(KHTML,\s*(?:like|comme)\s*Gecko\s*\)\s*)?(?:Version/\d+\.\d+(?:\.\d+)?\s*)?(?:Mobile/\w+\s*)?(?:Safari/\d+\.\d+(?:\.\d+)?.*)?$~', $_SERVER['HTTP_USER_AGENT']) ){ + $easypay_prints['nhnkcp_applepay'] = '
  • '; + } } else { $easypay_prints[strtolower($pg_easy_pay_name)] = '
  • '; } @@ -1300,6 +1303,7 @@ function pay_approval() if(typeof f.payco_direct !== "undefined") f.payco_direct.value = ""; if(typeof f.naverpay_direct !== "undefined") f.naverpay_direct.value = "A"; if(typeof f.kakaopay_direct !== "undefined") f.kakaopay_direct.value = "A"; + if(typeof f.applepay_direct !== "undefined") f.applepay_direct.value = "A"; if(typeof f.ActionResult !== "undefined") f.ActionResult.value = ""; if(typeof f.pay_method !== "undefined") f.pay_method.value = ""; @@ -1312,6 +1316,8 @@ function pay_approval() } } else if(nhnkcp_easy_pay === "kakaopay"){ if(typeof f.kakaopay_direct !== "undefined") f.kakaopay_direct.value = "Y"; + } else if(nhnkcp_easy_pay === "applepay"){ + if(typeof f.applepay_direct !== "undefined") f.applepay_direct.value = "Y"; } else { if(typeof f.payco_direct !== "undefined") f.payco_direct.value = "Y"; } @@ -1319,6 +1325,10 @@ function pay_approval() if(typeof f.ActionResult !== "undefined") f.ActionResult.value = "CARD"; // 대소문자 구분 if(typeof f.pay_method !== "undefined") f.pay_method.value = "card"; // 대소문자 구분 + //if(nhnkcp_easy_pay === "applepay"){ + // if(typeof f.ActionResult !== "undefined") f.ActionResult.value = "card"; + // if(typeof f.pay_method !== "undefined") f.pay_method.value = "CARD"; + //} } diff --git a/theme/basic/css/default_shop.css b/theme/basic/css/default_shop.css index 2f132f603..19de5aef2 100644 --- a/theme/basic/css/default_shop.css +++ b/theme/basic/css/default_shop.css @@ -1165,6 +1165,7 @@ a.btn_frmline.is-long-text{height:auto;width:160px} .sod_frm_mobile #m_sod_frm_paysel .inicis_lpay{background:url(../../../img/lpay_logo.png) no-repeat;width:35px;height:12px;overflow:hidden;text-indent:-999px;display:inline-block;background-size:100%} .sod_frm_mobile #m_sod_frm_paysel .inicis_kakaopay{background:url(../../../img/kakao.png) no-repeat 50% 50% #f4dc34;border-radius:30px;height:22px;width:74px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:35px auto} .sod_frm_mobile #m_sod_frm_paysel .kakaopay_icon{background:url(../../../img/kakao.png) no-repeat 50% 50% #f4dc34;border-radius:30px;height:22px;width:74px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:35px auto} +.sod_frm_mobile #m_sod_frm_paysel .applepay_icon{background:url(../../../img/ico-mobile-applepay.png) no-repeat 50% 50% #fff;border-radius:30px;height:23px;width:50px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:35px auto} .sod_frm_mobile #m_sod_frm_paysel .naverpay_icon{background:url(../../../img/ico-default-naverpay.png) no-repeat 50% 50% #fff;border-radius:30px;height:22px;width:50px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:35px auto} .sod_frm_mobile #m_sod_frm_paysel .samsung_pay{margin-left:-23px;background:url(../../../img/samsungpay.png) no-repeat 24px 3px;height:25px;width:106px;display:inline-block;overflow:hidden;text-indent:-999px} .sod_frm_mobile #sod_frm_pay{border-top:1px solid #f3f3f3} diff --git a/theme/basic/css/mobile_shop.css b/theme/basic/css/mobile_shop.css index 1a2134e1b..8b1d662fd 100644 --- a/theme/basic/css/mobile_shop.css +++ b/theme/basic/css/mobile_shop.css @@ -218,14 +218,15 @@ box-shadow: 0 0 6px rgba(0,0,0,0.2);} #m_sod_frm_paysel h3{background:#fff;padding:15px 10px ;border:1px solid #e3e5e8;border-bottom:0} #m_sod_frm_paysel ul {margin:0 0 ;background:#fff;padding:10px;border:1px solid #e3e5e8} #m_sod_frm_paysel ul:after {display:block;visibility:hidden;clear:both;content:""} -#m_sod_frm_paysel li {float:left;padding:5px ;width:46%;height:25px} +#m_sod_frm_paysel li {float:left;padding:5px;width:46%;height:35px} #m_sod_frm_paysel .KPAY{background:url('../../../img/kpay.png') no-repeat;width:37px;height:15px;overflow:hidden;text-indent:-999px;display:inline-block;background-size:100%} #m_sod_frm_paysel .PAYNOW{background:url('../../../img/paynow.png') no-repeat;width:46px;height:15px;overflow:hidden;text-indent:-999px;display:inline-block;background-size:100%;} -#m_sod_frm_paysel .PAYCO{background:url('../../../img/payco.png') no-repeat 1px;width:46px;height:15px;overflow:hidden;text-indent:-999px;display:inline-block;background-size:100%;} +#m_sod_frm_paysel .PAYCO{background:url('../../../img/payco.png') no-repeat 1px;width:50px;height:15px;overflow:hidden;text-indent:-999px;display:inline-block;background-size:100%} #m_sod_frm_paysel .inicis_lpay{background:url('../../../img/lpay_logo.png') no-repeat;width:35px;height:12px;overflow:hidden;text-indent:-999px;display:inline-block;background-size:100%;} -#m_sod_frm_paysel .inicis_kakaopay{background:url('../../../img/kakao.png') no-repeat 50% 50% #ffeb00;border-radius:30px;height:22px;width:74px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:35px auto} -#m_sod_frm_paysel .kakaopay_icon{background:url('../../../img/ico-mobile-kakaopay.png') no-repeat #fff;height:15px;width:43px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:35px auto} -#m_sod_frm_paysel .naverpay_icon{background:url('../../../img/ico-mobile-naverpay.png') no-repeat #fff;height:15px;width:40px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:35px auto} +#m_sod_frm_paysel .inicis_kakaopay{background:url('../../../img/kakao.png') no-repeat 50% 50% #ffeb00;border-radius:30px;height:26px;width:74px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:36px auto} +#m_sod_frm_paysel .kakaopay_icon{background:url('../../../img/ico-mobile-kakaopay.png') no-repeat #fff;height:23px;width:63px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:45px auto;background-position: 10% 40%} +#m_sod_frm_paysel .naverpay_icon{background:url('../../../img/ico-mobile-naverpay.png') no-repeat #fff;height:23px;width:60px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:45px auto;background-position: 0% 30%} +#m_sod_frm_paysel .applepay_icon{background:url('../../../img/ico-mobile-applepay.png') no-repeat #fff;height:30px;width:60px;display:inline-block;overflow:hidden;text-indent:-999px;background-size:43px auto} #m_sod_frm_paysel .samsung_pay{margin-left:-23px;background:url('../../../img/samsungpay.png') no-repeat 24px 3px;height:25px;width:106px;display:inline-block;overflow:hidden;text-indent:-999px} #sod_frm_pay{padding:10px;;border-top:1px solid #f3f3f3}