
외부결제앱 호출이후 결제결과를 다시 메인앱으로 돌아와 처리될 수 있도록 하기위해~ “앱스킴”명이란 것을 결제호출 웹소스에 적용해주어야만 합니다. PG사마다 적용되는 웹소스가 차이가 있으니 적용된 PG사가 위의 타이틀과 맞는지 확인해주세요.
모바일앱에 적용되는 “앱스킴”명이 만약 “testapp” 이라고 한다면 아래처럼 적용이 되어야 합니다. (앱스킴명은 앱 제작시 이름을 안내드립니다.)
결제모듈 호출 웹소스의 form태그에 P_RESERVED 라는 input태그 변수에 값을 추가
<script>
$( document ).ready(function() {
//아래처럼 적용 (모바일앱인경우만 스킴명등 적용되게 함)
if(navigator.userAgent.toLowerCase().indexOf('mobileapp') != -1){
var interval_chk = setInterval(function() {
var PRESERVED_input = document.getElementsByName("P_RESERVED")[0];
// input 태그가 DOM에 존재할 때만 처리
if (PRESERVED_input) {
//앱스킴명 = **testapp** 인경우아래처럼 수정 (ua값을 체크하여 모바일앱인경우만 스킴명등 적용되게 함)
if(navigator.userAgent.toLowerCase().indexOf('androidapp') != -1){
PRESERVED_input.value = PRESERVED_input.value + '&apprun_check=Y&app_scheme=testapp://'; //app_scheme=**testapp:// 을 기입**
}else if(navigator.userAgent.toLowerCase().indexOf('iosapp') != -1){
PRESERVED_input.value = PRESERVED_input.value + '&iosapp=Y&app_scheme=testapp://'; //app_scheme=**testapp:// 을 기입**
}
clearInterval(interval_chk); // 처리 후 반복 중단
console.log("결제 변수 세팅 완료");
}
}, 500); // 0.5초마다 체크
}
});
</script>
....
<!-- 결제 form태그 안에 아래 input태그를 확인하여 없다면 아마도 서버페이지에 있을가능성이 있으니 확인필요함.(기본으로 있을것임) -->
<input type="hidden" name="P_RESERVED" value="">