epp-lib 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/model/checkout.mjs +13 -2
- package/esm2022/lib/model/domain.mjs +2 -2
- package/esm2022/lib/model/payment-type.mjs +3 -1
- package/esm2022/lib/model/timer.mjs +41 -0
- package/esm2022/lib/service/iframe-message.service.mjs +10 -5
- package/esm2022/lib/service/payment.service.mjs +100 -0
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/epp-lib.mjs +159 -8
- package/fesm2022/epp-lib.mjs.map +1 -1
- package/lib/model/checkout.d.ts +5 -1
- package/lib/model/payment-type.d.ts +3 -1
- package/lib/model/timer.d.ts +10 -0
- package/lib/service/payment.service.d.ts +24 -0
- package/package.json +3 -2
- package/public-api.d.ts +2 -0
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
import { PaymentType } from "./payment-type";
|
|
2
2
|
export class Checkout {
|
|
3
3
|
constructor() {
|
|
4
|
-
this.requestId =
|
|
4
|
+
this.requestId = 0;
|
|
5
5
|
this.paymentType = PaymentType.NA;
|
|
6
6
|
this.url = '';
|
|
7
|
+
this.expiration = 300;
|
|
7
8
|
this.errorMessage = '';
|
|
9
|
+
this.successMessage = '';
|
|
10
|
+
}
|
|
11
|
+
setErrorMessage(errorMessage) {
|
|
12
|
+
this.errorMessage = errorMessage;
|
|
13
|
+
this.popup = undefined;
|
|
14
|
+
}
|
|
15
|
+
setCallback(callback) {
|
|
16
|
+
this.successMessage = 'success';
|
|
17
|
+
this.callback = callback;
|
|
18
|
+
this.popup = undefined;
|
|
8
19
|
}
|
|
9
20
|
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcHAtbGliL3NyYy9saWIvbW9kZWwvY2hlY2tvdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE1BQU0sT0FBTyxRQUFRO0lBQXJCO1FBQ0ksY0FBUyxHQUFXLENBQUMsQ0FBQztRQUN0QixnQkFBVyxHQUFnQixXQUFXLENBQUMsRUFBRSxDQUFDO1FBQzFDLFFBQUcsR0FBWSxFQUFFLENBQUM7UUFDbEIsZUFBVSxHQUFXLEdBQUcsQ0FBQztRQUN6QixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMxQixtQkFBYyxHQUFXLEVBQUUsQ0FBQztJQWNoQyxDQUFDO0lBVkcsZUFBZSxDQUFDLFlBQW9CO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBYTtRQUNyQixJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztJQUMzQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXltZW50VHlwZSB9IGZyb20gXCIuL3BheW1lbnQtdHlwZVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIENoZWNrb3V0IHtcclxuICAgIHJlcXVlc3RJZDogbnVtYmVyID0gMDtcclxuICAgIHBheW1lbnRUeXBlOiBQYXltZW50VHlwZSA9IFBheW1lbnRUeXBlLk5BO1xyXG4gICAgdXJsOiBzdHJpbmcgID0gJyc7XHJcbiAgICBleHBpcmF0aW9uOiBudW1iZXIgPSAzMDA7XHJcbiAgICBlcnJvck1lc3NhZ2U6IHN0cmluZyA9ICcnO1xyXG4gICAgc3VjY2Vzc01lc3NhZ2U6IHN0cmluZyA9ICcnO1xyXG4gICAgY2FsbGJhY2s6IGFueTtcclxuICAgIHBvcHVwOiBhbnk7XHJcblxyXG4gICAgc2V0RXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnJvck1lc3NhZ2U7XHJcbiAgICAgICAgdGhpcy5wb3B1cCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBzZXRDYWxsYmFjayhjYWxsYmFjazogYW55KSB7XHJcbiAgICAgICAgdGhpcy5zdWNjZXNzTWVzc2FnZSA9ICdzdWNjZXNzJztcclxuICAgICAgICB0aGlzLmNhbGxiYWNrID0gY2FsbGJhY2s7XHJcbiAgICAgICAgdGhpcy5wb3B1cCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export class Domain {
|
|
2
2
|
constructor() {
|
|
3
3
|
this.defaultDomain = '';
|
|
4
|
-
this.allowedOrigins = [];
|
|
4
|
+
this.allowedOrigins = ['http://localhost:9000'];
|
|
5
5
|
this.specialDomain = [];
|
|
6
6
|
this.jetonDomain = '';
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXBwLWxpYi9zcmMvbGliL21vZGVsL2RvbWFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sTUFBTTtJQUtmO1FBSkEsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFDM0IsbUJBQWMsR0FBYSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDckQsa0JBQWEsR0FBYSxFQUFFLENBQUM7UUFDN0IsZ0JBQVcsR0FBVyxFQUFFLENBQUM7SUFDVixDQUFDO0NBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIERvbWFpbiB7XHJcbiAgICBkZWZhdWx0RG9tYWluOiBzdHJpbmcgPSAnJztcclxuICAgIGFsbG93ZWRPcmlnaW5zOiBzdHJpbmdbXSA9IFsnaHR0cDovL2xvY2FsaG9zdDo5MDAwJ107XHJcbiAgICBzcGVjaWFsRG9tYWluOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgamV0b25Eb21haW46IHN0cmluZyA9ICcnO1xyXG4gICAgY29uc3RydWN0b3IoKSB7fVxyXG59XHJcbiJdfQ==
|
|
@@ -2,5 +2,7 @@ export var PaymentType;
|
|
|
2
2
|
(function (PaymentType) {
|
|
3
3
|
PaymentType[PaymentType["NA"] = 0] = "NA";
|
|
4
4
|
PaymentType[PaymentType["JETON"] = 1] = "JETON";
|
|
5
|
+
PaymentType[PaymentType["ECOPAYZ"] = 2] = "ECOPAYZ";
|
|
6
|
+
PaymentType[PaymentType["RAPYD"] = 3] = "RAPYD";
|
|
5
7
|
})(PaymentType || (PaymentType = {}));
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXBwLWxpYi9zcmMvbGliL21vZGVsL3BheW1lbnQtdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxXQUtYO0FBTEQsV0FBWSxXQUFXO0lBQ25CLHlDQUFFLENBQUE7SUFDRiwrQ0FBSyxDQUFBO0lBQ0wsbURBQU8sQ0FBQTtJQUNQLCtDQUFLLENBQUE7QUFDVCxDQUFDLEVBTFcsV0FBVyxLQUFYLFdBQVcsUUFLdEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBQYXltZW50VHlwZSB7XHJcbiAgICBOQSxcclxuICAgIEpFVE9OLFxyXG4gICAgRUNPUEFZWixcclxuICAgIFJBUFlEXHJcbn1cclxuIl19
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Checkout } from "./checkout";
|
|
2
|
+
export class Timer {
|
|
3
|
+
constructor(interval, maxTime) {
|
|
4
|
+
this.interval = 0;
|
|
5
|
+
this.maxTime = 120000; // 2 minute
|
|
6
|
+
this.currentTime = 0;
|
|
7
|
+
this.popupTimer = null;
|
|
8
|
+
this.popup = null;
|
|
9
|
+
this.interval = interval;
|
|
10
|
+
if (maxTime)
|
|
11
|
+
this.maxTime = maxTime;
|
|
12
|
+
}
|
|
13
|
+
oberserableTimer(data, callback) {
|
|
14
|
+
this.popup = data.popup;
|
|
15
|
+
console.log("investigate popup status begin: ", this.popup?.name, this.popup);
|
|
16
|
+
this.popupTimer = setInterval(() => {
|
|
17
|
+
console.log("investigate popup status: ", data);
|
|
18
|
+
if ((this.maxTime > 0 && this.currentTime >= this.maxTime) || !data) {
|
|
19
|
+
this.stopWatcher();
|
|
20
|
+
// TODO Hit expire time
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
this.currentTime += this.interval;
|
|
24
|
+
if (data instanceof Checkout && (!data.popup || (data.popup && data.popup.closed))) { // Handle detect close popup by the user
|
|
25
|
+
console.log("Close popup");
|
|
26
|
+
this.stopWatcher();
|
|
27
|
+
if (callback) {
|
|
28
|
+
data.setErrorMessage("Payment popup is closed");
|
|
29
|
+
callback(data);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}, this.interval);
|
|
33
|
+
}
|
|
34
|
+
stopWatcher() {
|
|
35
|
+
if (this.popupTimer) {
|
|
36
|
+
clearInterval(this.popupTimer);
|
|
37
|
+
this.popupTimer = null;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcHAtbGliL3NyYy9saWIvbW9kZWwvdGltZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV0QyxNQUFNLE9BQU8sS0FBSztJQU9kLFlBQVksUUFBZ0IsRUFBRSxPQUFnQjtRQU45QyxhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLFlBQU8sR0FBVyxNQUFNLENBQUMsQ0FBQyxXQUFXO1FBQ3JDLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBQ2hCLGVBQVUsR0FBMEMsSUFBSSxDQUFDO1FBQ3pELFVBQUssR0FBa0IsSUFBSSxDQUFDO1FBR2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksT0FBTztZQUFFLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQzNDLENBQUM7SUFDRSxnQkFBZ0IsQ0FBQyxJQUFTLEVBQUUsUUFBbUI7UUFDM0MsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0NBQWtDLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNsRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ25CLHVCQUF1QjtnQkFDdkIsT0FBTztZQUNYLENBQUM7WUFDRCxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDbEMsSUFBSSxJQUFJLFlBQVksUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLHdDQUF3QztnQkFDMUgsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNuQixJQUFJLFFBQVEsRUFBRSxDQUFDO29CQUNYLElBQUksQ0FBQyxlQUFlLENBQUMseUJBQXlCLENBQUMsQ0FBQztvQkFDaEQsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNuQixDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUNELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQixhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQzNCLENBQUM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGVja291dCB9IGZyb20gXCIuL2NoZWNrb3V0XCI7XHJcblxyXG5leHBvcnQgY2xhc3MgVGltZXIge1xyXG4gICAgaW50ZXJ2YWw6IG51bWJlciA9IDA7XHJcbiAgICBtYXhUaW1lOiBudW1iZXIgPSAxMjAwMDA7IC8vIDIgbWludXRlXHJcbiAgICBjdXJyZW50VGltZTogbnVtYmVyID0gMDtcclxuICAgIHByaXZhdGUgcG9wdXBUaW1lcjogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0SW50ZXJ2YWw+IHwgbnVsbCA9IG51bGw7XHJcbiAgICBwcml2YXRlIHBvcHVwOiBXaW5kb3cgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihpbnRlcnZhbDogbnVtYmVyLCBtYXhUaW1lPzogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5pbnRlcnZhbCA9IGludGVydmFsO1xyXG4gICAgICAgIGlmIChtYXhUaW1lKSB0aGlzLm1heFRpbWUgPSBtYXhUaW1lO1xyXG5cdH1cclxuICAgIG9iZXJzZXJhYmxlVGltZXIoZGF0YTogYW55LCBjYWxsYmFjaz86IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5wb3B1cCA9IGRhdGEucG9wdXA7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJpbnZlc3RpZ2F0ZSBwb3B1cCBzdGF0dXMgYmVnaW46IFwiLCB0aGlzLnBvcHVwPy5uYW1lLCB0aGlzLnBvcHVwKTtcclxuICAgICAgICB0aGlzLnBvcHVwVGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiaW52ZXN0aWdhdGUgcG9wdXAgc3RhdHVzOiBcIiwgZGF0YSk7XHJcbiAgICAgICAgICAgIGlmICgodGhpcy5tYXhUaW1lID4gMCAmJiB0aGlzLmN1cnJlbnRUaW1lID49IHRoaXMubWF4VGltZSkgfHwgIWRhdGEpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcFdhdGNoZXIoKTtcclxuICAgICAgICAgICAgICAgIC8vIFRPRE8gSGl0IGV4cGlyZSB0aW1lXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50VGltZSArPSB0aGlzLmludGVydmFsO1xyXG4gICAgICAgICAgICBpZiAoZGF0YSBpbnN0YW5jZW9mIENoZWNrb3V0ICYmICghZGF0YS5wb3B1cCB8fCAoZGF0YS5wb3B1cCAmJiBkYXRhLnBvcHVwLmNsb3NlZCkpKSB7IC8vIEhhbmRsZSBkZXRlY3QgY2xvc2UgcG9wdXAgYnkgdGhlIHVzZXJcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiQ2xvc2UgcG9wdXBcIik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3BXYXRjaGVyKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoY2FsbGJhY2spIHtcclxuICAgICAgICAgICAgICAgICAgICBkYXRhLnNldEVycm9yTWVzc2FnZShcIlBheW1lbnQgcG9wdXAgaXMgY2xvc2VkXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgdGhpcy5pbnRlcnZhbCk7XHJcbiAgICB9XHJcbiAgICBzdG9wV2F0Y2hlcigpIHtcclxuICAgICAgICBpZiAodGhpcy5wb3B1cFRpbWVyKSB7XHJcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5wb3B1cFRpbWVyKTtcclxuICAgICAgICAgICAgdGhpcy5wb3B1cFRpbWVyID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -3,6 +3,7 @@ import { Subject } from 'rxjs';
|
|
|
3
3
|
import { Domain } from '../model/domain';
|
|
4
4
|
import { ApiRoute } from '../api-route.const';
|
|
5
5
|
import { PaymentType } from '../model/payment-type';
|
|
6
|
+
import { IframeMessageType } from '../model/iframe-message-type';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "./vodds-http.service";
|
|
8
9
|
export class IframeMessageService {
|
|
@@ -12,7 +13,9 @@ export class IframeMessageService {
|
|
|
12
13
|
this.messages$ = new Subject();
|
|
13
14
|
this.thirdPartyMessages$ = new Subject();
|
|
14
15
|
this.listener = (event) => {
|
|
16
|
+
// console.log("message: ", event);
|
|
15
17
|
if (!this.domain.allowedOrigins.includes(event.origin)) {
|
|
18
|
+
console.log("listener not allow: ", event);
|
|
16
19
|
if (this.domain.jetonDomain == event.origin) {
|
|
17
20
|
this.ngZone.run(() => {
|
|
18
21
|
this.thirdPartyMessages$.next(event);
|
|
@@ -21,9 +24,11 @@ export class IframeMessageService {
|
|
|
21
24
|
}
|
|
22
25
|
return;
|
|
23
26
|
}
|
|
24
|
-
|
|
25
|
-
this.
|
|
26
|
-
|
|
27
|
+
if (event.data && IframeMessageType[event.data.type]) {
|
|
28
|
+
this.ngZone.run(() => {
|
|
29
|
+
this.messages$.next(event.data);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
27
32
|
};
|
|
28
33
|
this.domain = new Domain();
|
|
29
34
|
this.http.get(ApiRoute.GET_DOMAIN.url).subscribe({
|
|
@@ -60,7 +65,7 @@ export class IframeMessageService {
|
|
|
60
65
|
sendMessageToIframe(iframe, message) {
|
|
61
66
|
if (iframe == undefined)
|
|
62
67
|
return;
|
|
63
|
-
iframe.nativeElement.contentWindow?.postMessage(message, window.location.
|
|
68
|
+
iframe.nativeElement.contentWindow?.postMessage(message, window.location.origin);
|
|
64
69
|
}
|
|
65
70
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IframeMessageService, deps: [{ token: i0.NgZone }, { token: i1.VoddsHttpService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
66
71
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IframeMessageService, providedIn: 'root' }); }
|
|
@@ -71,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
71
76
|
providedIn: 'root'
|
|
72
77
|
}]
|
|
73
78
|
}], ctorParameters: () => [{ type: i0.NgZone }, { type: i1.VoddsHttpService }] });
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZyYW1lLW1lc3NhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VwcC1saWIvc3JjL2xpYi9zZXJ2aWNlL2lmcmFtZS1tZXNzYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUUsT0FBTyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7QUFLakUsTUFBTSxPQUFPLG9CQUFvQjtJQXdCN0IsWUFBNkIsTUFBYyxFQUFVLElBQXNCO1FBQTlDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFrQjtRQXZCMUQsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFpQixDQUFDO1FBQ3pDLHdCQUFtQixHQUFHLElBQUksT0FBTyxFQUFnQixDQUFDO1FBR2xELGFBQVEsR0FBRyxDQUFDLEtBQW1CLEVBQUUsRUFBRTtZQUNoRCxtQ0FBbUM7WUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDckQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTt3QkFDakIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDekMsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsT0FBTztnQkFDWCxDQUFDO2dCQUNELE9BQU87WUFDWCxDQUFDO1lBQ0QsSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO29CQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3BDLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUdFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUM3QyxJQUFJLEVBQUUsQ0FBQyxJQUFTLEVBQUUsRUFBRTtnQkFDaEIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ1osSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUM1QixDQUFDO1lBQ0wsQ0FBQztZQUNELEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFFLENBQUM7U0FDbkIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFFBQVE7UUFDSixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUNELGtCQUFrQjtRQUNkLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRCxXQUFXO1FBQ1AsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxXQUF3QixFQUFFLE1BQWM7UUFDbEQsSUFBSSxXQUFXLElBQUksSUFBSTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3RDLFFBQU8sV0FBVyxFQUFFLENBQUM7WUFDakIsS0FBSyxXQUFXLENBQUMsS0FBSztnQkFDbEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUM7WUFDN0M7Z0JBQ0ksT0FBTyxLQUFLLENBQUM7UUFDckIsQ0FBQztJQUVMLENBQUM7SUFDRCxtQkFBbUIsQ0FBQyxNQUFxQyxFQUFFLE9BQXNCO1FBQzdFLElBQUksTUFBTSxJQUFJLFNBQVM7WUFBRSxPQUFPO1FBQ2hDLE1BQU0sQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FDM0MsT0FBTyxFQUNQLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUN6QixDQUFDO0lBQ04sQ0FBQzsrR0FsRVEsb0JBQW9CO21IQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7NEZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IElmcmFtZU1lc3NhZ2UgfSBmcm9tICcuLi9tb2RlbC9pZnJhbWUtbWVzc2FnZSc7XHJcbmltcG9ydCB7IERvbWFpbiB9IGZyb20gJy4uL21vZGVsL2RvbWFpbic7XHJcbmltcG9ydCB7IFZvZGRzSHR0cFNlcnZpY2UgfSBmcm9tICcuL3ZvZGRzLWh0dHAuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwaVJvdXRlIH0gZnJvbSAnLi4vYXBpLXJvdXRlLmNvbnN0JztcclxuaW1wb3J0IHsgUGF5bWVudFR5cGUgfSBmcm9tICcuLi9tb2RlbC9wYXltZW50LXR5cGUnO1xyXG5pbXBvcnQgeyBJZnJhbWVNZXNzYWdlVHlwZSB9IGZyb20gJy4uL21vZGVsL2lmcmFtZS1tZXNzYWdlLXR5cGUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSWZyYW1lTWVzc2FnZVNlcnZpY2Uge1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlcyQgPSBuZXcgU3ViamVjdDxJZnJhbWVNZXNzYWdlPigpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0aGlyZFBhcnR5TWVzc2FnZXMkID0gbmV3IFN1YmplY3Q8TWVzc2FnZUV2ZW50PigpO1xyXG4gICAgcHJpdmF0ZSBkb21haW46IERvbWFpbjtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpc3RlbmVyID0gKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+IHtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIm1lc3NhZ2U6IFwiLCBldmVudCk7XHJcbiAgICAgICAgaWYgKCF0aGlzLmRvbWFpbi5hbGxvd2VkT3JpZ2lucy5pbmNsdWRlcyhldmVudC5vcmlnaW4pKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwibGlzdGVuZXIgbm90IGFsbG93OiBcIiwgZXZlbnQpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5kb21haW4uamV0b25Eb21haW4gPT0gZXZlbnQub3JpZ2luKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGhpcmRQYXJ0eU1lc3NhZ2VzJC5uZXh0KGV2ZW50KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGV2ZW50LmRhdGEgJiYgSWZyYW1lTWVzc2FnZVR5cGVbZXZlbnQuZGF0YS50eXBlXSkge1xyXG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlcyQubmV4dChldmVudC5kYXRhKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLCBwcml2YXRlIGh0dHA6IFZvZGRzSHR0cFNlcnZpY2UpIHtcclxuICAgICAgICB0aGlzLmRvbWFpbiA9IG5ldyBEb21haW4oKTtcclxuICAgICAgICB0aGlzLmh0dHAuZ2V0KEFwaVJvdXRlLkdFVF9ET01BSU4udXJsKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OiAocmVzcDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzcC5kYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kb21haW4gPSByZXNwLmRhdGE7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVycm9yOiBlcnIgPT4ge31cclxuICAgICAgICB9KTtcclxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHRoaXMubGlzdGVuZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIG1lc3NhZ2VzKCk6IE9ic2VydmFibGU8SWZyYW1lTWVzc2FnZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1lc3NhZ2VzJC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuICAgIHRoaXJkUGFydHlNZXNzYWdlcygpOiBPYnNlcnZhYmxlPE1lc3NhZ2VFdmVudD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnRoaXJkUGFydHlNZXNzYWdlcyQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0aGlzLmxpc3RlbmVyKTtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VzJC5jb21wbGV0ZSgpO1xyXG4gICAgICAgIHRoaXMudGhpcmRQYXJ0eU1lc3NhZ2VzJC5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlzVmFsaWREb21haW4ocGF5bWVudFR5cGU6IFBheW1lbnRUeXBlLCBvcmlnaW46IHN0cmluZykge1xyXG4gICAgICAgIGlmIChwYXltZW50VHlwZSA9PSBudWxsKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgc3dpdGNoKHBheW1lbnRUeXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgUGF5bWVudFR5cGUuSkVUT046XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kb21haW4uamV0b25Eb21haW4gPT0gb3JpZ2luO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgICBzZW5kTWVzc2FnZVRvSWZyYW1lKGlmcmFtZTogRWxlbWVudFJlZjxIVE1MSUZyYW1lRWxlbWVudD4sIG1lc3NhZ2U6IElmcmFtZU1lc3NhZ2UpIHtcclxuICAgICAgICBpZiAoaWZyYW1lID09IHVuZGVmaW5lZCkgcmV0dXJuO1xyXG4gICAgICAgIGlmcmFtZS5uYXRpdmVFbGVtZW50LmNvbnRlbnRXaW5kb3c/LnBvc3RNZXNzYWdlKFxyXG4gICAgICAgICAgICBtZXNzYWdlLFxyXG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ub3JpZ2luXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { IframeMessageService } from './iframe-message.service';
|
|
3
|
+
import { IframeMessageType } from '../model/iframe-message-type';
|
|
4
|
+
import { Checkout } from '../model/checkout';
|
|
5
|
+
import { Timer } from '../model/timer';
|
|
6
|
+
import { PaymentType } from '../model/payment-type';
|
|
7
|
+
export class PaymentService {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.cache = new Map();
|
|
10
|
+
this.timer = new Timer(500); // 0.5s
|
|
11
|
+
this.iframeMessageService = inject(IframeMessageService);
|
|
12
|
+
/**
|
|
13
|
+
* Listen OPEN_PAYMENT_FORM message to open 3th party page
|
|
14
|
+
*/
|
|
15
|
+
this.iframeMessageService.messages().subscribe(message => {
|
|
16
|
+
console.log('Received from iframe:', message);
|
|
17
|
+
if (IframeMessageType.OPEN_PAYMENT_FORM == message.type) {
|
|
18
|
+
const checkout = Object.assign(new Checkout(), message.payload);
|
|
19
|
+
if (!checkout || this.cache.get(checkout.requestId))
|
|
20
|
+
return;
|
|
21
|
+
if (this.cache.size > 0) {
|
|
22
|
+
this.cache.clear();
|
|
23
|
+
//TODO clear the current popup
|
|
24
|
+
}
|
|
25
|
+
switch (checkout.paymentType) {
|
|
26
|
+
case PaymentType.JETON:
|
|
27
|
+
case PaymentType.ECOPAYZ:
|
|
28
|
+
this.openWindow(checkout);
|
|
29
|
+
break;
|
|
30
|
+
case PaymentType.RAPYD:
|
|
31
|
+
this.openVisaCheckout(checkout);
|
|
32
|
+
break;
|
|
33
|
+
default:
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (IframeMessageType.PAYMENT_CALLBACK == message.type) {
|
|
37
|
+
this.result = Object.assign(new Checkout(), message.payload);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Open 3th party page on the popup windown or new tab
|
|
43
|
+
*/
|
|
44
|
+
openWindow(checkout) {
|
|
45
|
+
console.log("Open windown: ", this.cache);
|
|
46
|
+
const width = 470;
|
|
47
|
+
const height = 550;
|
|
48
|
+
// var left = Math.max(0, (screen.width - width) / 2) + (screen.availLeft | 0),
|
|
49
|
+
// top = Math.max(0, (screen.height - height) / 2) + (screen.availTop | 0);
|
|
50
|
+
// var popup = window.open(url, "VOdds", 'width=' + width + ',height=' + height + ',left=' + left + ',top=' + top + ',status=0,location=0,menubar=0,toolbar=0');
|
|
51
|
+
const popup = window.open(checkout.url, 'VOdds', 'width=' + width + ',height=' + height + ',status=0,location=0,menubar=0,toolbar=0');
|
|
52
|
+
if (!popup) {
|
|
53
|
+
checkout.errorMessage = 'Your setting prevents popups. Please change your setting to allow it.';
|
|
54
|
+
this.sendMessageToIframe(checkout);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
checkout.popup = popup;
|
|
58
|
+
window.addEventListener("beforeunload", () => {
|
|
59
|
+
window.opener?.postMessage({ type: "vodds-popup-closing12" }, window.location.origin);
|
|
60
|
+
});
|
|
61
|
+
popup.postMessage({ type: "vodds-popup-closing" }, window.location.origin);
|
|
62
|
+
this.cache.set(checkout.requestId, checkout);
|
|
63
|
+
popup.focus();
|
|
64
|
+
this.onThirdPartyPopupClose(checkout);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Listen message or action from 3th party on the popup
|
|
68
|
+
*/
|
|
69
|
+
onThirdPartyPopupClose(checkout) {
|
|
70
|
+
this.iframeMessageService.thirdPartyMessages().subscribe(event => {
|
|
71
|
+
if (this.iframeMessageService.isValidDomain(checkout.paymentType, event.origin)) {
|
|
72
|
+
console.log('Received from 3th party:', event.data);
|
|
73
|
+
checkout.setCallback(event.data);
|
|
74
|
+
this.timer.stopWatcher();
|
|
75
|
+
this.sendMessageToIframe(checkout);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
this.timer.oberserableTimer(checkout, () => this.sendMessageToIframe(checkout));
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* send the message from the parent to the iframe
|
|
82
|
+
*/
|
|
83
|
+
sendMessageToIframe(checkout) {
|
|
84
|
+
console.log("send message to iframe");
|
|
85
|
+
if (this.iframe == undefined)
|
|
86
|
+
return;
|
|
87
|
+
let message = {
|
|
88
|
+
type: IframeMessageType.PAYMENT_CALLBACK,
|
|
89
|
+
payload: checkout
|
|
90
|
+
};
|
|
91
|
+
this.iframeMessageService.sendMessageToIframe(this.iframe, message);
|
|
92
|
+
}
|
|
93
|
+
// removePaymentIframe() {
|
|
94
|
+
// //TODO
|
|
95
|
+
// this.iframe = undefined;
|
|
96
|
+
// }
|
|
97
|
+
async openVisaCheckout(checkout) {
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXBwLWxpYi9zcmMvbGliL3NlcnZpY2UvcGF5bWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxNQUFNLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU3QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXBELE1BQU0sT0FBTyxjQUFjO0lBT3ZCO1FBTkEsVUFBSyxHQUEwQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRXpDLFVBQUssR0FBVSxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU87UUFFOUIseUJBQW9CLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFHeEQ7O1dBRUc7UUFDSCxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3JELE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDOUMsSUFBSSxpQkFBaUIsQ0FBQyxpQkFBaUIsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3RELE1BQU0sUUFBUSxHQUFhLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzFFLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFD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LENBQUM7Z0JBQ3BELFFBQVEsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUN6QixJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdkMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVEOztPQUVHO0lBQ0gsbUJBQW1CLENBQUMsUUFBa0I7UUFDbEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ3RDLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxTQUFTO1lBQUUsT0FBTztRQUNyQyxJQUFJLE9BQU8sR0FBa0I7WUFDekIsSUFBSSxFQUFFLGlCQUFpQixDQUFDLGdCQUFnQjtZQUN4QyxPQUFPLEVBQUUsUUFBUTtTQUNwQixDQUFBO1FBQ0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUNELDBCQUEwQjtJQUMxQixhQUFhO0lBQ2IsK0JBQStCO0lBQy9CLElBQUk7SUFDSixLQUFLLENBQUMsZ0JBQWdCLENBQUMsUUFBa0I7SUFFekMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgaW5qZWN0LCBJbmplY3RhYmxlLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSWZyYW1lTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuL2lmcmFtZS1tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJZnJhbWVNZXNzYWdlVHlwZSB9IGZyb20gJy4uL21vZGVsL2lmcmFtZS1tZXNzYWdlLXR5cGUnO1xyXG5pbXBvcnQgeyBDaGVja291dCB9IGZyb20gJy4uL21vZGVsL2NoZWNrb3V0JztcclxuaW1wb3J0IHsgSWZyYW1lTWVzc2FnZSB9IGZyb20gJy4uL21vZGVsL2lmcmFtZS1tZXNzYWdlJztcclxuaW1wb3J0IHsgVGltZXIgfSBmcm9tICcuLi9tb2RlbC90aW1lcic7XHJcbmltcG9ydCB7IFBheW1lbnRUeXBlIH0gZnJvbSAnLi4vbW9kZWwvcGF5bWVudC10eXBlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBQYXltZW50U2VydmljZSB7XHJcbiAgICBjYWNoZTogTWFwPG51bWJlciwgQ2hlY2tvdXQ+ID0gbmV3IE1hcCgpO1xyXG4gICAgaWZyYW1lOiBFbGVtZW50UmVmPEhUTUxJRnJhbWVFbGVtZW50PiB8IHVuZGVmaW5lZDsvL1NldCBmcm9tIHRoZSBjb21wb25lbnRcclxuICAgIHRpbWVyOiBUaW1lciA9IG5ldyBUaW1lcig1MDApOyAvLyAwLjVzXHJcbiAgICByZXN1bHQ6IENoZWNrb3V0IHwgdW5kZWZpbmVkO1xyXG4gICAgcHJpdmF0ZSBpZnJhbWVNZXNzYWdlU2VydmljZSA9IGluamVjdChJZnJhbWVNZXNzYWdlU2VydmljZSk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogTGlzdGVuIE9QRU5fUEFZTUVOVF9GT1JNIG1lc3NhZ2UgdG8gb3BlbiAzdGggcGFydHkgcGFnZVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuaWZyYW1lTWVzc2FnZVNlcnZpY2UubWVzc2FnZXMoKS5zdWJzY3JpYmUobWVzc2FnZSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdSZWNlaXZlZCBmcm9tIGlmcmFtZTonLCBtZXNzYWdlKTtcclxuICAgICAgICAgICAgaWYgKElmcmFtZU1lc3NhZ2VUeXBlLk9QRU5fUEFZTUVOVF9GT1JNID09IG1lc3NhZ2UudHlwZSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY2hlY2tvdXQ6IENoZWNrb3V0ID0gT2JqZWN0LmFzc2lnbihuZXcgQ2hlY2tvdXQoKSwgbWVzc2FnZS5wYXlsb2FkKTtcclxuICAgICAgICAgICAgICAgIGlmICghY2hlY2tvdXQgfHwgdGhpcy5jYWNoZS5nZXQoY2hlY2tvdXQucmVxdWVzdElkKSkgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY2FjaGUuc2l6ZSA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhY2hlLmNsZWFyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy9UT0RPIGNsZWFyIHRoZSBjdXJyZW50IHBvcHVwXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNoZWNrb3V0LnBheW1lbnRUeXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBQYXltZW50VHlwZS5KRVRPTjpcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIFBheW1lbnRUeXBlLkVDT1BBWVo6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbldpbmRvdyhjaGVja291dCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgUGF5bWVudFR5cGUuUkFQWUQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3BlblZpc2FDaGVja291dChjaGVja291dCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKElmcmFtZU1lc3NhZ2VUeXBlLlBBWU1FTlRfQ0FMTEJBQ0sgPT0gbWVzc2FnZS50eXBlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlc3VsdCA9IE9iamVjdC5hc3NpZ24obmV3IENoZWNrb3V0KCksIG1lc3NhZ2UucGF5bG9hZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9wZW4gM3RoIHBhcnR5IHBhZ2Ugb24gdGhlIHBvcHVwIHdpbmRvd24gb3IgbmV3IHRhYlxyXG4gICAgICovXHJcbiAgICBvcGVuV2luZG93KGNoZWNrb3V0OiBDaGVja291dCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiT3BlbiB3aW5kb3duOiBcIiwgdGhpcy5jYWNoZSk7XHJcbiAgICAgICAgY29uc3Qgd2lkdGggPSA0NzA7XHJcbiAgICAgICAgY29uc3QgaGVpZ2h0ID0gNTUwO1xyXG4gICAgICAgIC8vIHZhciBsZWZ0ID0gTWF0aC5tYXgoMCwgKHNjcmVlbi53aWR0aCAtIHdpZHRoKSAvIDIpICsgKHNjcmVlbi5hdmFpbExlZnQgfCAwKSxcclxuICAgICAgICAvLyB0b3AgPSBNYXRoLm1heCgwLCAoc2NyZWVuLmhlaWdodCAtIGhlaWdodCkgLyAyKSArIChzY3JlZW4uYXZhaWxUb3AgfCAwKTtcclxuICAgICAgICAvLyB2YXIgcG9wdXAgPSB3aW5kb3cub3Blbih1cmwsIFwiVk9kZHNcIiwgJ3dpZHRoPScgKyB3aWR0aCArICcsaGVpZ2h0PScgKyBoZWlnaHQgKyAnLGxlZnQ9JyArIGxlZnQgKyAnLHRvcD0nICsgdG9wICsgJyxzdGF0dXM9MCxsb2NhdGlvbj0wLG1lbnViYXI9MCx0b29sYmFyPTAnKTtcclxuICAgICAgICBjb25zdCBwb3B1cCA9IHdpbmRvdy5vcGVuKGNoZWNrb3V0LnVybCwgJ1ZPZGRzJywgJ3dpZHRoPScgKyB3aWR0aCArICcsaGVpZ2h0PScgKyBoZWlnaHQgKyAnLHN0YXR1cz0wLGxvY2F0aW9uPTAsbWVudWJhcj0wLHRvb2xiYXI9MCcpO1xyXG4gICAgICAgIGlmICghcG9wdXApIHtcclxuICAgICAgICAgICAgY2hlY2tvdXQuZXJyb3JNZXNzYWdlID0gJ1lvdXIgc2V0dGluZyBwcmV2ZW50cyBwb3B1cHMuIFBsZWFzZSBjaGFuZ2UgeW91ciBzZXR0aW5nIHRvIGFsbG93IGl0Lic7XHJcbiAgICAgICAgICAgIHRoaXMuc2VuZE1lc3NhZ2VUb0lmcmFtZShjaGVja291dCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2hlY2tvdXQucG9wdXAgPSBwb3B1cDtcclxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImJlZm9yZXVubG9hZFwiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIHdpbmRvdy5vcGVuZXI/LnBvc3RNZXNzYWdlKFxyXG4gICAgICAgICAgICAgICAgeyB0eXBlOiBcInZvZGRzLXBvcHVwLWNsb3NpbmcxMlwiIH0sXHJcbiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ub3JpZ2luXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcG9wdXAucG9zdE1lc3NhZ2UoXHJcbiAgICAgICAgICAgIHsgdHlwZTogXCJ2b2Rkcy1wb3B1cC1jbG9zaW5nXCIgfSxcclxuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLm9yaWdpblxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5jYWNoZS5zZXQoY2hlY2tvdXQucmVxdWVzdElkLCBjaGVja291dCk7XHJcbiAgICAgICAgcG9wdXAuZm9jdXMoKTtcclxuICAgICAgICB0aGlzLm9uVGhpcmRQYXJ0eVBvcHVwQ2xvc2UoY2hlY2tvdXQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTGlzdGVuIG1lc3NhZ2Ugb3IgYWN0aW9uIGZyb20gM3RoIHBhcnR5IG9uIHRoZSBwb3B1cFxyXG4gICAgICovXHJcbiAgICBvblRoaXJkUGFydHlQb3B1cENsb3NlKGNoZWNrb3V0OiBDaGVja291dCkge1xyXG4gICAgICAgIHRoaXMuaWZyYW1lTWVzc2FnZVNlcnZpY2UudGhpcmRQYXJ0eU1lc3NhZ2VzKCkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaWZyYW1lTWVzc2FnZVNlcnZpY2UuaXNWYWxpZERvbWFpbihjaGVja291dC5wYXltZW50VHlwZSwgZXZlbnQub3JpZ2luKSkge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1JlY2VpdmVkIGZyb20gM3RoIHBhcnR5OicsIGV2ZW50LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgY2hlY2tvdXQuc2V0Q2FsbGJhY2soZXZlbnQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWVyLnN0b3BXYXRjaGVyKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbmRNZXNzYWdlVG9JZnJhbWUoY2hlY2tvdXQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy50aW1lci5vYmVyc2VyYWJsZVRpbWVyKGNoZWNrb3V0LCAoKSA9PiAgdGhpcy5zZW5kTWVzc2FnZVRvSWZyYW1lKGNoZWNrb3V0KSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBzZW5kIHRoZSBtZXNzYWdlIGZyb20gdGhlIHBhcmVudCB0byB0aGUgaWZyYW1lXHJcbiAgICAgKi9cclxuICAgIHNlbmRNZXNzYWdlVG9JZnJhbWUoY2hlY2tvdXQ6IENoZWNrb3V0KSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJzZW5kIG1lc3NhZ2UgdG8gaWZyYW1lXCIpO1xyXG4gICAgICAgIGlmICh0aGlzLmlmcmFtZSA9PSB1bmRlZmluZWQpIHJldHVybjtcclxuICAgICAgICBsZXQgbWVzc2FnZTogSWZyYW1lTWVzc2FnZSA9IHtcclxuICAgICAgICAgICAgdHlwZTogSWZyYW1lTWVzc2FnZVR5cGUuUEFZTUVOVF9DQUxMQkFDSyxcclxuICAgICAgICAgICAgcGF5bG9hZDogY2hlY2tvdXRcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pZnJhbWVNZXNzYWdlU2VydmljZS5zZW5kTWVzc2FnZVRvSWZyYW1lKHRoaXMuaWZyYW1lLCBtZXNzYWdlKTtcclxuICAgIH1cclxuICAgIC8vIHJlbW92ZVBheW1lbnRJZnJhbWUoKSB7XHJcbiAgICAvLyAgICAgLy9UT0RPXHJcbiAgICAvLyAgICAgdGhpcy5pZnJhbWUgPSB1bmRlZmluZWQ7XHJcbiAgICAvLyB9XHJcbiAgICBhc3luYyBvcGVuVmlzYUNoZWNrb3V0KGNoZWNrb3V0OiBDaGVja291dCkge1xyXG5cclxuICAgIH1cclxufVxyXG4iXX0=
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -12,6 +12,8 @@ export * from './lib/model/iparam';
|
|
|
12
12
|
export * from './lib/model/payment-type';
|
|
13
13
|
// Services
|
|
14
14
|
export * from './lib/service/iframe-message.service';
|
|
15
|
+
export * from './lib/service/payment.service';
|
|
16
|
+
export * from './lib/service/vodds-http.service';
|
|
15
17
|
// Constants
|
|
16
18
|
export * from './lib/api-route.const';
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2VwcC1saWIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxTQUFTO0FBQ1QsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLDBCQUEwQixDQUFDO0FBRXpDLFdBQVc7QUFDWCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxrQ0FBa0MsQ0FBQztBQUVqRCxZQUFZO0FBQ1osY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBlcHAtbGliXHJcbiAqL1xyXG5cclxuLy8gTW9kZWxzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL2Jhc2UtZm9ybSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL2NhbGxiYWNrLW1lc3NhZ2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9jaGVja291dCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL2RvbWFpbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL2lmcmFtZS1tZXNzYWdlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWwvaWZyYW1lLW1lc3NhZ2UtdHlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL2lwYXJhbSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL3BheW1lbnQtdHlwZSc7XHJcblxyXG4vLyBTZXJ2aWNlc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2lmcmFtZS1tZXNzYWdlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3BheW1lbnQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2Uvdm9kZHMtaHR0cC5zZXJ2aWNlJztcclxuXHJcbi8vIENvbnN0YW50c1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGktcm91dGUuY29uc3QnOyJdfQ==
|
package/fesm2022/epp-lib.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i1 from '@angular/common/http';
|
|
2
2
|
import { HttpParams, HttpHeaders } from '@angular/common/http';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { Injectable } from '@angular/core';
|
|
4
|
+
import { Injectable, inject } from '@angular/core';
|
|
5
5
|
import { Observable, Subject } from 'rxjs';
|
|
6
6
|
|
|
7
7
|
class IParam {
|
|
@@ -74,21 +74,34 @@ var PaymentType;
|
|
|
74
74
|
(function (PaymentType) {
|
|
75
75
|
PaymentType[PaymentType["NA"] = 0] = "NA";
|
|
76
76
|
PaymentType[PaymentType["JETON"] = 1] = "JETON";
|
|
77
|
+
PaymentType[PaymentType["ECOPAYZ"] = 2] = "ECOPAYZ";
|
|
78
|
+
PaymentType[PaymentType["RAPYD"] = 3] = "RAPYD";
|
|
77
79
|
})(PaymentType || (PaymentType = {}));
|
|
78
80
|
|
|
79
81
|
class Checkout {
|
|
80
82
|
constructor() {
|
|
81
|
-
this.requestId =
|
|
83
|
+
this.requestId = 0;
|
|
82
84
|
this.paymentType = PaymentType.NA;
|
|
83
85
|
this.url = '';
|
|
86
|
+
this.expiration = 300;
|
|
84
87
|
this.errorMessage = '';
|
|
88
|
+
this.successMessage = '';
|
|
89
|
+
}
|
|
90
|
+
setErrorMessage(errorMessage) {
|
|
91
|
+
this.errorMessage = errorMessage;
|
|
92
|
+
this.popup = undefined;
|
|
93
|
+
}
|
|
94
|
+
setCallback(callback) {
|
|
95
|
+
this.successMessage = 'success';
|
|
96
|
+
this.callback = callback;
|
|
97
|
+
this.popup = undefined;
|
|
85
98
|
}
|
|
86
99
|
}
|
|
87
100
|
|
|
88
101
|
class Domain {
|
|
89
102
|
constructor() {
|
|
90
103
|
this.defaultDomain = '';
|
|
91
|
-
this.allowedOrigins = [];
|
|
104
|
+
this.allowedOrigins = ['http://localhost:9000'];
|
|
92
105
|
this.specialDomain = [];
|
|
93
106
|
this.jetonDomain = '';
|
|
94
107
|
}
|
|
@@ -163,7 +176,9 @@ class IframeMessageService {
|
|
|
163
176
|
this.messages$ = new Subject();
|
|
164
177
|
this.thirdPartyMessages$ = new Subject();
|
|
165
178
|
this.listener = (event) => {
|
|
179
|
+
// console.log("message: ", event);
|
|
166
180
|
if (!this.domain.allowedOrigins.includes(event.origin)) {
|
|
181
|
+
console.log("listener not allow: ", event);
|
|
167
182
|
if (this.domain.jetonDomain == event.origin) {
|
|
168
183
|
this.ngZone.run(() => {
|
|
169
184
|
this.thirdPartyMessages$.next(event);
|
|
@@ -172,9 +187,11 @@ class IframeMessageService {
|
|
|
172
187
|
}
|
|
173
188
|
return;
|
|
174
189
|
}
|
|
175
|
-
|
|
176
|
-
this.
|
|
177
|
-
|
|
190
|
+
if (event.data && IframeMessageType[event.data.type]) {
|
|
191
|
+
this.ngZone.run(() => {
|
|
192
|
+
this.messages$.next(event.data);
|
|
193
|
+
});
|
|
194
|
+
}
|
|
178
195
|
};
|
|
179
196
|
this.domain = new Domain();
|
|
180
197
|
this.http.get(ApiRoute.GET_DOMAIN.url).subscribe({
|
|
@@ -211,7 +228,7 @@ class IframeMessageService {
|
|
|
211
228
|
sendMessageToIframe(iframe, message) {
|
|
212
229
|
if (iframe == undefined)
|
|
213
230
|
return;
|
|
214
|
-
iframe.nativeElement.contentWindow?.postMessage(message, window.location.
|
|
231
|
+
iframe.nativeElement.contentWindow?.postMessage(message, window.location.origin);
|
|
215
232
|
}
|
|
216
233
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IframeMessageService, deps: [{ token: i0.NgZone }, { token: VoddsHttpService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
217
234
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IframeMessageService, providedIn: 'root' }); }
|
|
@@ -223,6 +240,140 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
223
240
|
}]
|
|
224
241
|
}], ctorParameters: () => [{ type: i0.NgZone }, { type: VoddsHttpService }] });
|
|
225
242
|
|
|
243
|
+
class Timer {
|
|
244
|
+
constructor(interval, maxTime) {
|
|
245
|
+
this.interval = 0;
|
|
246
|
+
this.maxTime = 120000; // 2 minute
|
|
247
|
+
this.currentTime = 0;
|
|
248
|
+
this.popupTimer = null;
|
|
249
|
+
this.popup = null;
|
|
250
|
+
this.interval = interval;
|
|
251
|
+
if (maxTime)
|
|
252
|
+
this.maxTime = maxTime;
|
|
253
|
+
}
|
|
254
|
+
oberserableTimer(data, callback) {
|
|
255
|
+
this.popup = data.popup;
|
|
256
|
+
console.log("investigate popup status begin: ", this.popup?.name, this.popup);
|
|
257
|
+
this.popupTimer = setInterval(() => {
|
|
258
|
+
console.log("investigate popup status: ", data);
|
|
259
|
+
if ((this.maxTime > 0 && this.currentTime >= this.maxTime) || !data) {
|
|
260
|
+
this.stopWatcher();
|
|
261
|
+
// TODO Hit expire time
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
this.currentTime += this.interval;
|
|
265
|
+
if (data instanceof Checkout && (!data.popup || (data.popup && data.popup.closed))) { // Handle detect close popup by the user
|
|
266
|
+
console.log("Close popup");
|
|
267
|
+
this.stopWatcher();
|
|
268
|
+
if (callback) {
|
|
269
|
+
data.setErrorMessage("Payment popup is closed");
|
|
270
|
+
callback(data);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}, this.interval);
|
|
274
|
+
}
|
|
275
|
+
stopWatcher() {
|
|
276
|
+
if (this.popupTimer) {
|
|
277
|
+
clearInterval(this.popupTimer);
|
|
278
|
+
this.popupTimer = null;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
class PaymentService {
|
|
284
|
+
constructor() {
|
|
285
|
+
this.cache = new Map();
|
|
286
|
+
this.timer = new Timer(500); // 0.5s
|
|
287
|
+
this.iframeMessageService = inject(IframeMessageService);
|
|
288
|
+
/**
|
|
289
|
+
* Listen OPEN_PAYMENT_FORM message to open 3th party page
|
|
290
|
+
*/
|
|
291
|
+
this.iframeMessageService.messages().subscribe(message => {
|
|
292
|
+
console.log('Received from iframe:', message);
|
|
293
|
+
if (IframeMessageType.OPEN_PAYMENT_FORM == message.type) {
|
|
294
|
+
const checkout = Object.assign(new Checkout(), message.payload);
|
|
295
|
+
if (!checkout || this.cache.get(checkout.requestId))
|
|
296
|
+
return;
|
|
297
|
+
if (this.cache.size > 0) {
|
|
298
|
+
this.cache.clear();
|
|
299
|
+
//TODO clear the current popup
|
|
300
|
+
}
|
|
301
|
+
switch (checkout.paymentType) {
|
|
302
|
+
case PaymentType.JETON:
|
|
303
|
+
case PaymentType.ECOPAYZ:
|
|
304
|
+
this.openWindow(checkout);
|
|
305
|
+
break;
|
|
306
|
+
case PaymentType.RAPYD:
|
|
307
|
+
this.openVisaCheckout(checkout);
|
|
308
|
+
break;
|
|
309
|
+
default:
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
if (IframeMessageType.PAYMENT_CALLBACK == message.type) {
|
|
313
|
+
this.result = Object.assign(new Checkout(), message.payload);
|
|
314
|
+
}
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Open 3th party page on the popup windown or new tab
|
|
319
|
+
*/
|
|
320
|
+
openWindow(checkout) {
|
|
321
|
+
console.log("Open windown: ", this.cache);
|
|
322
|
+
const width = 470;
|
|
323
|
+
const height = 550;
|
|
324
|
+
// var left = Math.max(0, (screen.width - width) / 2) + (screen.availLeft | 0),
|
|
325
|
+
// top = Math.max(0, (screen.height - height) / 2) + (screen.availTop | 0);
|
|
326
|
+
// var popup = window.open(url, "VOdds", 'width=' + width + ',height=' + height + ',left=' + left + ',top=' + top + ',status=0,location=0,menubar=0,toolbar=0');
|
|
327
|
+
const popup = window.open(checkout.url, 'VOdds', 'width=' + width + ',height=' + height + ',status=0,location=0,menubar=0,toolbar=0');
|
|
328
|
+
if (!popup) {
|
|
329
|
+
checkout.errorMessage = 'Your setting prevents popups. Please change your setting to allow it.';
|
|
330
|
+
this.sendMessageToIframe(checkout);
|
|
331
|
+
return;
|
|
332
|
+
}
|
|
333
|
+
checkout.popup = popup;
|
|
334
|
+
window.addEventListener("beforeunload", () => {
|
|
335
|
+
window.opener?.postMessage({ type: "vodds-popup-closing12" }, window.location.origin);
|
|
336
|
+
});
|
|
337
|
+
popup.postMessage({ type: "vodds-popup-closing" }, window.location.origin);
|
|
338
|
+
this.cache.set(checkout.requestId, checkout);
|
|
339
|
+
popup.focus();
|
|
340
|
+
this.onThirdPartyPopupClose(checkout);
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Listen message or action from 3th party on the popup
|
|
344
|
+
*/
|
|
345
|
+
onThirdPartyPopupClose(checkout) {
|
|
346
|
+
this.iframeMessageService.thirdPartyMessages().subscribe(event => {
|
|
347
|
+
if (this.iframeMessageService.isValidDomain(checkout.paymentType, event.origin)) {
|
|
348
|
+
console.log('Received from 3th party:', event.data);
|
|
349
|
+
checkout.setCallback(event.data);
|
|
350
|
+
this.timer.stopWatcher();
|
|
351
|
+
this.sendMessageToIframe(checkout);
|
|
352
|
+
}
|
|
353
|
+
});
|
|
354
|
+
this.timer.oberserableTimer(checkout, () => this.sendMessageToIframe(checkout));
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* send the message from the parent to the iframe
|
|
358
|
+
*/
|
|
359
|
+
sendMessageToIframe(checkout) {
|
|
360
|
+
console.log("send message to iframe");
|
|
361
|
+
if (this.iframe == undefined)
|
|
362
|
+
return;
|
|
363
|
+
let message = {
|
|
364
|
+
type: IframeMessageType.PAYMENT_CALLBACK,
|
|
365
|
+
payload: checkout
|
|
366
|
+
};
|
|
367
|
+
this.iframeMessageService.sendMessageToIframe(this.iframe, message);
|
|
368
|
+
}
|
|
369
|
+
// removePaymentIframe() {
|
|
370
|
+
// //TODO
|
|
371
|
+
// this.iframe = undefined;
|
|
372
|
+
// }
|
|
373
|
+
async openVisaCheckout(checkout) {
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
|
|
226
377
|
/*
|
|
227
378
|
* Public API Surface of epp-lib
|
|
228
379
|
*/
|
|
@@ -232,5 +383,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
232
383
|
* Generated bundle index. Do not edit.
|
|
233
384
|
*/
|
|
234
385
|
|
|
235
|
-
export { ApiRoute, BaseForm, CallbackMessage, Checkout, Domain, IParam, IframeMessageService, IframeMessageType, PaymentType };
|
|
386
|
+
export { ApiRoute, BaseForm, CallbackMessage, Checkout, Domain, IParam, IframeMessageService, IframeMessageType, PaymentService, PaymentType, VoddsHttpService };
|
|
236
387
|
//# sourceMappingURL=epp-lib.mjs.map
|
package/fesm2022/epp-lib.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"epp-lib.mjs","sources":["../../../projects/epp-lib/src/lib/model/iparam.ts","../../../projects/epp-lib/src/lib/model/base-form.ts","../../../projects/epp-lib/src/lib/model/callback-message.ts","../../../projects/epp-lib/src/lib/model/payment-type.ts","../../../projects/epp-lib/src/lib/model/checkout.ts","../../../projects/epp-lib/src/lib/model/domain.ts","../../../projects/epp-lib/src/lib/model/iframe-message-type.ts","../../../projects/epp-lib/src/lib/api-route.const.ts","../../../projects/epp-lib/src/lib/service/vodds-http.service.ts","../../../projects/epp-lib/src/lib/service/iframe-message.service.ts","../../../projects/epp-lib/src/public-api.ts","../../../projects/epp-lib/src/epp-lib.ts"],"sourcesContent":["export class IParam {\r\n getMobileFlag(): boolean {\r\n return /android|mobi/i.test(navigator.userAgent.toLowerCase());\r\n }\r\n \r\n toJson(): string {\r\n return JSON.stringify(this);\r\n }\r\n\r\n toFormUrlEncoded(): string {\r\n return new URLSearchParams(Object.entries(this).map(([key, value]) => [key, String(value)])).toString();\r\n }\r\n}\r\n","import { HttpParams, HttpHeaders } from '@angular/common/http';\r\nimport { IParam } from './iparam';\r\n\r\nexport class BaseForm extends IParam {\r\n\tisMobile: string;\r\n\r\n\tconstructor() {\r\n super();\r\n\t\tthis.isMobile = 'false';\r\n\t}\r\n\r\n\t/**\r\n\t * Use this function for building POST params with form url encoded content type.\r\n\t * Remeber to call params.toString() when passing to http request\r\n\t */\r\n\tgetUrlSearchParam() {\r\n\t\tconst params = new URLSearchParams();\r\n\t\tparams.set('isMobile', this.isMobile);\r\n\t\treturn params;\r\n\t}\r\n\r\n\t/**\r\n\t * Use this function for building GET params\r\n\t */\r\n\tgetHttpParams() {\r\n\t\tlet params = new HttpParams();\r\n\t\tparams = params.append('isMobile', this.isMobile);\r\n\t\treturn params;\r\n\t}\r\n\r\n\t/**\r\n\t * Add isMobile = 'true' to paramters\r\n\t * @param params : object\r\n\t */\r\n\taddIsMobile(params: any) {\r\n\t\tparams['isMobile'] = this.isMobile;\r\n\t}\r\n\r\n\t/**\r\n\t * For POST request with form-urlencoded\r\n\t */\r\n\tgetHeaderWithContentTypeForm() {\r\n\t\tconst headers = new HttpHeaders()\r\n\t\t\t.set('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\r\n\t\treturn headers;\r\n\t}\r\n\r\n\t/**\r\n\t * For POST request with json body\r\n\t */\r\n\tgetHeaderWithContentTypeJson() {\r\n\t\tconst headers = new HttpHeaders()\r\n\t\t\t.set('Content-Type', 'application/json; charset=utf-8');\r\n\t\treturn headers;\r\n\t}\r\n}","export class CallbackMessage {\r\n errorMessage: string = '';\r\n \r\n constructor(errorMessage: string) {\r\n this.errorMessage = errorMessage;\r\n }\r\n}\r\n","export enum PaymentType {\r\n NA,\r\n JETON\r\n}\r\n","import { PaymentType } from \"./payment-type\";\r\n\r\nexport class Checkout {\r\n requestId: string = '';\r\n paymentType: PaymentType = PaymentType.NA;\r\n url: string = '';\r\n errorMessage: string = '';\r\n callback: any;\r\n popup: any;\r\n}\r\n","export class Domain {\r\n defaultDomain: string = '';\r\n allowedOrigins: string[] = [];\r\n specialDomain: string[] = [];\r\n jetonDomain: string = '';\r\n constructor() {}\r\n}\r\n","export enum IframeMessageType {\r\n OPEN_PAYMENT_FORM,\r\n PAYMENT_CALLBACK\r\n}\r\n","export const ApiRoute = {\r\n GET_DOMAIN: { url: \"/getDomain\", method: \"get\" }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { IParam } from '../model/iparam';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class VoddsHttpService {\r\n\r\n constructor(public httpClient: HttpClient) { }\r\n\r\n postJson(url: string, request: IParam): Observable<any> {\r\n const headers = new HttpHeaders({ 'Content-type': 'application/json' });\r\n return this.httpClient.post(url, request.toJson(), { headers });\r\n }\r\n\r\n get<T>(url: string, param?: IParam): Observable<T> {\r\n if(param) {\r\n url = url + '?' + param.toFormUrlEncoded();\r\n }\r\n return this.httpClient.get<T>(url);\r\n }\r\n get2<T>(url: string, option?: any): Observable<T> {\r\n const observable: Observable<any> = new Observable(observer => {\r\n this.httpClient.get<any>(url, option).subscribe(\r\n res => {\r\n observer.next(res);\r\n },\r\n err => {\r\n observer.next(err);\r\n }\r\n );\r\n });\r\n return observable;\r\n }\r\n\r\n postFormUrlEncoded(url: string, request: IParam) {\r\n let options = {\r\n headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded')\r\n };\r\n return this.httpClient.post(url, request.toFormUrlEncoded(), options);\r\n }\r\n\r\n getMainDomain(url: string){\r\n let mainDomain = url;\r\n let domain = window.location.origin;\r\n if(domain.includes(\"promo.\")){\r\n domain = domain.replace(\"promo.\", \"\");\r\n mainDomain = domain + url;\r\n }\r\n\r\n return mainDomain;\r\n }\r\n\r\n getFullUrl(url: string, param: IParam): string {\r\n return `${url}?${param.toFormUrlEncoded()}`;\r\n }\r\n}\r\n","import { ElementRef, Injectable, NgZone } from '@angular/core';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { IframeMessage } from '../model/iframe-message';\r\nimport { Domain } from '../model/domain';\r\nimport { VoddsHttpService } from './vodds-http.service';\r\nimport { ApiRoute } from '../api-route.const';\r\nimport { PaymentType } from '../model/payment-type';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IframeMessageService {\r\n private readonly messages$ = new Subject<IframeMessage>();\r\n private readonly thirdPartyMessages$ = new Subject<MessageEvent>();\r\n private domain: Domain;\r\n\r\n private readonly listener = (event: MessageEvent) => {\r\n if (!this.domain.allowedOrigins.includes(event.origin)) {\r\n if (this.domain.jetonDomain == event.origin) {\r\n this.ngZone.run(() => {\r\n this.thirdPartyMessages$.next(event);\r\n });\r\n return;\r\n }\r\n return;\r\n }\r\n this.ngZone.run(() => {\r\n this.messages$.next(event.data);\r\n });\r\n };\r\n\r\n constructor(private readonly ngZone: NgZone, private http: VoddsHttpService) {\r\n this.domain = new Domain();\r\n this.http.get(ApiRoute.GET_DOMAIN.url).subscribe({\r\n next: (resp: any) => {\r\n if (resp.data) {\r\n this.domain = resp.data;\r\n }\r\n },\r\n error: err => {}\r\n });\r\n window.addEventListener('message', this.listener);\r\n }\r\n\r\n messages(): Observable<IframeMessage> {\r\n return this.messages$.asObservable();\r\n }\r\n thirdPartyMessages(): Observable<MessageEvent> {\r\n return this.thirdPartyMessages$.asObservable();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n window.removeEventListener('message', this.listener);\r\n this.messages$.complete();\r\n this.thirdPartyMessages$.complete();\r\n }\r\n\r\n isValidDomain(paymentType: PaymentType, origin: string) {\r\n if (paymentType == null) return false;\r\n switch(paymentType) {\r\n case PaymentType.JETON:\r\n return this.domain.jetonDomain == origin;\r\n default:\r\n return false;\r\n }\r\n\r\n }\r\n sendMessageToIframe(iframe: ElementRef<HTMLIFrameElement>, message: IframeMessage) {\r\n if (iframe == undefined) return;\r\n iframe.nativeElement.contentWindow?.postMessage(\r\n message,\r\n window.location.hostname\r\n );\r\n }\r\n}\r\n","/*\r\n * Public API Surface of epp-lib\r\n */\r\n\r\n// Models\r\nexport * from './lib/model/base-form';\r\nexport * from './lib/model/callback-message';\r\nexport * from './lib/model/checkout';\r\nexport * from './lib/model/domain';\r\nexport * from './lib/model/iframe-message';\r\nexport * from './lib/model/iframe-message-type';\r\nexport * from './lib/model/iparam';\r\nexport * from './lib/model/payment-type';\r\n\r\n// Services\r\nexport * from './lib/service/iframe-message.service';\r\n\r\n// Constants\r\nexport * from './lib/api-route.const';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.VoddsHttpService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"epp-lib.mjs","sources":["../../../projects/epp-lib/src/lib/model/iparam.ts","../../../projects/epp-lib/src/lib/model/base-form.ts","../../../projects/epp-lib/src/lib/model/callback-message.ts","../../../projects/epp-lib/src/lib/model/payment-type.ts","../../../projects/epp-lib/src/lib/model/checkout.ts","../../../projects/epp-lib/src/lib/model/domain.ts","../../../projects/epp-lib/src/lib/model/iframe-message-type.ts","../../../projects/epp-lib/src/lib/api-route.const.ts","../../../projects/epp-lib/src/lib/service/vodds-http.service.ts","../../../projects/epp-lib/src/lib/service/iframe-message.service.ts","../../../projects/epp-lib/src/lib/model/timer.ts","../../../projects/epp-lib/src/lib/service/payment.service.ts","../../../projects/epp-lib/src/public-api.ts","../../../projects/epp-lib/src/epp-lib.ts"],"sourcesContent":["export class IParam {\r\n getMobileFlag(): boolean {\r\n return /android|mobi/i.test(navigator.userAgent.toLowerCase());\r\n }\r\n \r\n toJson(): string {\r\n return JSON.stringify(this);\r\n }\r\n\r\n toFormUrlEncoded(): string {\r\n return new URLSearchParams(Object.entries(this).map(([key, value]) => [key, String(value)])).toString();\r\n }\r\n}\r\n","import { HttpParams, HttpHeaders } from '@angular/common/http';\r\nimport { IParam } from './iparam';\r\n\r\nexport class BaseForm extends IParam {\r\n\tisMobile: string;\r\n\r\n\tconstructor() {\r\n super();\r\n\t\tthis.isMobile = 'false';\r\n\t}\r\n\r\n\t/**\r\n\t * Use this function for building POST params with form url encoded content type.\r\n\t * Remeber to call params.toString() when passing to http request\r\n\t */\r\n\tgetUrlSearchParam() {\r\n\t\tconst params = new URLSearchParams();\r\n\t\tparams.set('isMobile', this.isMobile);\r\n\t\treturn params;\r\n\t}\r\n\r\n\t/**\r\n\t * Use this function for building GET params\r\n\t */\r\n\tgetHttpParams() {\r\n\t\tlet params = new HttpParams();\r\n\t\tparams = params.append('isMobile', this.isMobile);\r\n\t\treturn params;\r\n\t}\r\n\r\n\t/**\r\n\t * Add isMobile = 'true' to paramters\r\n\t * @param params : object\r\n\t */\r\n\taddIsMobile(params: any) {\r\n\t\tparams['isMobile'] = this.isMobile;\r\n\t}\r\n\r\n\t/**\r\n\t * For POST request with form-urlencoded\r\n\t */\r\n\tgetHeaderWithContentTypeForm() {\r\n\t\tconst headers = new HttpHeaders()\r\n\t\t\t.set('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\r\n\t\treturn headers;\r\n\t}\r\n\r\n\t/**\r\n\t * For POST request with json body\r\n\t */\r\n\tgetHeaderWithContentTypeJson() {\r\n\t\tconst headers = new HttpHeaders()\r\n\t\t\t.set('Content-Type', 'application/json; charset=utf-8');\r\n\t\treturn headers;\r\n\t}\r\n}","export class CallbackMessage {\r\n errorMessage: string = '';\r\n \r\n constructor(errorMessage: string) {\r\n this.errorMessage = errorMessage;\r\n }\r\n}\r\n","export enum PaymentType {\r\n NA,\r\n JETON,\r\n ECOPAYZ,\r\n RAPYD\r\n}\r\n","import { PaymentType } from \"./payment-type\";\r\n\r\nexport class Checkout {\r\n requestId: number = 0;\r\n paymentType: PaymentType = PaymentType.NA;\r\n url: string = '';\r\n expiration: number = 300;\r\n errorMessage: string = '';\r\n successMessage: string = '';\r\n callback: any;\r\n popup: any;\r\n\r\n setErrorMessage(errorMessage: string) {\r\n this.errorMessage = errorMessage;\r\n this.popup = undefined;\r\n }\r\n\r\n setCallback(callback: any) {\r\n this.successMessage = 'success';\r\n this.callback = callback;\r\n this.popup = undefined;\r\n }\r\n}\r\n","export class Domain {\r\n defaultDomain: string = '';\r\n allowedOrigins: string[] = ['http://localhost:9000'];\r\n specialDomain: string[] = [];\r\n jetonDomain: string = '';\r\n constructor() {}\r\n}\r\n","export enum IframeMessageType {\r\n OPEN_PAYMENT_FORM,\r\n PAYMENT_CALLBACK\r\n}\r\n","export const ApiRoute = {\r\n GET_DOMAIN: { url: \"/getDomain\", method: \"get\" }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { IParam } from '../model/iparam';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class VoddsHttpService {\r\n\r\n constructor(public httpClient: HttpClient) { }\r\n\r\n postJson(url: string, request: IParam): Observable<any> {\r\n const headers = new HttpHeaders({ 'Content-type': 'application/json' });\r\n return this.httpClient.post(url, request.toJson(), { headers });\r\n }\r\n\r\n get<T>(url: string, param?: IParam): Observable<T> {\r\n if(param) {\r\n url = url + '?' + param.toFormUrlEncoded();\r\n }\r\n return this.httpClient.get<T>(url);\r\n }\r\n get2<T>(url: string, option?: any): Observable<T> {\r\n const observable: Observable<any> = new Observable(observer => {\r\n this.httpClient.get<any>(url, option).subscribe(\r\n res => {\r\n observer.next(res);\r\n },\r\n err => {\r\n observer.next(err);\r\n }\r\n );\r\n });\r\n return observable;\r\n }\r\n\r\n postFormUrlEncoded(url: string, request: IParam) {\r\n let options = {\r\n headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded')\r\n };\r\n return this.httpClient.post(url, request.toFormUrlEncoded(), options);\r\n }\r\n\r\n getMainDomain(url: string){\r\n let mainDomain = url;\r\n let domain = window.location.origin;\r\n if(domain.includes(\"promo.\")){\r\n domain = domain.replace(\"promo.\", \"\");\r\n mainDomain = domain + url;\r\n }\r\n\r\n return mainDomain;\r\n }\r\n\r\n getFullUrl(url: string, param: IParam): string {\r\n return `${url}?${param.toFormUrlEncoded()}`;\r\n }\r\n}\r\n","import { ElementRef, Injectable, NgZone } from '@angular/core';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { IframeMessage } from '../model/iframe-message';\r\nimport { Domain } from '../model/domain';\r\nimport { VoddsHttpService } from './vodds-http.service';\r\nimport { ApiRoute } from '../api-route.const';\r\nimport { PaymentType } from '../model/payment-type';\r\nimport { IframeMessageType } from '../model/iframe-message-type';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IframeMessageService {\r\n private readonly messages$ = new Subject<IframeMessage>();\r\n private readonly thirdPartyMessages$ = new Subject<MessageEvent>();\r\n private domain: Domain;\r\n\r\n private readonly listener = (event: MessageEvent) => {\r\n // console.log(\"message: \", event);\r\n if (!this.domain.allowedOrigins.includes(event.origin)) {\r\n console.log(\"listener not allow: \", event);\r\n if (this.domain.jetonDomain == event.origin) {\r\n this.ngZone.run(() => {\r\n this.thirdPartyMessages$.next(event);\r\n });\r\n return;\r\n }\r\n return;\r\n }\r\n if (event.data && IframeMessageType[event.data.type]) {\r\n this.ngZone.run(() => {\r\n this.messages$.next(event.data);\r\n });\r\n }\r\n };\r\n\r\n constructor(private readonly ngZone: NgZone, private http: VoddsHttpService) {\r\n this.domain = new Domain();\r\n this.http.get(ApiRoute.GET_DOMAIN.url).subscribe({\r\n next: (resp: any) => {\r\n if (resp.data) {\r\n this.domain = resp.data;\r\n }\r\n },\r\n error: err => {}\r\n });\r\n window.addEventListener('message', this.listener);\r\n }\r\n\r\n messages(): Observable<IframeMessage> {\r\n return this.messages$.asObservable();\r\n }\r\n thirdPartyMessages(): Observable<MessageEvent> {\r\n return this.thirdPartyMessages$.asObservable();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n window.removeEventListener('message', this.listener);\r\n this.messages$.complete();\r\n this.thirdPartyMessages$.complete();\r\n }\r\n\r\n isValidDomain(paymentType: PaymentType, origin: string) {\r\n if (paymentType == null) return false;\r\n switch(paymentType) {\r\n case PaymentType.JETON:\r\n return this.domain.jetonDomain == origin;\r\n default:\r\n return false;\r\n }\r\n\r\n }\r\n sendMessageToIframe(iframe: ElementRef<HTMLIFrameElement>, message: IframeMessage) {\r\n if (iframe == undefined) return;\r\n iframe.nativeElement.contentWindow?.postMessage(\r\n message,\r\n window.location.origin\r\n );\r\n }\r\n}\r\n","import { Checkout } from \"./checkout\";\r\n\r\nexport class Timer {\r\n interval: number = 0;\r\n maxTime: number = 120000; // 2 minute\r\n currentTime: number = 0;\r\n private popupTimer: ReturnType<typeof setInterval> | null = null;\r\n private popup: Window | null = null;\r\n\r\n constructor(interval: number, maxTime?: number) {\r\n this.interval = interval;\r\n if (maxTime) this.maxTime = maxTime;\r\n\t}\r\n oberserableTimer(data: any, callback?: Function) {\r\n this.popup = data.popup;\r\n console.log(\"investigate popup status begin: \", this.popup?.name, this.popup);\r\n this.popupTimer = setInterval(() => {\r\n console.log(\"investigate popup status: \", data);\r\n if ((this.maxTime > 0 && this.currentTime >= this.maxTime) || !data) {\r\n this.stopWatcher();\r\n // TODO Hit expire time\r\n return;\r\n }\r\n this.currentTime += this.interval;\r\n if (data instanceof Checkout && (!data.popup || (data.popup && data.popup.closed))) { // Handle detect close popup by the user\r\n console.log(\"Close popup\");\r\n this.stopWatcher();\r\n if (callback) {\r\n data.setErrorMessage(\"Payment popup is closed\");\r\n callback(data);\r\n }\r\n }\r\n }, this.interval);\r\n }\r\n stopWatcher() {\r\n if (this.popupTimer) {\r\n clearInterval(this.popupTimer);\r\n this.popupTimer = null;\r\n }\r\n }\r\n}","import { ElementRef, inject, Injectable, ViewChild } from '@angular/core';\r\nimport { IframeMessageService } from './iframe-message.service';\r\nimport { IframeMessageType } from '../model/iframe-message-type';\r\nimport { Checkout } from '../model/checkout';\r\nimport { IframeMessage } from '../model/iframe-message';\r\nimport { Timer } from '../model/timer';\r\nimport { PaymentType } from '../model/payment-type';\r\n\r\nexport class PaymentService {\r\n cache: Map<number, Checkout> = new Map();\r\n iframe: ElementRef<HTMLIFrameElement> | undefined;//Set from the component\r\n timer: Timer = new Timer(500); // 0.5s\r\n result: Checkout | undefined;\r\n private iframeMessageService = inject(IframeMessageService);\r\n\r\n constructor() {\r\n /**\r\n * Listen OPEN_PAYMENT_FORM message to open 3th party page\r\n */\r\n this.iframeMessageService.messages().subscribe(message => {\r\n console.log('Received from iframe:', message);\r\n if (IframeMessageType.OPEN_PAYMENT_FORM == message.type) {\r\n const checkout: Checkout = Object.assign(new Checkout(), message.payload);\r\n if (!checkout || this.cache.get(checkout.requestId)) return;\r\n if (this.cache.size > 0) {\r\n this.cache.clear();\r\n //TODO clear the current popup\r\n }\r\n switch (checkout.paymentType) {\r\n case PaymentType.JETON:\r\n case PaymentType.ECOPAYZ:\r\n this.openWindow(checkout);\r\n break;\r\n case PaymentType.RAPYD:\r\n this.openVisaCheckout(checkout);\r\n break;\r\n default:\r\n }\r\n }\r\n if (IframeMessageType.PAYMENT_CALLBACK == message.type) {\r\n this.result = Object.assign(new Checkout(), message.payload);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Open 3th party page on the popup windown or new tab\r\n */\r\n openWindow(checkout: Checkout) {\r\n console.log(\"Open windown: \", this.cache);\r\n const width = 470;\r\n const height = 550;\r\n // var left = Math.max(0, (screen.width - width) / 2) + (screen.availLeft | 0),\r\n // top = Math.max(0, (screen.height - height) / 2) + (screen.availTop | 0);\r\n // var popup = window.open(url, \"VOdds\", 'width=' + width + ',height=' + height + ',left=' + left + ',top=' + top + ',status=0,location=0,menubar=0,toolbar=0');\r\n const popup = window.open(checkout.url, 'VOdds', 'width=' + width + ',height=' + height + ',status=0,location=0,menubar=0,toolbar=0');\r\n if (!popup) {\r\n checkout.errorMessage = 'Your setting prevents popups. Please change your setting to allow it.';\r\n this.sendMessageToIframe(checkout);\r\n return;\r\n }\r\n checkout.popup = popup;\r\n window.addEventListener(\"beforeunload\", () => {\r\n window.opener?.postMessage(\r\n { type: \"vodds-popup-closing12\" },\r\n window.location.origin\r\n );\r\n });\r\n popup.postMessage(\r\n { type: \"vodds-popup-closing\" },\r\n window.location.origin\r\n );\r\n this.cache.set(checkout.requestId, checkout);\r\n popup.focus();\r\n this.onThirdPartyPopupClose(checkout);\r\n }\r\n\r\n /**\r\n * Listen message or action from 3th party on the popup\r\n */\r\n onThirdPartyPopupClose(checkout: Checkout) {\r\n this.iframeMessageService.thirdPartyMessages().subscribe(event => {\r\n if (this.iframeMessageService.isValidDomain(checkout.paymentType, event.origin)) {\r\n console.log('Received from 3th party:', event.data);\r\n checkout.setCallback(event.data);\r\n this.timer.stopWatcher();\r\n this.sendMessageToIframe(checkout);\r\n }\r\n });\r\n this.timer.oberserableTimer(checkout, () => this.sendMessageToIframe(checkout));\r\n }\r\n\r\n /**\r\n * send the message from the parent to the iframe\r\n */\r\n sendMessageToIframe(checkout: Checkout) {\r\n console.log(\"send message to iframe\");\r\n if (this.iframe == undefined) return;\r\n let message: IframeMessage = {\r\n type: IframeMessageType.PAYMENT_CALLBACK,\r\n payload: checkout\r\n }\r\n this.iframeMessageService.sendMessageToIframe(this.iframe, message);\r\n }\r\n // removePaymentIframe() {\r\n // //TODO\r\n // this.iframe = undefined;\r\n // }\r\n async openVisaCheckout(checkout: Checkout) {\r\n\r\n }\r\n}\r\n","/*\r\n * Public API Surface of epp-lib\r\n */\r\n\r\n// Models\r\nexport * from './lib/model/base-form';\r\nexport * from './lib/model/callback-message';\r\nexport * from './lib/model/checkout';\r\nexport * from './lib/model/domain';\r\nexport * from './lib/model/iframe-message';\r\nexport * from './lib/model/iframe-message-type';\r\nexport * from './lib/model/iparam';\r\nexport * from './lib/model/payment-type';\r\n\r\n// Services\r\nexport * from './lib/service/iframe-message.service';\r\nexport * from './lib/service/payment.service';\r\nexport * from './lib/service/vodds-http.service';\r\n\r\n// Constants\r\nexport * from './lib/api-route.const';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.VoddsHttpService"],"mappings":"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"}
|
package/lib/model/checkout.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { PaymentType } from "./payment-type";
|
|
2
2
|
export declare class Checkout {
|
|
3
|
-
requestId:
|
|
3
|
+
requestId: number;
|
|
4
4
|
paymentType: PaymentType;
|
|
5
5
|
url: string;
|
|
6
|
+
expiration: number;
|
|
6
7
|
errorMessage: string;
|
|
8
|
+
successMessage: string;
|
|
7
9
|
callback: any;
|
|
8
10
|
popup: any;
|
|
11
|
+
setErrorMessage(errorMessage: string): void;
|
|
12
|
+
setCallback(callback: any): void;
|
|
9
13
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare class Timer {
|
|
2
|
+
interval: number;
|
|
3
|
+
maxTime: number;
|
|
4
|
+
currentTime: number;
|
|
5
|
+
private popupTimer;
|
|
6
|
+
private popup;
|
|
7
|
+
constructor(interval: number, maxTime?: number);
|
|
8
|
+
oberserableTimer(data: any, callback?: Function): void;
|
|
9
|
+
stopWatcher(): void;
|
|
10
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ElementRef } from '@angular/core';
|
|
2
|
+
import { Checkout } from '../model/checkout';
|
|
3
|
+
import { Timer } from '../model/timer';
|
|
4
|
+
export declare class PaymentService {
|
|
5
|
+
cache: Map<number, Checkout>;
|
|
6
|
+
iframe: ElementRef<HTMLIFrameElement> | undefined;
|
|
7
|
+
timer: Timer;
|
|
8
|
+
result: Checkout | undefined;
|
|
9
|
+
private iframeMessageService;
|
|
10
|
+
constructor();
|
|
11
|
+
/**
|
|
12
|
+
* Open 3th party page on the popup windown or new tab
|
|
13
|
+
*/
|
|
14
|
+
openWindow(checkout: Checkout): void;
|
|
15
|
+
/**
|
|
16
|
+
* Listen message or action from 3th party on the popup
|
|
17
|
+
*/
|
|
18
|
+
onThirdPartyPopupClose(checkout: Checkout): void;
|
|
19
|
+
/**
|
|
20
|
+
* send the message from the parent to the iframe
|
|
21
|
+
*/
|
|
22
|
+
sendMessageToIframe(checkout: Checkout): void;
|
|
23
|
+
openVisaCheckout(checkout: Checkout): Promise<void>;
|
|
24
|
+
}
|
package/package.json
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "epp-lib",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^17.3.0",
|
|
6
|
-
"@angular/core": "^17.3.0"
|
|
6
|
+
"@angular/core": "^17.3.0",
|
|
7
|
+
"@angular/material": "^17.3.0"
|
|
7
8
|
},
|
|
8
9
|
"dependencies": {
|
|
9
10
|
"tslib": "^2.3.0"
|
package/public-api.d.ts
CHANGED
|
@@ -7,4 +7,6 @@ export * from './lib/model/iframe-message-type';
|
|
|
7
7
|
export * from './lib/model/iparam';
|
|
8
8
|
export * from './lib/model/payment-type';
|
|
9
9
|
export * from './lib/service/iframe-message.service';
|
|
10
|
+
export * from './lib/service/payment.service';
|
|
11
|
+
export * from './lib/service/vodds-http.service';
|
|
10
12
|
export * from './lib/api-route.const';
|