- 정보공유
[영카트팁] 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>
결제창 설치 함수를 브라우저에 따라서 분기적용시킵니다.