테스트 사이트 - 개발 중인 베타 버전입니다

KCP 크롬 대응 exe 버전 패치 코드.

· 10년 전 · 6221
KCP 에서는 크롬45버전 이상에서 기존의 크로스브라우징 모듈의 NPAPI 기능 제한의 대안으로
EXE 결제모듈을 배포하였습니다.

영카트에 적용을 해보았습니다.







/shop/kcp/orderform.1.php

[code]
<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 );

}
}
[/code]


1. m_Completepayment 함수가 추가되었습니다.
payplus.js 보다 반드시 먼저 선언이 되어야 합니다.


2. 결제창 실행 함수를 변경합니다.
익스플로러가 아닐경우 KCP_Pay_Execute( form ); 를 호출합니다.






/shop/kcp/orderform.5.php
[code]
<script>
if (navigator.userAgent.indexOf('MSIE') > 0) {
StartSmartUpdate();
}
else {
kcpTx_install();
}
</script>
[/code]

결제창 설치 함수를 브라우저에 따라서 분기적용시킵니다.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기