Skip to content

Commit 3c533c4

Browse files
author
ehowlsla
committed
가상계좌 결제처리 추가
1 parent 3820fa9 commit 3c533c4

File tree

11 files changed

+103
-323
lines changed

11 files changed

+103
-323
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ allprojects {
3333
```gradle
3434
dependencies {
3535
...
36-
implementation 'com.github.bootpay:client_android_java:2.0.6'
36+
implementation 'com.github.bootpay:client_android_java:2.0.7'
3737
}
3838
```
3939

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

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ public static class Builder {
7373
private Request result = new Request();
7474
private EventListener listener;
7575
private ErrorListener error;
76+
private ReadyListener ready;
77+
private CloseListener close;
7678
private DoneListener done;
7779
private CancelListener cancel;
7880
private ConfirmListener confirm;
@@ -241,6 +243,11 @@ public Builder onConfirm(ConfirmListener listener) {
241243
return this;
242244
}
243245

246+
public Builder onReady(ReadyListener listener) {
247+
ready = listener;
248+
return this;
249+
}
250+
244251
public Builder onError(ErrorListener listener) {
245252
error = listener;
246253
return this;
@@ -251,6 +258,11 @@ public Builder onDone(DoneListener listener) {
251258
return this;
252259
}
253260

261+
public Builder onClose(CloseListener listener) {
262+
close = listener;
263+
return this;
264+
}
265+
254266
public Builder setUserEmail(String email) {
255267
result.setUserEmail(email);
256268
return this;
@@ -290,6 +302,16 @@ public void show() {
290302
dialog = new BootpayDialog()
291303
.setData(result)
292304
.setOnResponseListener(listener != null ? listener : new EventListener() {
305+
@Override
306+
public void onClose(@org.jetbrains.annotations.Nullable String message) {
307+
close.onClose(message);
308+
}
309+
310+
@Override
311+
public void onReady(@org.jetbrains.annotations.Nullable String message) {
312+
ready.onReady(message);
313+
}
314+
293315
@Override
294316
public void onError(@org.jetbrains.annotations.Nullable String message) {
295317
error.onError(message);
@@ -301,8 +323,8 @@ public void onCancel(@org.jetbrains.annotations.Nullable String message) {
301323
}
302324

303325
@Override
304-
public void onConfirmed(@org.jetbrains.annotations.Nullable String message) {
305-
confirm.onConfirmed(message);
326+
public void onConfirm(@org.jetbrains.annotations.Nullable String message) {
327+
confirm.onConfirm(message);
306328
}
307329

308330
@Override

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

Lines changed: 36 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,14 @@ internal class BootpayWebView @JvmOverloads constructor(context: Context, attrs:
2626
companion object {
2727
private const val BOOTPAY = "https://inapp.bootpay.co.kr/2.0.6/production.html"
2828

29+
private const val CLOSE = -3
30+
2931
private const val ERROR = -2
3032

3133
private const val CANCEL = -1
3234

35+
private const val READY = 0
36+
3337
private const val CONFIRM = 1
3438

3539
private const val DONE = 2
@@ -44,9 +48,11 @@ internal class BootpayWebView @JvmOverloads constructor(context: Context, attrs:
4448
super.handleMessage(msg)
4549
val data = msg.obj.toString()
4650
when (msg.what) {
51+
CLOSE -> onCloseHandled(data)
4752
ERROR -> onErrorHandled(data)
4853
CANCEL -> onCancelHandled(data)
49-
CONFIRM -> onConfirmeHandled(data)
54+
READY -> onReadyHandled(data)
55+
CONFIRM -> onConfirmHandled(data)
5056
DONE -> onDoneHandled(data)
5157
}
5258
}
@@ -99,7 +105,9 @@ internal class BootpayWebView @JvmOverloads constructor(context: Context, attrs:
99105
),
100106
error(),
101107
cancel(),
108+
ready(),
102109
confirm(),
110+
close(),
103111
done()
104112
)
105113
}
@@ -199,6 +207,10 @@ internal class BootpayWebView @JvmOverloads constructor(context: Context, attrs:
199207

200208
private fun error() = ".error(function(data){Android.error(JSON.stringify(data));})"
201209

210+
private fun ready() = ".ready(function(data){Android.ready(JSON.stringify(data));})"
211+
212+
private fun close() = ".close(function(data){Android.close('close');})"
213+
202214
private fun confirm() = ".confirm(function(data){Android.confirm(JSON.stringify(data));})"
203215

204216
private fun cancel() = ".cancel(function(data){Android.cancel(JSON.stringify(data));})"
@@ -287,6 +299,15 @@ internal class BootpayWebView @JvmOverloads constructor(context: Context, attrs:
287299
}
288300

289301
private inner class AndroidBridge: IScriptFuction {
302+
@JavascriptInterface
303+
override fun close(data: String) {
304+
eventHandler.sendMessage(Message.obtain(eventHandler, CLOSE, data))
305+
}
306+
307+
@JavascriptInterface
308+
override fun ready(data: String) {
309+
eventHandler.sendMessage(Message.obtain(eventHandler, READY, data))
310+
}
290311

291312
@JavascriptInterface
292313
override fun error(data: String) {
@@ -309,23 +330,32 @@ internal class BootpayWebView @JvmOverloads constructor(context: Context, attrs:
309330
}
310331
}
311332

333+
private fun onCloseHandled(data: String) {
334+
listener?.onClose(data)
335+
dialog?.dismiss()
336+
}
337+
312338
private fun onErrorHandled(data: String) {
313339
listener?.onError(data)
314-
dialog?.dismiss()
340+
// dialog?.dismiss()
315341
}
316342

317343
private fun onCancelHandled(data: String) {
318344
listener?.onCancel(data)
319-
dialog?.dismiss()
345+
// dialog?.dismiss()
346+
}
347+
348+
private fun onReadyHandled(data: String) {
349+
listener?.onReady(data)
320350
}
321351

322-
private fun onConfirmeHandled(data: String) {
323-
listener?.onConfirmed(data)
352+
private fun onConfirmHandled(data: String) {
353+
listener?.onConfirm(data)
324354
}
325355

326356
private fun onDoneHandled(data: String) {
327357
listener?.onDone(data)
328-
dialog?.dismiss()
358+
// dialog?.dismiss()
329359
}
330360

331361
private inner class Client: WebChromeClient() {
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package kr.co.bootpay
2+
3+
@FunctionalInterface
4+
interface CloseListener {
5+
fun onClose(message: String?)
6+
}

bootpay/src/main/java/kr/co/bootpay/ConfirmListener.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@ package kr.co.bootpay
22

33
@FunctionalInterface
44
interface ConfirmListener {
5-
fun onConfirmed(message: String?)
5+
fun onConfirm(message: String?)
66
}
Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
package kr.co.bootpay
22

3-
interface EventListener : CancelListener, ConfirmListener, ErrorListener, DoneListener {
3+
interface EventListener : CancelListener, ReadyListener, ConfirmListener, ErrorListener, DoneListener, CloseListener {
44
override fun onError(message: String?)
55

66
override fun onCancel(message: String?)
77

8-
override fun onConfirmed(message: String?)
8+
override fun onClose(message: String?)
9+
10+
override fun onReady(message: String?)
11+
12+
override fun onConfirm(message: String?)
913

1014
override fun onDone(message: String?)
1115
}

bootpay/src/main/java/kr/co/bootpay/IScriptFuction.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,15 @@ interface IScriptFuction {
66
@JavascriptInterface
77
fun error(data: String)
88

9+
@JavascriptInterface
10+
fun close(data: String)
11+
912
@JavascriptInterface
1013
fun cancel(data: String)
1114

15+
@JavascriptInterface
16+
fun ready(data: String)
17+
1218
@JavascriptInterface
1319
fun confirm(data: String)
1420

0 commit comments

Comments
 (0)