Skip to content

Commit a32ffd1

Browse files
author
parksehong
committed
1. 안드로이드 11
- 패키지를 인식하도록 카드사 앱 패키지 queries 선언 2. 본인인증 예제 추가 - 다날 본인인증관련 계약 후 계정 발급을 받으시면 결제설치->결게수단 활성화->다날->인증->활성화->계정입력 후 사용이 가능합니다 (코드상 application_id 공백) - 해당 기능은 테스트모드가 없고 테스트할 수 있게 상용 코드를 제공해드리지 않습니다.
1 parent 558cf30 commit a32ffd1

File tree

14 files changed

+249
-30
lines changed

14 files changed

+249
-30
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ allprojects {
3232
```gradle
3333
dependencies {
3434
...
35-
implementation 'com.github.bootpay:client_android_java:3.3.82'
35+
implementation 'com.github.bootpay:client_android_java:3.4.1'
3636
}
3737
```
3838

bootpay/build.gradle

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ apply plugin: 'com.android.library'
33

44

55
android {
6-
compileSdkVersion 28
7-
buildToolsVersion '28.0.3'
6+
compileSdkVersion 30
7+
buildToolsVersion '30.0.3'
88

99
defaultConfig {
1010
minSdkVersion 23
11-
targetSdkVersion 28
11+
targetSdkVersion 30
1212
versionCode 1
1313
versionName "1.0"
1414
}
@@ -25,8 +25,8 @@ android {
2525
}
2626

2727
dependencies {
28-
api 'com.android.support:design:28.+'
29-
implementation 'com.android.support:appcompat-v7:28.+'
28+
api 'com.google.android.material:material:1.0.0'
29+
implementation 'androidx.appcompat:appcompat:1.0.0'
3030
// implementation 'com.android.support:appcompat-v7:26.1.0'
3131
// https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-stdlib
3232

@@ -36,8 +36,7 @@ dependencies {
3636
// 추가로 unity 폴더를 풀어서 해당 자리에 소스가 생기도록 해야함
3737

3838

39-
40-
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
39+
androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0', {
4140
exclude group: 'com.android.support', module: 'support-annotations'
4241
})
4342
// jitpack 배포시 아래 주석을 풀어서 사용
@@ -49,7 +48,7 @@ dependencies {
4948
implementation 'com.squareup.retrofit2:converter-moshi:2.6.0'
5049
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.6.0'
5150

52-
implementation 'com.squareup.okhttp3:okhttp:4.0.0'
51+
implementation 'com.squareup.okhttp3:okhttp:4.9.0'
5352
implementation 'com.squareup.okhttp3:logging-interceptor:4.0.0'
5453

5554
implementation 'com.github.franmontiel:PersistentCookieJar:v1.0.1'

bootpay/src/main/AndroidManifest.xml

Lines changed: 80 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2-
package="kr.co.bootpay">
2+
xmlns:tools="http://schemas.android.com/tools"
3+
package="kr.co.bootpay">
34

45
<uses-permission android:name="android.permission.INTERNET"/>
56
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
@@ -16,6 +17,82 @@
1617
<uses-permission android:name="android.permission.VIBRATE"/>
1718

1819
<!-- android 11 모든 앱 접근 권한 사용 (Google Play 가이드라인 참고 - 2021-02-19 기준 못찾았음) -->
19-
<!-- <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" tools:ignore="QueryAllPackagesPermission" /> -->
20+
<!-- <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" tools:ignore="QueryAllPackagesPermission" />-->
21+
<!-- android 11 Package Visibility 설정 (compileSdkVersion, targetSdkVersion 30 이상 설정시 필수) -->
22+
<!-- 2021-02-19 -->
23+
<queries>
24+
<!-- 다날[신한, BC(페이북), 국민, 현대, 삼성, 하나, 롯데, 농협, 우리, 씨티, 페이코, 삼성페이, 카카오페이, 뱅크페이, SSG페이, 스마일페이, 엘페이] -->
25+
<!-- KCP [페이코, 현대, BC(페이북), 롯데, 국민, 농협, 삼성, 신한, 우리, 하나, 씨티] -->
26+
<!-- 이니시스 [카카오페이, 네이버페이, 신한, 하나, 현대, 삼성, 국민, BC(페이북), 농협, 롯데, 씨티, 페이코, 엘페이, SSG페이, 차이, 토스, 삼성페이] -->
27+
<!-- 나이스페이 [신한, 국민, 삼성, BC(페이북), 롯데, 현대, 하나 농협, 씨티, 우리] -->
28+
<!-- 토스페이먼츠 [현대, 신한, 페이북, 국민, 삼성, 롯데, 농협, 우리] -->
29+
<!-- 이지페이 [현대, 하나, 국민, 롯데, 삼성, BC(페이북) 신한, 하나, 농협, 씨티, 우리, 페이코] -->
30+
<!-- 티페이 [BC(페이북), 국민, 하나, 삼성, 신한, 현대, 롯데, 농협, 씨티, 우리] -->
31+
<!-- 페이레터 [BC(페이북), 국민, 하나, 삼성, 신한, 현대. 롯데, 농협, 씨티, ] -->
32+
<!-- 월컴페이먼츠 [카카오, 엘페이, 현대, BC(페이북), 국민, 삼성, 신한, 롯데, 농협, 하나, 씨티, 하나, 우] -->
2033

21-
</manifest>
34+
<!-- 신한카드 -->
35+
<package android:name="com.shcard.smartpay" />
36+
37+
<!-- BC 페이북 -->
38+
<package android:name="kvp.jjy.MispAndroid320" />
39+
40+
<!-- 국민카드 -->
41+
<package android:name="com.kbcard.kbkookmincard" />
42+
<package android:name="com.kbcard.cxh.appcard" />
43+
44+
<!-- 현대카드 -->
45+
<package android:name="com.hyundaicard.appcard" />
46+
47+
<!-- 삼성카드 -->
48+
<package android:name="kr.co.samsungcard.mpocket" />
49+
50+
<!-- 하나카드 -->
51+
<package android:name="kr.co.hanamembers.hmscustomer" />
52+
<package android:name="com.hanaskcard.paycla" />
53+
54+
<!-- 롯데카드 -->
55+
<package android:name="com.lcacApp" />
56+
57+
<!-- 농협카드 -->
58+
<package android:name="nh.smart.nhallonepay" />
59+
60+
<!-- 우리카드 -->
61+
<package android:name="com.wooricard.wpay" />
62+
63+
<!-- 씨티은행 -->
64+
<package android:name="kr.co.citibank.citimobile" />
65+
66+
<package android:name="com.nhnent.payapp" /> <!-- 페이코 -->
67+
<package android:name="com.samsung.android.spay" /> <!-- 삼성페이 -->
68+
<package android:name="com.kakao.talk" /> <!-- 카카오페이 -->
69+
<package android:name="com.kftc.bankpay.android" /> <!-- 뱅크페이 -->
70+
<package android:name="com.ssg.serviceapp.android.egiftcertificate" /> <!-- SSG 페이 -->
71+
<package android:name="com.mysmilepay.app" /> <!-- 스마일 페이 -->
72+
<package android:name="com.lotte.lpay" /> <!-- 엘페이 -->
73+
<package android:name="finance.chai.app" /> <!-- 차이 -->
74+
<package android:name="viva.republica.toss" /> <!-- 토스 -->
75+
76+
<!-- 보안앱 -->
77+
<package android:name="com.TouchEn.mVaccine.webs" /> <!-- 신한, 씨티 -->
78+
<package android:name="kr.co.shiftworks.vguardweb" /> <!-- 삼성 -->
79+
<package android:name="com.ahnlab.v3mobileplus" /> <!-- 하나, 농협, 우리, 국민 리브 -->
80+
81+
<!-- 휴대폰 결제 -->
82+
<package android:name="com.kt.ktauth" /> <!-- KT 본인인증 -->
83+
<package android:name="kr.danal.app.damoum" /> <!-- 다모음 -->
84+
<package android:name="uplus.membership" /> <!-- U+ 멤버스 -->
85+
86+
<!-- 계좌이체 -->
87+
<package android:name="com.knb.psb" /> <!-- BNK 경남은행 모바일뱅킹 -->
88+
<package android:name="kr.co.kfcc.mobilebank" /> <!-- MG상상뱅크 -->
89+
<package android:name="com.nh.cashcardapp" /> <!-- MG상상뱅크 -->
90+
<package android:name="com.kbstar.liivbank" /> <!-- 국민 리브 -->
91+
<package android:name="com.nh.cashcardapp" /> <!-- NH앱캐시 -->
92+
93+
94+
</queries>
95+
96+
97+
98+
</manifest>

bootpay/src/main/java/kr/co/bootpay/BootpayWebView.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,8 @@ private Boolean isSpecialCase(String url) {
207207
|| url.startsWith("nidlogin://")
208208
|| url.startsWith("mpocket.online.ansimclick://")
209209
|| url.startsWith("wooripay://")
210-
|| url.startsWith("kakaotalk://");
210+
|| url.startsWith("kakaotalk://")
211+
|| url.startsWith("ispmobile://");
211212
}
212213

213214
private Intent parse(String url) {

bootpay/src/main/java/kr/co/bootpay/bio/activity/BootpayBioWebView.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949

5050
public class BootpayBioWebView extends WebView {
5151

52-
private static final String BOOTPAY = "https://inapp.bootpay.co.kr/3.3.1/production.html";
52+
private static final String BOOTPAY = "https://inapp.bootpay.co.kr/3.3.2/production.html";
5353
// private static final String BOOTPAY = "https://www.naver.com";
5454

5555
private Dialog dialog;

sample/build.gradle

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
apply plugin: 'com.android.application'
22

33
android {
4-
compileSdkVersion 28
4+
compileSdkVersion 30
55
buildToolsVersion '28.0.3'
66
defaultConfig {
77
applicationId "bootpay.co.kr.samplepayment"
88
minSdkVersion 23
9-
targetSdkVersion 28
9+
targetSdkVersion 30
1010
versionCode 1
1111
versionName "1.0"
1212
}
@@ -24,12 +24,12 @@ android {
2424

2525
dependencies {
2626
implementation fileTree(dir: 'libs', include: ['*.jar'])
27-
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
27+
androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0', {
2828
exclude group: 'com.android.support', module: 'support-annotations'
2929
})
3030

31-
implementation 'com.android.support:appcompat-v7:28.+'
32-
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
31+
implementation 'androidx.appcompat:appcompat:1.0.0'
32+
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
3333

3434

3535
testImplementation 'junit:junit:4.12'

sample/src/main/AndroidManifest.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
<activity android:name=".LocalHtmlActivity" android:screenOrientation="portrait"/>
3030
<activity android:name=".App2AppActivity" android:screenOrientation="portrait"/>
3131
<activity android:name=".BioActivity" android:screenOrientation="portrait"/>
32+
<activity android:name=".AuthActivity" android:screenOrientation="portrait"/>
33+
3234
</application>
3335

3436
</manifest>

sample/src/main/assets/html/index.html

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,12 @@
44
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
55
<meta name="viewport" content="width=device-width, initial-scale=1, boot_user-scalable=no">
66
<meta content="5b14c0ffb6d49c40cda92c4e" name="bootpay-application-id">
7-
<script src="https://cdn.bootpay.co.kr/js/bootpay-3.3.1.min.js" type="application/javascript"></script>
7+
<script src="https://cdn.bootpay.co.kr/js/bootpay-3.3.2.min.js" type="application/javascript"></script>
88
<script>
99
function payTest() {
10+
11+
//BootPay.setDevice('ANDROID');
12+
1013
var android_application_id = '5b14c0ffb6d49c40cda92c4e'
1114

1215

@@ -61,4 +64,4 @@
6164
<body>
6265
<button onclick='payTest()'>Local Html 결제시작</button>
6366
</body>
64-
</html>
67+
</html>
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
package bootpay.co.kr.samplepayment;
2+
3+
import android.app.Activity;
4+
import android.os.Bundle;
5+
import android.util.Log;
6+
import android.view.View;
7+
8+
import androidx.annotation.Nullable;
9+
10+
import java.util.Date;
11+
12+
import kr.co.bootpay.Bootpay;
13+
import kr.co.bootpay.BootpayAnalytics;
14+
import kr.co.bootpay.enums.Method;
15+
import kr.co.bootpay.enums.PG;
16+
import kr.co.bootpay.enums.UX;
17+
import kr.co.bootpay.listener.CancelListener;
18+
import kr.co.bootpay.listener.CloseListener;
19+
import kr.co.bootpay.listener.ConfirmListener;
20+
import kr.co.bootpay.listener.DoneListener;
21+
import kr.co.bootpay.listener.ErrorListener;
22+
import kr.co.bootpay.listener.ReadyListener;
23+
24+
25+
public class AuthActivity extends Activity {
26+
27+
private String application_id = "";
28+
29+
30+
@Override
31+
protected void onCreate(Bundle savedInstanceState) {
32+
super.onCreate(savedInstanceState);
33+
setContentView(R.layout.activity_auth);
34+
35+
BootpayAnalytics.init(this, application_id);
36+
}
37+
38+
39+
public void getAuth(View view) {
40+
/**
41+
* 다날 본인인증은 테스트 모드를 지원하지 않습니다.
42+
* 관리자 화면(https://admin.bootpay.co.kr/install/method) 에서 [다날]->[인증]->cpid, cppwd 를 설정해야 사용하실 수 있습니다.
43+
* 해당 인증창은 다날 사이트를 띄우는 것이기 때문에 부트페이에서는 화면 커스텀 및 인증결과 데이터를 추가 및 수정할 수 없습니다.
44+
* 개발 문서 (https://docs.bootpay.co.kr/deep/auth)
45+
*/
46+
Bootpay.init(getFragmentManager())
47+
.setApplicationId(application_id) // 해당 프로젝트(안드로이드)의 application id 값
48+
.setPG(PG.DANAL) // 결제할 PG 사
49+
.setMethod(Method.AUTH) // 결제수단
50+
.setContext(this)
51+
.setOrderId(String.valueOf(new Date().getTime())) // 고객이 설정한 고유값
52+
.setName("본인인증_테스트") // 고객이 설정한 명칭
53+
.setUX(UX.PG_DIALOG)
54+
.onConfirm(new ConfirmListener() { // 결제가 진행되기 바로 직전 호출되는 함수로, 주로 재고처리 등의 로직이 수행
55+
@Override
56+
public void onConfirm(@Nullable String message) {
57+
Log.d("confirm", message);
58+
}
59+
})
60+
.onDone(new DoneListener() { // 결제완료시 호출, 아이템 지급 등 데이터 동기화 로직을 수행합니다
61+
@Override
62+
public void onDone(@Nullable String message) {
63+
Log.d("done", message);
64+
}
65+
})
66+
.onReady(new ReadyListener() { // 가상계좌 입금 계좌번호가 발급되면 호출되는 함수입니다.
67+
@Override
68+
public void onReady(@Nullable String message) {
69+
Log.d("ready", message);
70+
}
71+
})
72+
.onCancel(new CancelListener() { // 결제 취소시 호출
73+
@Override
74+
public void onCancel(@Nullable String message) {
75+
76+
Log.d("cancel", message);
77+
}
78+
})
79+
.onError(new ErrorListener() { // 에러가 났을때 호출되는 부분
80+
@Override
81+
public void onError(@Nullable String message) {
82+
Log.d("error", message);
83+
}
84+
})
85+
.onClose(
86+
new CloseListener() { //결제창이 닫힐때 실행되는 부분
87+
@Override
88+
public void onClose(String message) {
89+
Log.d("close", "close");
90+
}
91+
})
92+
.request();
93+
94+
}
95+
}

sample/src/main/java/bootpay/co/kr/samplepayment/BioActivity.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,8 @@ private void loadWebViewLoad(WebView webview, String url) {
7070
//샘플 코드를 제공하는 이유는 빠르게 결제를 테스트 하길 원하시는 개발자들을 위함입니다.
7171
public void goBioPay(View v) {
7272

73-
String rest_application_id = "5b8f6a4d396fa665fdc2b5ea";
74-
String prviate_key = "n9jO7MxVFor3o//c9X5tdep95ZjdaiDvVB4h1B5cMHQ=";
75-
76-
// String rest_application_id = "5b9f51264457636ab9a07cde";
77-
// String prviate_key = "sfilSOSVakw+PZA+PRux4Iuwm7a//9CXXudCq9TMDHk=";
73+
String rest_application_id = "59a4d32b396fa607c2e75e00";
74+
String prviate_key = "t3UENPWvsUort5WG0BFVk2+yBzmlt3UDvhDH2Uwp0oA=";
7875

7976
BootpayRest.getRestToken(this, this, rest_application_id, prviate_key);
8077
}

0 commit comments

Comments
 (0)