Skip to content

Commit e0f5d2d

Browse files
author
ehowlsla
committed
added webapp guide
1 parent 0cd16bd commit e0f5d2d

File tree

12 files changed

+420
-118
lines changed

12 files changed

+420
-118
lines changed

sample/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ android {
55
buildToolsVersion '27.0.3'
66
defaultConfig {
77
applicationId "bootpay.co.kr.samplepayment"
8-
minSdkVersion 17
8+
minSdkVersion 18
99
targetSdkVersion 27
1010
versionCode 1
1111
versionName "1.0"

sample/src/main/AndroidManifest.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
66
<uses-permission android:name="android.permission.INTERNET"/>
77
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
8+
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
89

910
<application
1011
android:allowBackup="true"
@@ -20,6 +21,9 @@
2021
<category android:name="android.intent.category.LAUNCHER"/>
2122
</intent-filter>
2223
</activity>
24+
25+
<activity android:name=".NativeActivity" android:screenOrientation="portrait"/>
26+
<activity android:name=".WebAppActivity" android:screenOrientation="portrait"/>
2327
</application>
2428

2529
</manifest>
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
<!doctype html>
2+
<html>
3+
<head>
4+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
5+
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
6+
<meta content="5b14c0ffb6d49c40cda92c4e" name="bootpay-application-id">
7+
<script src="https://cdn.bootpay.co.kr/js/bootpay-2.0.10.min.js" type="application/javascript"></script>
8+
<script>
9+
function payTest() {
10+
var android_application_id = '5b14c0ffb6d49c40cda92c4e'
11+
12+
13+
BootPay.request({
14+
price: '1000',
15+
application_id: android_application_id,
16+
name: '블링블링 마스카라',
17+
pg: 'danal',
18+
method: 'phone',
19+
show_agree_window: 0,
20+
items: [
21+
{
22+
item_name: '나는 아이템',
23+
qty: 1,
24+
unique: '123',
25+
price: 1000,
26+
cat1: 'TOP',
27+
cat2: '티셔츠',
28+
cat3: '라운드 티',
29+
}
30+
],
31+
user_info: {
32+
username: '사용자 이름',
33+
email: '사용자 이메일',
34+
addr: '사용자 주소',
35+
phone: '010-1234-4567'
36+
},
37+
order_id: '고유order_id_1234',
38+
params: {callback1: '그대로 콜백받을 변수 1', callback2: '그대로 콜백받을 변수 2', customvar1234: '변수명도 마음대로'},
39+
account_expire_at: '2018-05-25',
40+
extra: {
41+
expire_month: '12',
42+
vbank_result: 1,
43+
quota: '0,2,3'
44+
}
45+
}).error(function (data) {
46+
Android.error(JSON.stringify(data));
47+
}).cancel(function (data) {
48+
Android.cancel(JSON.stringify(data));
49+
}).ready(function (data) {
50+
Android.ready(JSON.stringify(data));
51+
}).confirm(function (data) {
52+
Android.confirm(JSON.stringify(data));
53+
}).close(function (data) {
54+
Android.close('close');
55+
}).done(function (data) {
56+
Android.done(JSON.stringify(data));
57+
});
58+
}
59+
</script>
60+
</head>
61+
<body>
62+
<button onclick='payTest()'>Webapp 연동방식으로 결제시작</button>
63+
<button onclick='alert(1)'>Webapp 연동방식으로 결제시작</button>
64+
</body>
65+
</html>
Lines changed: 8 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -1,115 +1,26 @@
11
package bootpay.co.kr.samplepayment;
2-
2+
import android.content.Intent;
33
import android.os.Bundle;
44
import android.support.annotation.Nullable;
55
import android.support.v7.app.AppCompatActivity;
6-
import android.util.Log;
76
import android.view.View;
87

9-
import java.util.ArrayList;
10-
import java.util.List;
11-
12-
import kr.co.bootpay.BootpayAnalytics;
13-
import kr.co.bootpay.Bootpay;
14-
import kr.co.bootpay.CancelListener;
15-
import kr.co.bootpay.CloseListener;
16-
import kr.co.bootpay.ConfirmListener;
17-
import kr.co.bootpay.DoneListener;
18-
import kr.co.bootpay.ErrorListener;
19-
import kr.co.bootpay.ReadyListener;
20-
import kr.co.bootpay.enums.Method;
21-
import kr.co.bootpay.enums.PG;
22-
import kr.co.bootpay.model.StatItem;
23-
248
public class MainActivity extends AppCompatActivity {
259

26-
private int stuck = 0;
27-
2810
@Override
29-
protected void onCreate(Bundle savedInstanceState) {
11+
protected void onCreate(@Nullable Bundle savedInstanceState) {
3012
super.onCreate(savedInstanceState);
3113
setContentView(R.layout.activity_main);
32-
33-
// 초기설정 - 해당 프로젝트(안드로이드)의 application id 값을 설정합니다. 결제와 통계를 위해 꼭 필요합니다.
34-
BootpayAnalytics.init(this, "59a7e647396fa64fcad4a8c2");
35-
// BootpayAnalytics.init(this, "59bfc733e13f337dbd6ca489");
36-
37-
38-
// 통계 - 유저 로그인 시점에 호출
39-
BootpayAnalytics.login(
40-
"testUser", // user 고유 id 혹은 로그인 아이디
41-
"[email protected]", // user email
42-
"username", // user 이름
43-
"0", //1: 남자, 0: 여자
44-
"861014", // user 생년월일 앞자리
45-
"01012345678", // user 휴대폰 번호
46-
"충청"); // 서울|인천|대구|대전|광주|부산|울산|경기|강원|충청북도|충북|충청남도|충남|전라북도|전북|전라남도|전남|경상북도|경북|경상남도|경남|제주|세종 중 택 1
47-
48-
startTrace();
4914
}
5015

51-
public void startTrace() {
52-
53-
// 통계 - 페이지 추적
54-
List<StatItem> items = new ArrayList<>();
55-
items.add(new StatItem("마우스", "https://image.mouse.com/1234", "ITEM_CODE_MOUSE", "", "", ""));
56-
items.add(new StatItem("키보드", "https://image.keyboard.com/12345", "ITEM_CODE_KEYBOARD", "패션", "여성상의", "블라우스"));
57-
BootpayAnalytics.start("ItemListActivity", "item_list", items);
16+
public void goNativeActivity(View v) {
17+
Intent intent = new Intent(this, NativeActivity.class);
18+
startActivity(intent);
5819
}
5920

60-
public void onClick_request(View v) {
61-
// 결제호출
62-
Bootpay.init(getFragmentManager())
63-
.setApplicationId("5b14c0ffb6d49c40cda92c4e") // 해당 프로젝트(안드로이드)의 application id 값
64-
.setPG(PG.DANAL) // 결제할 PG 사
65-
.setUserPhone("010-1234-5678") // 구매자 전화번호
66-
.setMethod(Method.VBANK) // 결제수단
67-
.setName("맥북프로임다") // 결제할 상품명
68-
.setOrderId("1234") // 결제 고유번호expire_month
69-
// .setAccountExpireAt("2018-09-22") // 가상계좌 입금기간 제한 ( yyyy-mm-dd 포멧으로 입력해주세요. 가상계좌만 적용됩니다. 오늘 날짜보다 더 뒤(미래)여야 합니다 )
70-
.setQuotas(new int[] {0,2,3}) // 일시불, 2개월, 3개월 할부 허용, 할부는 최대 12개월까지 사용됨 (5만원 이상 구매시 할부허용 범위)
71-
.setPrice(50000) // 결제할 금액
72-
.addItem("마우스", 1, "ITEM_CODE_MOUSE", 100) // 주문정보에 담길 상품정보, 통계를 위해 사용
73-
.addItem("키보드", 1, "ITEM_CODE_KEYBOARD", 200, "패션", "여성상의", "블라우스") // 주문정보에 담길 상품정보, 통계를 위해 사용
74-
.onConfirm(new ConfirmListener() { // 결제가 진행되기 바로 직전 호출되는 함수로, 주로 재고처리 등의 로직이 수행
75-
@Override
76-
public void onConfirm(@Nullable String message) {
77-
if (0 < stuck) Bootpay.confirm(message); // 재고가 있을 경우.
78-
else Bootpay.removePaymentWindow(); // 재고가 없어 중간에 결제창을 닫고 싶을 경우
79-
Log.d("confirm", message);
80-
}
81-
})
82-
.onDone(new DoneListener() { // 결제완료시 호출, 아이템 지급 등 데이터 동기화 로직을 수행합니다
83-
@Override
84-
public void onDone(@Nullable String message) {
85-
Log.d("done", message);
86-
}
87-
})
88-
.onReady(new ReadyListener() { // 가상계좌 입금 계좌번호가 발급되면 호출되는 함수입니다.
89-
@Override
90-
public void onReady(@Nullable String message) {
91-
Log.d("ready", message);
92-
}
93-
})
94-
.onCancel(new CancelListener() { // 결제 취소시 호출
95-
@Override
96-
public void onCancel(@Nullable String message) {
97-
Log.d("cancel", message);
98-
}
99-
})
100-
.onError(new ErrorListener() { // 에러가 났을때 호출되는 부분
101-
@Override
102-
public void onError(@Nullable String message) {
103-
Log.d("error", message);
104-
}
105-
})
106-
.onClose(new CloseListener() { //결제창이 닫힐때 실행되는 부분
107-
@Override
108-
public void onClose(String message) {
109-
Log.d("close", "close");
110-
}
111-
})
112-
.show();
21+
public void goWebAppActivity(View v) {
22+
Intent intent = new Intent(this, WebAppActivity.class);
23+
startActivity(intent);
11324
}
11425
}
11526

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
package bootpay.co.kr.samplepayment;
2+
3+
import android.app.Activity;
4+
import android.os.Bundle;
5+
import android.support.annotation.Nullable;
6+
import android.util.Log;
7+
import android.view.View;
8+
9+
import java.util.ArrayList;
10+
import java.util.List;
11+
12+
import kr.co.bootpay.Bootpay;
13+
import kr.co.bootpay.BootpayAnalytics;
14+
import kr.co.bootpay.CancelListener;
15+
import kr.co.bootpay.CloseListener;
16+
import kr.co.bootpay.ConfirmListener;
17+
import kr.co.bootpay.DoneListener;
18+
import kr.co.bootpay.ErrorListener;
19+
import kr.co.bootpay.ReadyListener;
20+
import kr.co.bootpay.enums.Method;
21+
import kr.co.bootpay.enums.PG;
22+
import kr.co.bootpay.model.StatItem;
23+
24+
public class NativeActivity extends Activity {
25+
private int stuck = 0;
26+
27+
@Override
28+
protected void onCreate(Bundle savedInstanceState) {
29+
super.onCreate(savedInstanceState);
30+
setContentView(R.layout.activity_native);
31+
32+
// 초기설정 - 해당 프로젝트(안드로이드)의 application id 값을 설정합니다. 결제와 통계를 위해 꼭 필요합니다.
33+
BootpayAnalytics.init(this, "59a7e647396fa64fcad4a8c2");
34+
// BootpayAnalytics.init(this, "59bfc733e13f337dbd6ca489");
35+
36+
37+
// 통계 - 유저 로그인 시점에 호출
38+
BootpayAnalytics.login(
39+
"testUser", // user 고유 id 혹은 로그인 아이디
40+
"[email protected]", // user email
41+
"username", // user 이름
42+
"0", //1: 남자, 0: 여자
43+
"861014", // user 생년월일 앞자리
44+
"01012345678", // user 휴대폰 번호
45+
"충청"); // 서울|인천|대구|대전|광주|부산|울산|경기|강원|충청북도|충북|충청남도|충남|전라북도|전북|전라남도|전남|경상북도|경북|경상남도|경남|제주|세종 중 택 1
46+
47+
startTrace();
48+
}
49+
50+
public void startTrace() {
51+
52+
// 통계 - 페이지 추적
53+
List<StatItem> items = new ArrayList<>();
54+
items.add(new StatItem("마우스", "https://image.mouse.com/1234", "ITEM_CODE_MOUSE", "", "", ""));
55+
items.add(new StatItem("키보드", "https://image.keyboard.com/12345", "ITEM_CODE_KEYBOARD", "패션", "여성상의", "블라우스"));
56+
BootpayAnalytics.start("ItemListActivity", "item_list", items);
57+
}
58+
59+
public void onClick_request(View v) {
60+
// 결제호출
61+
Bootpay.init(getFragmentManager())
62+
.setApplicationId("5b14c0ffb6d49c40cda92c4e") // 해당 프로젝트(안드로이드)의 application id 값
63+
.setPG(PG.DANAL) // 결제할 PG 사
64+
.setUserPhone("010-1234-5678") // 구매자 전화번호
65+
.setMethod(Method.VBANK) // 결제수단
66+
.setName("맥북프로임다") // 결제할 상품명
67+
.setOrderId("1234") // 결제 고유번호expire_month
68+
// .setAccountExpireAt("2018-09-22") // 가상계좌 입금기간 제한 ( yyyy-mm-dd 포멧으로 입력해주세요. 가상계좌만 적용됩니다. 오늘 날짜보다 더 뒤(미래)여야 합니다 )
69+
.setQuotas(new int[] {0,2,3}) // 일시불, 2개월, 3개월 할부 허용, 할부는 최대 12개월까지 사용됨 (5만원 이상 구매시 할부허용 범위)
70+
.setPrice(50000) // 결제할 금액
71+
.addItem("마우스", 1, "ITEM_CODE_MOUSE", 100) // 주문정보에 담길 상품정보, 통계를 위해 사용
72+
.addItem("키보드", 1, "ITEM_CODE_KEYBOARD", 200, "패션", "여성상의", "블라우스") // 주문정보에 담길 상품정보, 통계를 위해 사용
73+
.onConfirm(new ConfirmListener() { // 결제가 진행되기 바로 직전 호출되는 함수로, 주로 재고처리 등의 로직이 수행
74+
@Override
75+
public void onConfirm(@Nullable String message) {
76+
if (0 < stuck) Bootpay.confirm(message); // 재고가 있을 경우.
77+
else Bootpay.removePaymentWindow(); // 재고가 없어 중간에 결제창을 닫고 싶을 경우
78+
Log.d("confirm", message);
79+
}
80+
})
81+
.onDone(new DoneListener() { // 결제완료시 호출, 아이템 지급 등 데이터 동기화 로직을 수행합니다
82+
@Override
83+
public void onDone(@Nullable String message) {
84+
Log.d("done", message);
85+
}
86+
})
87+
.onReady(new ReadyListener() { // 가상계좌 입금 계좌번호가 발급되면 호출되는 함수입니다.
88+
@Override
89+
public void onReady(@Nullable String message) {
90+
Log.d("ready", message);
91+
}
92+
})
93+
.onCancel(new CancelListener() { // 결제 취소시 호출
94+
@Override
95+
public void onCancel(@Nullable String message) {
96+
Log.d("cancel", message);
97+
}
98+
})
99+
.onError(new ErrorListener() { // 에러가 났을때 호출되는 부분
100+
@Override
101+
public void onError(@Nullable String message) {
102+
Log.d("error", message);
103+
}
104+
})
105+
.onClose(new CloseListener() { //결제창이 닫힐때 실행되는 부분
106+
@Override
107+
public void onClose(String message) {
108+
Log.d("close", "close");
109+
}
110+
})
111+
.show();
112+
}
113+
}

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

Lines changed: 0 additions & 14 deletions
This file was deleted.

0 commit comments

Comments
 (0)