ngx-culqi 2.0.0-rc.1
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/README.md +131 -0
- package/esm2022/lib/models/culqi.model.mjs +2 -0
- package/esm2022/lib/ngx-culqi.module.mjs +17 -0
- package/esm2022/lib/ngx-culqi.service.mjs +88 -0
- package/esm2022/ngx-culqi.mjs +5 -0
- package/esm2022/public-api.mjs +6 -0
- package/fesm2022/ngx-culqi.mjs +115 -0
- package/fesm2022/ngx-culqi.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/models/culqi.model.d.ts +69 -0
- package/lib/models/culqi.model.d.ts.map +1 -0
- package/lib/ngx-culqi.module.d.ts +4 -0
- package/lib/ngx-culqi.module.d.ts.map +1 -0
- package/lib/ngx-culqi.service.d.ts +23 -0
- package/lib/ngx-culqi.service.d.ts.map +1 -0
- package/ngx-culqi.d.ts.map +1 -0
- package/package.json +43 -0
- package/public-api.d.ts +2 -0
- package/public-api.d.ts.map +1 -0
package/README.md
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img width="230" src="https://i.ibb.co/3B95v9S/icon-ngx-culqi.png">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<h1 align="center">
|
|
6
|
+
ngx-culqi
|
|
7
|
+
</h1>
|
|
8
|
+
|
|
9
|
+
<div align="center">
|
|
10
|
+
|
|
11
|
+
[Culqi](https://culqi.com/) payment gateway library made to use with Angular.
|
|
12
|
+
|
|
13
|
+
[](https://github.com/lperezp/admin-box/actions/workflows/build.yml)
|
|
14
|
+
[](https://www.codefactor.io/repository/github/ng-zorro/ng-zorro-antd)
|
|
15
|
+
[](https://codecov.io/gh/lperezp/ngx-culqi)
|
|
16
|
+
[](https://github.com/lperezp/ngx-culqi/releases)
|
|
17
|
+
[](https://www.npmjs.org/package/ngx-culqi)
|
|
18
|
+
[](https://npmjs.org/package/ngx-culqi)
|
|
19
|
+
[](https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE)
|
|
20
|
+
[](https://github.com/prettier/prettier)
|
|
21
|
+
[](https://twitter.com/lperezp_pe)
|
|
22
|
+
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## ☀️ License
|
|
27
|
+
|
|
28
|
+
[MIT](https://github.com/lperezp/ngx-culqi/blob/master/LICENSE)
|
|
29
|
+
|
|
30
|
+
## 🖥 Environment Support
|
|
31
|
+
|
|
32
|
+
* Angular `^18.0.0` [](https://www.npmjs.org/package/ngx-culqi)
|
|
33
|
+
|
|
34
|
+
## 📦 Installation
|
|
35
|
+
|
|
36
|
+
Adding ngx-culqi to your project is as simple as running one command:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
npm i ngx-culqi
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## 🔨 Usage
|
|
43
|
+
|
|
44
|
+
After installation add this code below the ``app-root`` tag in the ``index.html``.
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
<app-root></app-root>
|
|
48
|
+
<script src="https://checkout.culqi.com/js/v3"></script>
|
|
49
|
+
<script>
|
|
50
|
+
function culqi() {
|
|
51
|
+
if (Culqi.token) {
|
|
52
|
+
var token = Culqi.token.id;
|
|
53
|
+
var payment_event = new CustomEvent("payment_event", {
|
|
54
|
+
detail: token,
|
|
55
|
+
});
|
|
56
|
+
document.dispatchEvent(payment_event);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
</script>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Inside the class, add the __@HostListener__ decorator to catch the event from the _culqi.js_:
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
@HostListener('document:payment_event', ['$event'])
|
|
66
|
+
onPaymentEventCustom($event: CustomEvent) {
|
|
67
|
+
this.TOKEN_CULQI = $event.detail;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Inside ``ngOnInit`` add the following script:
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
ngOnInit() {
|
|
76
|
+
this.ngCulqiService.initCulqi('ENTER_PUBLIC_KEY');
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
***Replace with the PUBLIC KEY granted by Culqi.***
|
|
81
|
+
|
|
82
|
+
Create the function to run the gateway. Within the function you have to configure your payment gateway with the data of the online store.
|
|
83
|
+
You can also configure the button within the Culqi modal.
|
|
84
|
+
|
|
85
|
+
***[Check Culqi documentation for more information](https://docs.culqi.com/#/pagos/inicio)***
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
handleButtonPayment() {
|
|
89
|
+
const culqiSettings = {
|
|
90
|
+
title: 'My Angular Store',
|
|
91
|
+
currency: '',
|
|
92
|
+
description: 'item #01',
|
|
93
|
+
amount: 100.00,
|
|
94
|
+
};
|
|
95
|
+
const culqiOptions = {
|
|
96
|
+
lang: 'auto',
|
|
97
|
+
modal: true,
|
|
98
|
+
installments: false,
|
|
99
|
+
customButton: '',
|
|
100
|
+
style: {
|
|
101
|
+
logo: '',
|
|
102
|
+
maincolor: '',
|
|
103
|
+
buttontext: '',
|
|
104
|
+
maintext: '',
|
|
105
|
+
desctext: '',
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
this.ngCulqiService.generateToken(culqiSettings, culqiOptions);
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Demo
|
|
113
|
+
|
|
114
|
+
[Ver Demo](https://github.com/lperezp/culqi-angular)
|
|
115
|
+
|
|
116
|
+
## 🔗 Links
|
|
117
|
+
|
|
118
|
+
* [Culqi](https://culqi.com/)
|
|
119
|
+
* [Culqi Docs](https://docs.culqi.com/es/documentacion/)
|
|
120
|
+
|
|
121
|
+
## 🤝 Contributing
|
|
122
|
+
|
|
123
|
+
[](https://github.com/lperezp/ngx-culqi/pulls)
|
|
124
|
+
|
|
125
|
+
I welcome all contributions. Please read our [CONTRIBUTING.md](https://github.com/lperezp/ngx-culqi/blob/master/CONTRIBUTING.md) first. You can submit any ideas as [pull requests](https://github.com/lperezp/ngx-culqi/pulls) or as [GitHub issues](https://github.com/lperezp/ngx-culqi/issues).
|
|
126
|
+
|
|
127
|
+
## 🎉 Author
|
|
128
|
+
|
|
129
|
+
- [lperezp]( https://lperezp.dev/?utm_source=ngx-culqi&utm_medium=github-ngx-culqi&utm_campaign=ngx-culqi&utm_id=github)
|
|
130
|
+
|
|
131
|
+
**Love ngx-culqi? Give our repo a star :star: :arrow_up:.**
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VscWkubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY3VscWkvc3JjL2xpYi9tb2RlbHMvY3VscWkubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSUN1bHFpU2V0dGluZ3Mge1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgY3VycmVuY3k6IHN0cmluZztcbiAgICBhbW91bnQ6IG51bWJlcjtcbiAgICBvcmRlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHhjdWxxaXJzYWlkOiBzdHJpbmc7XG4gICAgcnNhcHVibGlja2V5OiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIElDdWxxaU9wdGlvbnMge1xuICAgIGxhbmc/OiBzdHJpbmc7XG4gICAgaW5zdGFsbG1lbnRzPzogYm9vbGVhbjtcbiAgICBwYXltZW50TWV0aG9kcz86IElQYXltZW50TWV0aG9kcztcbiAgICBzdHlsZT86IElTdHlsZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQYXltZW50TWV0aG9kcyB7XG4gICAgdGFyamV0YTogYm9vbGVhbjtcbiAgICB5YXBlOiBib29sZWFuO1xuICAgIGJhbmNhTW92aWw6IGJvb2xlYW47XG4gICAgYWdlbnRlOiBib29sZWFuO1xuICAgIGJpbGxldGVyYTogYm9vbGVhbjtcbiAgICBjdW90ZWFsbzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU3R5bGUge1xuICAgIGxvZ286IHN0cmluZztcbiAgICBiYW5uZXJDb2xvcj86IHN0cmluZztcbiAgICBidXR0b25CYWNrZ3JvdW5kPzogc3RyaW5nO1xuICAgIG1lbnVDb2xvcj86IHN0cmluZztcbiAgICBsaW5rc0NvbG9yPzogc3RyaW5nO1xuICAgIGJ1dHRvblRleHQ/OiBzdHJpbmc7XG4gICAgYnV0dG9uVGV4dENvbG9yPzogc3RyaW5nO1xuICAgIHByaWNlQ29sb3I/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9yZGVyQ3VscWkge1xuICAgIGFtb3VudDogbnVtYmVyO1xuICAgIGN1cnJlbmN5X2NvZGU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIG9yZGVyX251bWJlcjogbnVtYmVyO1xuICAgIGNsaWVudF9kZXRhaWxzOiBJQ2xpZW50RGV0YWlscztcbiAgICBleHBpcmF0aW9uX2RhdGU6IG51bWJlcjtcbiAgICBjb25maXJtOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDbGllbnREZXRhaWxzIHtcbiAgICBmaXJzdF9uYW1lOiBzdHJpbmc7XG4gICAgbGFzdF9uYW1lOiBzdHJpbmc7XG4gICAgZW1haWw6IHN0cmluZztcbiAgICBwaG9uZV9udW1iZXI6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT3JkZXJDdWxxaVJlc3BvbnNlIHtcbiAgICBvYmplY3Q6IHN0cmluZztcbiAgICBpZDogc3RyaW5nO1xuICAgIGFtb3VudDogbnVtYmVyO1xuICAgIHBheW1lbnRfY29kZTogbnVsbDtcbiAgICBjdXJyZW5jeV9jb2RlOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBvcmRlcl9udW1iZXI6IHN0cmluZztcbiAgICBzdGF0ZTogc3RyaW5nO1xuICAgIHRvdGFsX2ZlZTogbnVsbDtcbiAgICBuZXRfYW1vdW50OiBudWxsO1xuICAgIGZlZV9kZXRhaWxzOiBudWxsO1xuICAgIGNyZWF0aW9uX2RhdGU6IG51bWJlcjtcbiAgICBleHBpcmF0aW9uX2RhdGU6IG51bWJlcjtcbiAgICB1cGRhdGVkX2F0OiBudW1iZXI7XG4gICAgcGFpZF9hdDogbnVsbDtcbiAgICBhdmFpbGFibGVfb246IG51bGw7XG4gICAgbWV0YWRhdGE6IG51bGw7XG4gICAgcXI6IG51bGw7XG4gICAgY3VvdGVhbG86IG51bGw7XG4gICAgdXJsX3BlOiBudWxsO1xufVxuIl19
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { NgxCulqiService } from './ngx-culqi.service';
|
|
2
|
+
export class NgCulqiModule {
|
|
3
|
+
static forRoot(environment) {
|
|
4
|
+
console.log('NgCulqiModule.forRoot() environment', environment);
|
|
5
|
+
return {
|
|
6
|
+
ngModule: NgCulqiModule,
|
|
7
|
+
providers: [
|
|
8
|
+
NgxCulqiService,
|
|
9
|
+
{
|
|
10
|
+
provide: 'env',
|
|
11
|
+
useValue: environment
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWN1bHFpLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jdWxxaS9zcmMvbGliL25neC1jdWxxaS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE1BQU0sT0FBTyxhQUFhO0lBQ2YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFnQjtRQUNsQyxPQUFPLENBQUMsR0FBRyxDQUFDLHFDQUFxQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2hFLE9BQU87WUFDSCxRQUFRLEVBQUUsYUFBYTtZQUN2QixTQUFTLEVBQUU7Z0JBQ1AsZUFBZTtnQkFDZjtvQkFDSSxPQUFPLEVBQUUsS0FBSztvQkFDZCxRQUFRLEVBQUUsV0FBVztpQkFDeEI7YUFDSjtTQUNKLENBQUM7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3hDdWxxaVNlcnZpY2UgfSBmcm9tICcuL25neC1jdWxxaS5zZXJ2aWNlJztcblxuZXhwb3J0IGNsYXNzIE5nQ3VscWlNb2R1bGUge1xuICAgIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChlbnZpcm9ubWVudDogYW55KTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ0N1bHFpTW9kdWxlPiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdOZ0N1bHFpTW9kdWxlLmZvclJvb3QoKSBlbnZpcm9ubWVudCcsIGVudmlyb25tZW50KTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBOZ0N1bHFpTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAgTmd4Q3VscWlTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogJ2VudicsXG4gICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiBlbnZpcm9ubWVudFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICB9XG59Il19
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common/http";
|
|
5
|
+
export class NgxCulqiService {
|
|
6
|
+
constructor(http) {
|
|
7
|
+
this.http = http;
|
|
8
|
+
this.tokenCreatedSubject = new BehaviorSubject(null);
|
|
9
|
+
this.tokenCreated$ = this.tokenCreatedSubject.asObservable();
|
|
10
|
+
this.orderCreatedSubject = new BehaviorSubject(null);
|
|
11
|
+
this.orderCreated$ = this.orderCreatedSubject.asObservable();
|
|
12
|
+
window.culqi = this.culqi.bind(this);
|
|
13
|
+
this.loadScriptCulqi();
|
|
14
|
+
}
|
|
15
|
+
setTokenCreated(value) {
|
|
16
|
+
this.tokenCreatedSubject.next(value);
|
|
17
|
+
}
|
|
18
|
+
setOrderCreated(value) {
|
|
19
|
+
this.orderCreatedSubject.next(value);
|
|
20
|
+
}
|
|
21
|
+
initCulqi() {
|
|
22
|
+
Culqi.publicKey = 'environment.tokenCulqi';
|
|
23
|
+
}
|
|
24
|
+
loadScriptCulqi() {
|
|
25
|
+
const script = document.createElement('script');
|
|
26
|
+
script.type = 'text/javascript';
|
|
27
|
+
script.src = 'https://checkout.culqi.com/js/v4';
|
|
28
|
+
script.onload = () => {
|
|
29
|
+
console.log('Culqi loaded');
|
|
30
|
+
this.initCulqi();
|
|
31
|
+
};
|
|
32
|
+
document.head.appendChild(script);
|
|
33
|
+
}
|
|
34
|
+
generateOrder(order) {
|
|
35
|
+
return this.http.post('https://api.culqi.com/v2/orders', order, {
|
|
36
|
+
headers: {
|
|
37
|
+
Authorization: `Bearer ${'environment.apiKeyCulqi'}`
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
generateToken(culqiSettings, culqiOptions) {
|
|
42
|
+
if (Culqi) {
|
|
43
|
+
Culqi.settings(culqiSettings);
|
|
44
|
+
const options = {
|
|
45
|
+
lang: "es",
|
|
46
|
+
installments: false,
|
|
47
|
+
paymentMethods: {
|
|
48
|
+
tarjeta: true,
|
|
49
|
+
yape: true,
|
|
50
|
+
bancaMovil: true,
|
|
51
|
+
agente: true,
|
|
52
|
+
billetera: true,
|
|
53
|
+
cuotealo: true,
|
|
54
|
+
},
|
|
55
|
+
...culqiOptions
|
|
56
|
+
};
|
|
57
|
+
Culqi.options(options);
|
|
58
|
+
Culqi.open();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
culqi() {
|
|
62
|
+
if (Culqi.token) {
|
|
63
|
+
const token = Culqi.token.id;
|
|
64
|
+
this.setTokenCreated(token);
|
|
65
|
+
}
|
|
66
|
+
else if (Culqi.order) {
|
|
67
|
+
const order = Culqi.order;
|
|
68
|
+
this.setOrderCreated(order);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
console.log('Error :', Culqi.error);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
closeCulqi() {
|
|
75
|
+
Culqi.close();
|
|
76
|
+
this.tokenCreatedSubject.unsubscribe();
|
|
77
|
+
this.orderCreatedSubject.unsubscribe();
|
|
78
|
+
}
|
|
79
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgxCulqiService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
80
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgxCulqiService, providedIn: 'root' }); }
|
|
81
|
+
}
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgxCulqiService, decorators: [{
|
|
83
|
+
type: Injectable,
|
|
84
|
+
args: [{
|
|
85
|
+
providedIn: 'root'
|
|
86
|
+
}]
|
|
87
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }] });
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWN1bHFpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY3VscWkvc3JjL2xpYi9uZ3gtY3VscWkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7OztBQU9uRCxNQUFNLE9BQU8sZUFBZTtJQU8xQixZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBTnBDLHdCQUFtQixHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUMvRCxrQkFBYSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV4RCx3QkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFDL0Qsa0JBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7UUFHckQsTUFBYyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFhO1FBQzNCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFhO1FBQzNCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFNBQVM7UUFDUCxLQUFLLENBQUMsU0FBUyxHQUFHLHdCQUF3QixDQUFDO0lBQzdDLENBQUM7SUFFRCxlQUFlO1FBQ2IsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxNQUFNLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsa0NBQWtDLENBQUM7UUFDaEQsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7WUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDO1FBQ0YsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUdELGFBQWEsQ0FBQyxLQUFrQjtRQUM5QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxFQUFFLEtBQUssRUFBRTtZQUM5RCxPQUFPLEVBQUU7Z0JBQ1AsYUFBYSxFQUFFLFVBQVUseUJBQXlCLEVBQUU7YUFDckQ7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUFDLGFBQTZCLEVBQUUsWUFBNEI7UUFDdkUsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDOUIsTUFBTSxPQUFPLEdBQWtCO2dCQUM3QixJQUFJLEVBQUUsSUFBSTtnQkFDVixZQUFZLEVBQUUsS0FBSztnQkFDbkIsY0FBYyxFQUFFO29CQUNkLE9BQU8sRUFBRSxJQUFJO29CQUNiLElBQUksRUFBRSxJQUFJO29CQUNWLFVBQVUsRUFBRSxJQUFJO29CQUNoQixNQUFNLEVBQUUsSUFBSTtvQkFDWixTQUFTLEVBQUUsSUFBSTtvQkFDZixRQUFRLEVBQUUsSUFBSTtpQkFDZjtnQkFDRCxHQUFHLFlBQVk7YUFDaEIsQ0FBQztZQUNGLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkIsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixDQUFDO2FBQU0sSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdkIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUMxQixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNkLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDekMsQ0FBQzs4R0FqRlUsZUFBZTtrSEFBZixlQUFlLGNBRmQsTUFBTTs7MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJQ3VscWlPcHRpb25zLCBJQ3VscWlTZXR0aW5ncywgSU9yZGVyQ3VscWksIElPcmRlckN1bHFpUmVzcG9uc2UgfSBmcm9tICcuL21vZGVscy9jdWxxaS5tb2RlbCc7XG5leHBvcnQgZGVjbGFyZSBsZXQgQ3VscWk6IGFueTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTmd4Q3VscWlTZXJ2aWNlIHtcbiAgdG9rZW5DcmVhdGVkU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHRva2VuQ3JlYXRlZCQgPSB0aGlzLnRva2VuQ3JlYXRlZFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgb3JkZXJDcmVhdGVkU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIG9yZGVyQ3JlYXRlZCQgPSB0aGlzLm9yZGVyQ3JlYXRlZFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XG4gICAgKHdpbmRvdyBhcyBhbnkpLmN1bHFpID0gdGhpcy5jdWxxaS5iaW5kKHRoaXMpO1xuICAgIHRoaXMubG9hZFNjcmlwdEN1bHFpKCk7XG4gIH1cblxuICBzZXRUb2tlbkNyZWF0ZWQodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudG9rZW5DcmVhdGVkU3ViamVjdC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHNldE9yZGVyQ3JlYXRlZCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5vcmRlckNyZWF0ZWRTdWJqZWN0Lm5leHQodmFsdWUpO1xuICB9XG5cbiAgaW5pdEN1bHFpKCk6IHZvaWQge1xuICAgIEN1bHFpLnB1YmxpY0tleSA9ICdlbnZpcm9ubWVudC50b2tlbkN1bHFpJztcbiAgfVxuXG4gIGxvYWRTY3JpcHRDdWxxaSgpOiB2b2lkIHtcbiAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICBzY3JpcHQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xuICAgIHNjcmlwdC5zcmMgPSAnaHR0cHM6Ly9jaGVja291dC5jdWxxaS5jb20vanMvdjQnO1xuICAgIHNjcmlwdC5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnQ3VscWkgbG9hZGVkJyk7XG4gICAgICB0aGlzLmluaXRDdWxxaSgpO1xuICAgIH07XG4gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICB9XG5cblxuICBnZW5lcmF0ZU9yZGVyKG9yZGVyOiBJT3JkZXJDdWxxaSk6IE9ic2VydmFibGU8UGFydGlhbDxJT3JkZXJDdWxxaVJlc3BvbnNlPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCgnaHR0cHM6Ly9hcGkuY3VscWkuY29tL3YyL29yZGVycycsIG9yZGVyLCB7XG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHsnZW52aXJvbm1lbnQuYXBpS2V5Q3VscWknfWBcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdlbmVyYXRlVG9rZW4oY3VscWlTZXR0aW5nczogSUN1bHFpU2V0dGluZ3MsIGN1bHFpT3B0aW9ucz86IElDdWxxaU9wdGlvbnMpOiB2b2lkIHtcbiAgICBpZiAoQ3VscWkpIHtcbiAgICAgIEN1bHFpLnNldHRpbmdzKGN1bHFpU2V0dGluZ3MpO1xuICAgICAgY29uc3Qgb3B0aW9uczogSUN1bHFpT3B0aW9ucyA9IHtcbiAgICAgICAgbGFuZzogXCJlc1wiLFxuICAgICAgICBpbnN0YWxsbWVudHM6IGZhbHNlLFxuICAgICAgICBwYXltZW50TWV0aG9kczoge1xuICAgICAgICAgIHRhcmpldGE6IHRydWUsXG4gICAgICAgICAgeWFwZTogdHJ1ZSxcbiAgICAgICAgICBiYW5jYU1vdmlsOiB0cnVlLFxuICAgICAgICAgIGFnZW50ZTogdHJ1ZSxcbiAgICAgICAgICBiaWxsZXRlcmE6IHRydWUsXG4gICAgICAgICAgY3VvdGVhbG86IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLmN1bHFpT3B0aW9uc1xuICAgICAgfTtcbiAgICAgIEN1bHFpLm9wdGlvbnMob3B0aW9ucyk7XG4gICAgICBDdWxxaS5vcGVuKCk7XG4gICAgfVxuICB9XG5cbiAgY3VscWkoKTogdm9pZCB7XG4gICAgaWYgKEN1bHFpLnRva2VuKSB7XG4gICAgICBjb25zdCB0b2tlbiA9IEN1bHFpLnRva2VuLmlkO1xuICAgICAgdGhpcy5zZXRUb2tlbkNyZWF0ZWQodG9rZW4pO1xuICAgIH0gZWxzZSBpZiAoQ3VscWkub3JkZXIpIHtcbiAgICAgIGNvbnN0IG9yZGVyID0gQ3VscWkub3JkZXI7XG4gICAgICB0aGlzLnNldE9yZGVyQ3JlYXRlZChvcmRlcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKCdFcnJvciA6JywgQ3VscWkuZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlQ3VscWkoKTogdm9pZCB7XG4gICAgQ3VscWkuY2xvc2UoKTtcbiAgICB0aGlzLnRva2VuQ3JlYXRlZFN1YmplY3QudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm9yZGVyQ3JlYXRlZFN1YmplY3QudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWN1bHFpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvbmd4LWN1bHFpL3NyYy9uZ3gtY3VscWkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of ngx-culqi
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/ngx-culqi.service';
|
|
5
|
+
export * from './lib/ngx-culqi.module';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1jdWxxaS9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LWN1bHFpXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LWN1bHFpLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LWN1bHFpLm1vZHVsZSc7Il19
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
|
4
|
+
import * as i1 from '@angular/common/http';
|
|
5
|
+
|
|
6
|
+
class NgxCulqiService {
|
|
7
|
+
constructor(http) {
|
|
8
|
+
this.http = http;
|
|
9
|
+
this.tokenCreatedSubject = new BehaviorSubject(null);
|
|
10
|
+
this.tokenCreated$ = this.tokenCreatedSubject.asObservable();
|
|
11
|
+
this.orderCreatedSubject = new BehaviorSubject(null);
|
|
12
|
+
this.orderCreated$ = this.orderCreatedSubject.asObservable();
|
|
13
|
+
window.culqi = this.culqi.bind(this);
|
|
14
|
+
this.loadScriptCulqi();
|
|
15
|
+
}
|
|
16
|
+
setTokenCreated(value) {
|
|
17
|
+
this.tokenCreatedSubject.next(value);
|
|
18
|
+
}
|
|
19
|
+
setOrderCreated(value) {
|
|
20
|
+
this.orderCreatedSubject.next(value);
|
|
21
|
+
}
|
|
22
|
+
initCulqi() {
|
|
23
|
+
Culqi.publicKey = 'environment.tokenCulqi';
|
|
24
|
+
}
|
|
25
|
+
loadScriptCulqi() {
|
|
26
|
+
const script = document.createElement('script');
|
|
27
|
+
script.type = 'text/javascript';
|
|
28
|
+
script.src = 'https://checkout.culqi.com/js/v4';
|
|
29
|
+
script.onload = () => {
|
|
30
|
+
console.log('Culqi loaded');
|
|
31
|
+
this.initCulqi();
|
|
32
|
+
};
|
|
33
|
+
document.head.appendChild(script);
|
|
34
|
+
}
|
|
35
|
+
generateOrder(order) {
|
|
36
|
+
return this.http.post('https://api.culqi.com/v2/orders', order, {
|
|
37
|
+
headers: {
|
|
38
|
+
Authorization: `Bearer ${'environment.apiKeyCulqi'}`
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
generateToken(culqiSettings, culqiOptions) {
|
|
43
|
+
if (Culqi) {
|
|
44
|
+
Culqi.settings(culqiSettings);
|
|
45
|
+
const options = {
|
|
46
|
+
lang: "es",
|
|
47
|
+
installments: false,
|
|
48
|
+
paymentMethods: {
|
|
49
|
+
tarjeta: true,
|
|
50
|
+
yape: true,
|
|
51
|
+
bancaMovil: true,
|
|
52
|
+
agente: true,
|
|
53
|
+
billetera: true,
|
|
54
|
+
cuotealo: true,
|
|
55
|
+
},
|
|
56
|
+
...culqiOptions
|
|
57
|
+
};
|
|
58
|
+
Culqi.options(options);
|
|
59
|
+
Culqi.open();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
culqi() {
|
|
63
|
+
if (Culqi.token) {
|
|
64
|
+
const token = Culqi.token.id;
|
|
65
|
+
this.setTokenCreated(token);
|
|
66
|
+
}
|
|
67
|
+
else if (Culqi.order) {
|
|
68
|
+
const order = Culqi.order;
|
|
69
|
+
this.setOrderCreated(order);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
console.log('Error :', Culqi.error);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
closeCulqi() {
|
|
76
|
+
Culqi.close();
|
|
77
|
+
this.tokenCreatedSubject.unsubscribe();
|
|
78
|
+
this.orderCreatedSubject.unsubscribe();
|
|
79
|
+
}
|
|
80
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgxCulqiService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
81
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgxCulqiService, providedIn: 'root' }); }
|
|
82
|
+
}
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgxCulqiService, decorators: [{
|
|
84
|
+
type: Injectable,
|
|
85
|
+
args: [{
|
|
86
|
+
providedIn: 'root'
|
|
87
|
+
}]
|
|
88
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }] });
|
|
89
|
+
|
|
90
|
+
class NgCulqiModule {
|
|
91
|
+
static forRoot(environment) {
|
|
92
|
+
console.log('NgCulqiModule.forRoot() environment', environment);
|
|
93
|
+
return {
|
|
94
|
+
ngModule: NgCulqiModule,
|
|
95
|
+
providers: [
|
|
96
|
+
NgxCulqiService,
|
|
97
|
+
{
|
|
98
|
+
provide: 'env',
|
|
99
|
+
useValue: environment
|
|
100
|
+
}
|
|
101
|
+
]
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/*
|
|
107
|
+
* Public API Surface of ngx-culqi
|
|
108
|
+
*/
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Generated bundle index. Do not edit.
|
|
112
|
+
*/
|
|
113
|
+
|
|
114
|
+
export { NgCulqiModule, NgxCulqiService };
|
|
115
|
+
//# sourceMappingURL=ngx-culqi.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngx-culqi.mjs","sources":["../../../projects/ngx-culqi/src/lib/ngx-culqi.service.ts","../../../projects/ngx-culqi/src/lib/ngx-culqi.module.ts","../../../projects/ngx-culqi/src/public-api.ts","../../../projects/ngx-culqi/src/ngx-culqi.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ICulqiOptions, ICulqiSettings, IOrderCulqi, IOrderCulqiResponse } from './models/culqi.model';\nexport declare let Culqi: any;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgxCulqiService {\n tokenCreatedSubject = new BehaviorSubject<string | null>(null);\n tokenCreated$ = this.tokenCreatedSubject.asObservable();\n\n orderCreatedSubject = new BehaviorSubject<string | null>(null);\n orderCreated$ = this.orderCreatedSubject.asObservable();\n\n constructor(private http: HttpClient) {\n (window as any).culqi = this.culqi.bind(this);\n this.loadScriptCulqi();\n }\n\n setTokenCreated(value: string): void {\n this.tokenCreatedSubject.next(value);\n }\n\n setOrderCreated(value: string): void {\n this.orderCreatedSubject.next(value);\n }\n\n initCulqi(): void {\n Culqi.publicKey = 'environment.tokenCulqi';\n }\n\n loadScriptCulqi(): void {\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = 'https://checkout.culqi.com/js/v4';\n script.onload = () => {\n console.log('Culqi loaded');\n this.initCulqi();\n };\n document.head.appendChild(script);\n }\n\n\n generateOrder(order: IOrderCulqi): Observable<Partial<IOrderCulqiResponse>> {\n return this.http.post('https://api.culqi.com/v2/orders', order, {\n headers: {\n Authorization: `Bearer ${'environment.apiKeyCulqi'}`\n }\n });\n }\n\n generateToken(culqiSettings: ICulqiSettings, culqiOptions?: ICulqiOptions): void {\n if (Culqi) {\n Culqi.settings(culqiSettings);\n const options: ICulqiOptions = {\n lang: \"es\",\n installments: false,\n paymentMethods: {\n tarjeta: true,\n yape: true,\n bancaMovil: true,\n agente: true,\n billetera: true,\n cuotealo: true,\n },\n ...culqiOptions\n };\n Culqi.options(options);\n Culqi.open();\n }\n }\n\n culqi(): void {\n if (Culqi.token) {\n const token = Culqi.token.id;\n this.setTokenCreated(token);\n } else if (Culqi.order) {\n const order = Culqi.order;\n this.setOrderCreated(order);\n } else {\n console.log('Error :', Culqi.error);\n }\n }\n\n closeCulqi(): void {\n Culqi.close();\n this.tokenCreatedSubject.unsubscribe();\n this.orderCreatedSubject.unsubscribe();\n }\n}\n","import { ModuleWithProviders } from '@angular/core';\nimport { NgxCulqiService } from './ngx-culqi.service';\n\nexport class NgCulqiModule {\n public static forRoot(environment: any): ModuleWithProviders<NgCulqiModule> {\n console.log('NgCulqiModule.forRoot() environment', environment);\n return {\n ngModule: NgCulqiModule,\n providers: [\n NgxCulqiService,\n {\n provide: 'env',\n useValue: environment\n }\n ]\n };\n }\n}","/*\n * Public API Surface of ngx-culqi\n */\n\nexport * from './lib/ngx-culqi.service';\nexport * from './lib/ngx-culqi.module';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
export interface ICulqiSettings {
|
|
2
|
+
title: string;
|
|
3
|
+
currency: string;
|
|
4
|
+
amount: number;
|
|
5
|
+
order: string | undefined;
|
|
6
|
+
xculqirsaid: string;
|
|
7
|
+
rsapublickey: string;
|
|
8
|
+
}
|
|
9
|
+
export interface ICulqiOptions {
|
|
10
|
+
lang?: string;
|
|
11
|
+
installments?: boolean;
|
|
12
|
+
paymentMethods?: IPaymentMethods;
|
|
13
|
+
style?: IStyle;
|
|
14
|
+
}
|
|
15
|
+
export interface IPaymentMethods {
|
|
16
|
+
tarjeta: boolean;
|
|
17
|
+
yape: boolean;
|
|
18
|
+
bancaMovil: boolean;
|
|
19
|
+
agente: boolean;
|
|
20
|
+
billetera: boolean;
|
|
21
|
+
cuotealo: boolean;
|
|
22
|
+
}
|
|
23
|
+
export interface IStyle {
|
|
24
|
+
logo: string;
|
|
25
|
+
bannerColor?: string;
|
|
26
|
+
buttonBackground?: string;
|
|
27
|
+
menuColor?: string;
|
|
28
|
+
linksColor?: string;
|
|
29
|
+
buttonText?: string;
|
|
30
|
+
buttonTextColor?: string;
|
|
31
|
+
priceColor?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface IOrderCulqi {
|
|
34
|
+
amount: number;
|
|
35
|
+
currency_code: string;
|
|
36
|
+
description: string;
|
|
37
|
+
order_number: number;
|
|
38
|
+
client_details: IClientDetails;
|
|
39
|
+
expiration_date: number;
|
|
40
|
+
confirm: boolean;
|
|
41
|
+
}
|
|
42
|
+
export interface IClientDetails {
|
|
43
|
+
first_name: string;
|
|
44
|
+
last_name: string;
|
|
45
|
+
email: string;
|
|
46
|
+
phone_number: string;
|
|
47
|
+
}
|
|
48
|
+
export interface IOrderCulqiResponse {
|
|
49
|
+
object: string;
|
|
50
|
+
id: string;
|
|
51
|
+
amount: number;
|
|
52
|
+
payment_code: null;
|
|
53
|
+
currency_code: string;
|
|
54
|
+
description: string;
|
|
55
|
+
order_number: string;
|
|
56
|
+
state: string;
|
|
57
|
+
total_fee: null;
|
|
58
|
+
net_amount: null;
|
|
59
|
+
fee_details: null;
|
|
60
|
+
creation_date: number;
|
|
61
|
+
expiration_date: number;
|
|
62
|
+
updated_at: number;
|
|
63
|
+
paid_at: null;
|
|
64
|
+
available_on: null;
|
|
65
|
+
metadata: null;
|
|
66
|
+
qr: null;
|
|
67
|
+
cuotealo: null;
|
|
68
|
+
url_pe: null;
|
|
69
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"culqi.model.d.ts","sourceRoot":"","sources":["../../../../projects/ngx-culqi/src/lib/models/culqi.model.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACxB;AACD,MAAM,WAAW,aAAa;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,MAAM;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,cAAc,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,IAAI,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;IACjB,WAAW,EAAE,IAAI,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,IAAI,CAAC;IACd,YAAY,EAAE,IAAI,CAAC;IACnB,QAAQ,EAAE,IAAI,CAAC;IACf,EAAE,EAAE,IAAI,CAAC;IACT,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,IAAI,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngx-culqi.module.d.ts","sourceRoot":"","sources":["../../../projects/ngx-culqi/src/lib/ngx-culqi.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGpD,qBAAa,aAAa;WACR,OAAO,CAAC,WAAW,EAAE,GAAG,GAAG,mBAAmB,CAAC,aAAa,CAAC;CAa9E"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { HttpClient } from '@angular/common/http';
|
|
2
|
+
import { BehaviorSubject, Observable } from 'rxjs';
|
|
3
|
+
import { ICulqiOptions, ICulqiSettings, IOrderCulqi, IOrderCulqiResponse } from './models/culqi.model';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare let Culqi: any;
|
|
6
|
+
export declare class NgxCulqiService {
|
|
7
|
+
private http;
|
|
8
|
+
tokenCreatedSubject: BehaviorSubject<string | null>;
|
|
9
|
+
tokenCreated$: Observable<string | null>;
|
|
10
|
+
orderCreatedSubject: BehaviorSubject<string | null>;
|
|
11
|
+
orderCreated$: Observable<string | null>;
|
|
12
|
+
constructor(http: HttpClient);
|
|
13
|
+
setTokenCreated(value: string): void;
|
|
14
|
+
setOrderCreated(value: string): void;
|
|
15
|
+
initCulqi(): void;
|
|
16
|
+
loadScriptCulqi(): void;
|
|
17
|
+
generateOrder(order: IOrderCulqi): Observable<Partial<IOrderCulqiResponse>>;
|
|
18
|
+
generateToken(culqiSettings: ICulqiSettings, culqiOptions?: ICulqiOptions): void;
|
|
19
|
+
culqi(): void;
|
|
20
|
+
closeCulqi(): void;
|
|
21
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgxCulqiService, never>;
|
|
22
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<NgxCulqiService>;
|
|
23
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngx-culqi.service.d.ts","sourceRoot":"","sources":["../../../projects/ngx-culqi/src/lib/ngx-culqi.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;;AACvG,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,EAAE,GAAG,CAAC;AAE9B,qBAGa,eAAe;IAOd,OAAO,CAAC,IAAI;IANxB,mBAAmB,iCAA4C;IAC/D,aAAa,4BAA2C;IAExD,mBAAmB,iCAA4C;IAC/D,aAAa,4BAA2C;gBAEpC,IAAI,EAAE,UAAU;IAKpC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIpC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIpC,SAAS,IAAI,IAAI;IAIjB,eAAe,IAAI,IAAI;IAYvB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAQ3E,aAAa,CAAC,aAAa,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,aAAa,GAAG,IAAI;IAqBhF,KAAK,IAAI,IAAI;IAYb,UAAU,IAAI,IAAI;yCA7EP,eAAe;6CAAf,eAAe;CAkF3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngx-culqi.d.ts","sourceRoot":"","sources":["../../projects/ngx-culqi/src/ngx-culqi.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,cAAc,cAAc,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ngx-culqi",
|
|
3
|
+
"version": "2.0.0-rc.1",
|
|
4
|
+
"description": "Culqi Library for the Angular framework.",
|
|
5
|
+
"author": "Luis Eduardo <luiseperezp.10@gmail.com>",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"javascript",
|
|
9
|
+
"node",
|
|
10
|
+
"npm",
|
|
11
|
+
"culqi",
|
|
12
|
+
"angular",
|
|
13
|
+
"ngx-culqi"
|
|
14
|
+
],
|
|
15
|
+
"peerDependencies": {
|
|
16
|
+
"@angular/common": "^18.0.0",
|
|
17
|
+
"@angular/core": "^18.0.0"
|
|
18
|
+
},
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"tslib": "^2.3.0"
|
|
21
|
+
},
|
|
22
|
+
"sideEffects": false,
|
|
23
|
+
"repository": {
|
|
24
|
+
"type": "git",
|
|
25
|
+
"url": "git+https://github.com/lperezp/ngx-culqi.git"
|
|
26
|
+
},
|
|
27
|
+
"bugs": {
|
|
28
|
+
"url": "https://github.com/lperezp/ngx-culqi/issues"
|
|
29
|
+
},
|
|
30
|
+
"module": "fesm2022/ngx-culqi.mjs",
|
|
31
|
+
"typings": "index.d.ts",
|
|
32
|
+
"exports": {
|
|
33
|
+
"./package.json": {
|
|
34
|
+
"default": "./package.json"
|
|
35
|
+
},
|
|
36
|
+
".": {
|
|
37
|
+
"types": "./index.d.ts",
|
|
38
|
+
"esm2022": "./esm2022/ngx-culqi.mjs",
|
|
39
|
+
"esm": "./esm2022/ngx-culqi.mjs",
|
|
40
|
+
"default": "./fesm2022/ngx-culqi.mjs"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
package/public-api.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../projects/ngx-culqi/src/public-api.ts"],"names":[],"mappings":"AAIA,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC"}
|