-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmobilepay.android.ts
More file actions
79 lines (61 loc) · 2.56 KB
/
Copy pathmobilepay.android.ts
File metadata and controls
79 lines (61 loc) · 2.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import { AndroidActivityResultEventData, android as androidApp } from 'tns-core-modules/application';
import {
MobilePayBase
} from './mobilepay.common';
declare var dk: any;
export class MobilePay extends MobilePayBase {
private static MOBILEPAY_PAYMENT_REQUEST_CODE = 1337;
public paymentCallback: any;
createMobilePayInstance(merchantId: string): any {
dk.danskebank.mobilepay.sdk.MobilePay.getInstance().init(
merchantId, dk.danskebank.mobilepay.sdk.Country.DENMARK);
return dk.danskebank.mobilepay.sdk.MobilePay.getInstance();
}
isMobilePayInstalled(merchantId: string): boolean {
return this.createMobilePayInstance(merchantId).isMobilePayInstalled(androidApp.context);
}
MakePayment(merchantId: string, price: number, accountId: string): void {
let payment = new dk.danskebank.mobilepay.sdk.model.Payment();
let javaBig = new java.math.BigDecimal(price);
payment.setProductPrice(javaBig);
payment.setOrderId(accountId);
let mobilePayInstance = this.createMobilePayInstance(merchantId);
let paymentIntent = mobilePayInstance.createPaymentIntent(payment);
let isMobilePayInstalled = mobilePayInstance.isMobilePayInstalled(androidApp.context);
if (!isMobilePayInstalled) {
return;
}
(androidApp.foregroundActivity || androidApp.startActivity).startActivityForResult(
paymentIntent,
MobilePay.MOBILEPAY_PAYMENT_REQUEST_CODE);
const resultCallback = new PaymentCallback();
const resultEvent = "activityResult";
const callback = (eventData: AndroidActivityResultEventData) => {
if (eventData.requestCode === MobilePay.MOBILEPAY_PAYMENT_REQUEST_CODE) {
androidApp.off(resultEvent, callback);
mobilePayInstance.handleResult(eventData.resultCode, eventData.intent, resultCallback);
}
};
androidApp.on(resultEvent, callback);
}
public addDelegate(): void {
}
}
class PaymentCallback extends dk.danskebank.mobilepay.sdk.ResultCallback {
constructor() {
super();
return global.__native(this);
}
onSuccess(successResult: any) {
console.log("We had a successful payment");
MobilePay.onPaymentSuccess(successResult);
}
onFailure(failureResult: any) {
console.log("We had a successful payment");
MobilePay.onPaymentFailure(failureResult);
}
onCancel() {
console.log("Payment was cancelled");
MobilePay.onPaymentCancel();
}
}