마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

폰갭으로 만든 앱에 KCP 결재 시스템을 연동할 수 있나요?

0 추천
폰갭으로만 kcp를 붙일 수 있는지

 

아니면 안드로이드 스튜디오로 폰갭 프로젝트를 불러와서 kcp API를 사용해야 하는지

엄청 헷갈리네요

 

고수분의 도움 부탁드립니다.

여기에 명확한 해결책을 가지고 계신 경험있는 분은 swordkang@hanmail.net로 연락주세요

기술전수해주시면 사례하겠습니다.
강명석 (140 포인트) 님이 2016년 9월 1일 질문
kcp 에서 자바스크립 api를 제공하지 않는다면 java로 연동응 하셔야 합니다. java코드를 붙이시려면 플러그인 제작을 하셔야 하구요.
답변 감사드립니다^^
Kcp에서는 java코드로 만든 api를 제공하고 있는데
제가 잘 몰라서 헤메고 있습니다
폰갭으로 개발한 소스를 안드로이드용 빌드하면 안드로이드 스튜디오에서 불러올수 있는 프로젝트가 생성됩니다
Kcp에서는 안드로이로이드 스튜디오에서 쓸수 있는 java로 만든 api를 제공하고 있구요
이둘을 통합하려하니 java쪽을 몰라 헤메고 있습니다
하이브리드에서 네이티브코드와 연동하려면 플러그인을 작성하셔야 하는데요. 이미 자바로 된 라이브러리가 있으니까 이걸 자바스크립으로 매핑해주는 코드만 작성하시몈 됩니다. 플러그인 작성법을 찾아보시구요. 자바가 익숙치 않으시면 배우셔야 겠죠. 자바 스크립은 장 다루시는 걸로 보이시니 몇일 정도 자바에 투자하시면 원하는 부분은 처리하실 수 있을겁니다.
친절한 답변 진심으로 감사드립니다!!

제가 java와 안드로이드 스튜디오에 초보라서
용어를 정확이 몰라 "java로 만든 api"라고 말씀드렸는데
이 용어가 맞는지 확인후 말씀해 주신대로 java공부를 시작하려고 합니다.

kcp에서 다운받은 파일을 언집으로 풀어서 폴더를 살펴보니

.idea
assets
bin
gen
libs
res
src
폴더들이 있고

.classpath
.project
AndroidManifest.xml
proguard.cfg
project.properties
파일들이 있습니다.

libs 폴더에는
kcp_smart_phone_util.jar

그리고 src폴더 밑에
AcntPayDemoActivity.java
PayDemoActivity.java
PayDemoScriptXActivity.java
ResultRcvActivity.java
Sample.java
SampleApplication.java
와 같은 6개의파일들이 들어있습니다.

bin 폴더에는
상기 6개의 java파일 이름으로 된 *.class들이 잔뜩 들어 있습니다^^

AndroidManifest.xml를 열어보니 6개의 Activity들이 선언되어 있습니다.

KCP측에서 제공한 매뉴얼에도 6개의 Activity들을 사용하라고 되어 있습니다.

마지막으로
이러한 것들이 "java로 만든 api"가 맞는지 궁금하구요.
선생님께서 알려주신대로 플러그인을 개발하여 가면 맞는지 아니면 다른 식으로 개발해나가야 하는지 궁금합니다.

친절하고 신속한 설명 진심으로 감사드립니다.

 가능하시다면 swordkang@hanmail.net로 연락처를 남겨주십시요.
너무 감사해서 적지만 꼭 사례하고 싶습니다. 선생님

--------------------------------------------------------------------------------------------------------
예를 들어 PayDemoActivity에 관해서는 아래와 같은 사용설명이 들어 있습니다.

onCreate에서 WebView 옵션을 설정하고 업체 주문페이지를 호출합니다.

WebView에서 사용하는 옵션기능
SavePassword(false) : 웹페이지 비밀번호 자동저장 하지 않음.
JavaScriptEnabled(true) : 자바스크립트 허용.
JavaScriptCanOpenWindowsAutomatically(true) : 자바스크립트를 이용하여 윈도우를 새로 열수 있도록 함.
KCPPayBridge 클레스 : ISP를 실행하며, 설치 되어있지 않으면 설치하도록 유도를 하는 클레스.
KCPPayPinInfoBridge클레스: 페이핀 설치 및 실행을 유도하는 클레스
KCPPayPinReturn 클레스: 페이핀 어플 응답값을 확인하는 클레스
KCPPayCardInfoBridge 클레스 : 하나SK 카드 선택시에만 사용되는 클레스.
UseWideViewPort(true) : device에 보이는 View화면을 와이드하게 확대함.
WebChromeClient 기능을 사용할 수 있도록 선언되었음.
mWebViewClient : WebViewClient를 상속받아 구현되었고, 호출하는 URL을 판단하여 분기처리한다.

클레스 및 함수 상세 설명
url_scheme_intent(Webview view, String url) : scheme 정보를 통해 어플 또는 웹페이지를 호출 하는 함수
mWebViewClient : webView에서 호출되는 url을 메일과 전화번호는 자동연결을 막고, url을 주소를 판단하여 loadUrl호출 방식과 Intent 호출방식으로 나누어 분기처리하여 호출하는 클래스.
KCPPayCardInfoBridge : 하나SK카드 결제시 하나SK앱을 호출 전에 카드정보와 결제방식 정보를 전역변수에 저장하고 앱을 호출하는 클래스.
KCPPayBridge : device에 설치되어있는 모든 앱을 확인하여 ISP앱의 설치여부를 판단하여 설가 되어있으면 앱을 호출하고, 되어있지 않으면 안드로이드 마켓을 호출하여 ISP앱 설치를 유도하는 클래스.
finishActivity(String p_strFinishMsg) : 현재 Activity를 종료하는 함수.
checkFrom() : ISP앱 종료 후 호출되고 approval_key값을 전달하여 결제를 진행하는 함수.
getPaypinInfo() : 페이핀 어플이 설치 되어 있는지 확인 하는 함수
paypinConfim() : 페이핀 설치화면 이동 함수
getConfirm() : 페이핀 결제 완료 또는 취소를 확인 하는 함수

onRestart에서 타 앱에서 복귀했을 때 호출되어 전역클레스에 값이 전달되었는지 확인합니다.  ResultRcvActivity에 의해 값이 전역클레스에 정상적으로 전달되었을경우에는 결제를 진행합니다.  하나SK가 아닌경우에는 checkFrom() 함수가 실행되어 ISP결제가 정상적으로 처리됩니다
받으신 파일은 kcp 라이브러리리를 이용한 샘플 프로젝트로 보입니다. 물론 일반 안드로이드 프로젝트입니다. kcp_smart_phone_util.jar 파일이 자바 라이브러리에 해당하는 것 같구요.
이 파일을 님의 프로젝트 밑에 libs 폴더 밑에 복사를 하신다음 Gradle에서 로컬 라이브리러를 임포하는 방법으로 불러오시면 됩니다. 정확한 코드를 다 기억을 못하고 있으니 이 부분을 구글링 하시면 금방 해결하실 것 같습니다.
kcp 샘플을 참조하셔서 하이브리드 앱에서 결제 버튼을 누를 때 님이 작성한 플러그인을 호출해서 kcp 라이브러리가 동작하도록 하는 부분이 필요한 것 같습니다. kcp 샘플의 웹뷰 연동하는 부분에 플러그인 관련 소스가 있을 것으로 생각되니 잘 살펴보세요. 그럼 굿럭!
선생님 신속하고 좋은 답변 다시한번 진심으로 감사드립니다.

개발방향을 잡는데 아주 큰 도움이 되었습니다.

개발해가면서 모르는 것이 있으면 다시 여쭙겠습니다.

건강하십시요~~.

swordkang@hanmail.net
(가능하시다면 선생님 메일좀 알고 싶습니다^^)

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...