- 정보공유
[영카트팁] KCP 크롬 대응 exe 버전 패치 코드.
KCP 에서는 크롬45버전 이상에서 기존의 크로스브라우징 모듈의 NPAPI 기능 제한의 대안으로
EXE 결제모듈을 배포하였습니다.
영카트에 적용을 해보았습니다.
/shop/kcp/orderform.1.php
<script type="text/javascript"> /****************************************************************/ /* EXE 전환 절차 */ /* 1. m_Completepayment 함수 적용 */ /* 2. 플러그인 체크 함수 변경 kcpTx_install(); */ /* 3. submit 방식 변경 */ /****************************************************************/ /****************************************************************/ /****************************************************************/ /* 1. m_Completepayment 설명 */ /****************************************************************/ /* 인증완료시 재귀 함수 */ /* 해당 함수명은 절대 변경하면 안됩니다. */ /* 해당 함수의 위치는 payplus.js 보다먼저 선언되어여 합니다. */ /* Web 방식의 경우 리턴 값이 form 으로 넘어옴 */ /* EXE 방식의 경우 리턴 값이 json 으로 넘어옴 */ /****************************************************************/ function m_Completepayment( FormOrJson, closeEvent ) { var frm = document.forderform; /********************************************************************/ /* FormOrJson은 가맹점 임의 활용 금지 */ /* frm 값에 FormOrJson 값이 설정 됨 frm 값으로 활용 하셔야 됩니다. */ /* FormOrJson 값을 활용 하시려면 기술지원팀으로 문의바랍니다. */ /********************************************************************/ GetField( frm, FormOrJson ); // 위에서 만든 폼데이터에 결제창의 인증데이터 담기. if( frm.res_cd.value == "0000" ) { /* 가맹점 리턴값 처리 영역 */ document.getElementById("display_pay_button").style.display = "none" ; document.getElementById("display_pay_process").style.display = "" ; // frm.submit(); } else { alert( "[" + frm.res_cd.value + "] " + frm.res_msg.value ); closeEvent(); } } </script> <script src="<?php echo $g_conf_js_url; ?>"></script> <?php /* = -------------------------------------------------------------------------- = */ /* = Javascript source Include END = */ /* ============================================================================== */ ?> <script> function CheckPayplusInstall() { if(ChkBrowser()) { if(document.Payplus.object != null) { document.getElementById("display_setup_message_top").style.display = "none" ; document.getElementById("display_setup_message").style.display = "none" ; document.getElementById("display_pay_button").style.display = "" ; } } else { setTimeout("init_pay_button();",300); } } /* Payplus Plug-in 실행 */ function jsf__pay( form ) { if (navigator.userAgent.indexOf('MSIE') > 0) { var RetVal = false; /* Payplus Plugin 실행 */ if ( MakePayMessage( form ) == true ) { //openwin = window.open( "./kcp/proc_win.html", "proc_win", "width=449, height=209, top=300, left=300" ); document.getElementById("display_pay_button").style.display = "none" ; document.getElementById("display_pay_process").style.display = "" ; RetVal = true ; } else { /* res_cd와 res_msg변수에 해당 오류코드와 오류메시지가 설정됩니다. ex) 고객이 Payplus Plugin에서 취소 버튼 클릭시 res_cd=3001, res_msg=사용자 취소 값이 설정됩니다. */ res_cd = document.forderform.res_cd.value ; res_msg = document.forderform.res_msg.value ; } return RetVal ; } else { KCP_Pay_Execute( form ); } }
1. m_Completepayment 함수가 추가되었습니다.
payplus.js 보다 반드시 먼저 선언이 되어야 합니다.
2. 결제창 실행 함수를 변경합니다.
익스플로러가 아닐경우 KCP_Pay_Execute( form ); 를 호출합니다.
/shop/kcp/orderform.5.php
<script> if (navigator.userAgent.indexOf('MSIE') > 0) { StartSmartUpdate(); } else { kcpTx_install(); } </script>
결제창 설치 함수를 브라우저에 따라서 분기적용시킵니다.