pg모듈 연동

안녕하세요. Titanium으로 앱을 만들고 있는데 결제모듈(PG) 붙이기가 문제네요.

혹시 KCP 같은 PG사 연결을 해보신 분이 없으실까 해서 글 올려봅니다.
상황이 아래와 같은데 해결방법에 대한 아이디어가 있으시면 조언 부탁드립니다.

아이폰은 문제가 없는데 안드로이드의 경우,

결제창 웹뷰에 market://, isp:// 같은 링크들을 beforeload이벤트로 세팅을 해줘도 iframe이나 새창으로 결제페이지들이 뜨면서

결제창 웹뷰의 beforeload 이벤트가 전혀 적용되지 않습니다. 새창(_blank)은 또 특이하게 새 윈도우로 떠버리더라구요.

안되는 이유는 충분히 알겠지만, 이걸 어떻게 해결해야 할지 며칠째 찾아봐도 모르겠네요.

PG사쪽 페이지라 수정을 할 수 없어서 앱쪽에서 처리방법을 찾아야합니다.

모바일결제라고 만들어놓고는 대체 왜 거기다 iframe이나 새창을 띄워서 진행하도록 했는지 이해할 수 없네요.

간단한 조언이라도 부탁드려요..


Facebook Group's likes and commnets
James Jung(06-07 20:18) : 음.. 에러가 나네요 코드 테스트해보니.. 하옇튼 이런 의미인데 더 테스트해보고 다시 올리겠습니다

ios에서는 없고 android에만 있는 개념이다보니 activity와 intent에 대한 이해를 놓치기 쉽더군요. 안드로이드만의 특징이자 장점이니 잘 활용하면 편리합니다.

Activity는 http://www.tipssoft.com/bulletin/board.php?bo_table=FAQ&wr_id=944 이 글에 잘 정리되어 있습니다. 이와 함께 타이타늄의 문서에서 Window의 Android Heavyweight and Lightweight Windows 설명 부분도 함께 보시길 추천합니다.

아 코드가 잘 써지네요ㅎ 대충 위와 같은 코드입니다. 이해하시는데 도움이 되었으면 좋겠네요.

종은님께서 말씀하신 intent 방식은 처음 듣는건데 웹뷰가 아닌 다른걸로도 가능한건가요?

var win = Titanium.UI.createWindow();
var payWebview = Ti.UI.createWebView({
    //결제정보입력페이지. 이 페이지안에 iframe으로 PG사쪽 페이지가 뜹니다. PG사쪽 페이지에 market:// 링크가 있습니다.
    //그리고 새창으로 다른 PG사 페이지가 또 뜨고, 거기에는 isp://링크가 있습니다.
    url : 'http://my.com/payform.html'
});

payWebview.addEventListener('beforeload', function(e) {
    var url = e.url;

    //마켓 링크나 isp앱 링크는 외부에서 열리도록 세팅
    if (url.indexOf('market') != -1 || url.indexOf('isp') != -1) {
        payWebview.stopLoading();
        payWebview.goBack();
        Titanium.Platform.openURL(url);
    }
});

win.add(payWebview);
win.open();

android pg사의 결제를 구현해 본적은 없지만 webview를 쓰지말고 intent로 열면 될 것도 같다는 생각이 드네요. ^^ 혹 테스트 코드등을 공개하실 수 있으면 다른 분이 더 도움 주기 수월할 것 같아요.~