UNPKG

ngx-loovpay

Version:

ngx-loovpay is a solution that can be integrated into Angular applications, giving developers the possibility of integrating them into merchant applications for the purpose of collecting payments.

80 lines 10.1 kB
import { Inject, Injectable } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common/http"; export class NgxLoovService { constructor(config, httpclient) { this.config = config; this.httpclient = httpclient; this.configData = { merchant_key: '', app_key: '', loov_url: '' }; this.configData = config; } initPayment(payload) { const payment_payload = { amount: payload.amount, customer: { name: payload.customer.name, phoneNumber: payload.customer.phoneNumber, email: payload.customer.email }, callback: payload.callback_url, description: payload.description, }; if (payload.payment_mode === 'CARD') { Object.assign(payment_payload, { payment_mode: 'CARD', return_url: payload.return_url, cancel_url: payload.cancel_url, currency: payload.currency, }); } else { Object.assign(payment_payload, { payment_mode: 'MOBILE_MONEY', operator: payload.operator, phoneNumber: payload.phoneNumber, currency: 'XAF', }); } return this.httpclient.post(this.configData.loov_url.concat(payload.payment_mode == 'MOBILE_MONEY' ? '/payment/payin/mobile' : '/payment/init'), payment_payload, { headers: { 'Content-Type': 'application/json', 'app-key': this.config.app_key, 'merchant-key': this.config.merchant_key, // Replace with your merchant key } }); } checkStatus(reference) { return this.httpclient.get(this.configData.loov_url.concat(`/payment/status/${reference}`), { headers: { 'Content-Type': 'application/json', 'app-key': this.config.app_key, 'merchant-key': this.config.merchant_key, // Replace with your merchant key } }); } payOut(payload) { return this.httpclient.post(this.configData.loov_url.concat('/payment/payout/mobile'), payload, { headers: { 'Content-Type': 'application/json', 'app-key': this.config.app_key, 'merchant-key': this.config.merchant_key, // Replace with your merchant key } }); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: NgxLoovService, deps: [{ token: 'config' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: NgxLoovService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: NgxLoovService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: function () { return [{ type: undefined, decorators: [{ type: Inject, args: ['config'] }] }, { type: i1.HttpClient }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWxvb3Yuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1sb292L3NyYy9saWIvbmd4LWxvb3Yuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBT25ELE1BQU0sT0FBTyxjQUFjO0lBUXpCLFlBQXNDLE1BQWMsRUFBVSxVQUFzQjtRQUE5QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQU5wRixlQUFVLEdBQVc7WUFDbkIsWUFBWSxFQUFFLEVBQUU7WUFDaEIsT0FBTyxFQUFFLEVBQUU7WUFDWCxRQUFRLEVBQUUsRUFBRTtTQUNiLENBQUM7UUFHQSxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztJQUMzQixDQUFDO0lBSUQsV0FBVyxDQUFDLE9BQW9DO1FBRzlDLE1BQU0sZUFBZSxHQUFHO1lBQ3RCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtZQUN0QixRQUFRLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSTtnQkFDM0IsV0FBVyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVztnQkFDekMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSzthQUM5QjtZQUNELFFBQVEsRUFBRSxPQUFPLENBQUMsWUFBWTtZQUM5QixXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7U0FDakMsQ0FBQztRQUVGLElBQUksT0FBTyxDQUFDLFlBQVksS0FBSyxNQUFNLEVBQUU7WUFDbkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUU7Z0JBQzdCLFlBQVksRUFBRSxNQUFNO2dCQUNwQixVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7Z0JBQzlCLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtnQkFDOUIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO2FBQzNCLENBQUMsQ0FBQztTQUVKO2FBQU07WUFFTCxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRTtnQkFDN0IsWUFBWSxFQUFFLGNBQWM7Z0JBQzVCLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTtnQkFDMUIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO2dCQUNoQyxRQUFRLEVBQUUsS0FBSzthQUNoQixDQUFDLENBQUM7U0FDSjtRQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQWUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLElBQUksY0FBYyxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQzNKLGVBQWUsRUFDakI7WUFDRSxPQUFPLEVBQUU7Z0JBQ1AsY0FBYyxFQUFFLGtCQUFrQjtnQkFDbEMsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTztnQkFDOUIsY0FBYyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLGlDQUFpQzthQUM1RTtTQUNGLENBRUYsQ0FBQztJQUVGLENBQUM7SUFHRCxXQUFXLENBQUMsU0FBZ0I7UUFFMUIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBbUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLG1CQUFtQixTQUFTLEVBQUUsQ0FBQyxFQUMzRztZQUNDLE9BQU8sRUFBRTtnQkFDUCxjQUFjLEVBQUUsa0JBQWtCO2dCQUNsQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO2dCQUM5QixjQUFjLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsaUNBQWlDO2FBQzVFO1NBQ0YsQ0FBQyxDQUFDO0lBRUwsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFlO1FBRXBCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQWUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFDLEVBQ2pHLE9BQU8sRUFDVDtZQUNFLE9BQU8sRUFBRTtnQkFDUCxjQUFjLEVBQUUsa0JBQWtCO2dCQUNsQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO2dCQUM5QixjQUFjLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsaUNBQWlDO2FBQzVFO1NBQ0YsQ0FFRixDQUFDO0lBRUYsQ0FBQzsrR0F4RlUsY0FBYyxrQkFRTCxRQUFRO21IQVJqQixjQUFjLGNBRmIsTUFBTTs7NEZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVNjLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbmZpZywgUGF5bWVudENhcmQsIFBheW1lbnRNb2JpbGUsIExvb3ZSZXNwb25zZSwgQ2hlY2tSZWZSZXNwb25zZSwgUGF5T3V0IH0gZnJvbSAnLi9uZ3gtbG9vdlBheS5pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBOZ3hMb292U2VydmljZSB7XG5cbiAgY29uZmlnRGF0YTogQ29uZmlnID0ge1xuICAgIG1lcmNoYW50X2tleTogJycsXG4gICAgYXBwX2tleTogJycsXG4gICAgbG9vdl91cmw6ICcnXG4gIH07XG5cbiAgY29uc3RydWN0b3IoQEluamVjdCgnY29uZmlnJykgcHJpdmF0ZSBjb25maWc6IENvbmZpZywgcHJpdmF0ZSBodHRwY2xpZW50OiBIdHRwQ2xpZW50KSB7XG4gICAgdGhpcy5jb25maWdEYXRhID0gY29uZmlnO1xuICB9XG5cblxuXG4gIGluaXRQYXltZW50KHBheWxvYWQ6IFBheW1lbnRNb2JpbGUgfCBQYXltZW50Q2FyZCk6T2JzZXJ2YWJsZTxMb292UmVzcG9uc2U+IHtcblxuICBcbiAgICBjb25zdCBwYXltZW50X3BheWxvYWQgPSB7XG4gICAgICBhbW91bnQ6IHBheWxvYWQuYW1vdW50LFxuICAgICAgY3VzdG9tZXI6IHtcbiAgICAgICAgbmFtZTogcGF5bG9hZC5jdXN0b21lci5uYW1lLFxuICAgICAgICBwaG9uZU51bWJlcjogcGF5bG9hZC5jdXN0b21lci5waG9uZU51bWJlcixcbiAgICAgICAgZW1haWw6IHBheWxvYWQuY3VzdG9tZXIuZW1haWxcbiAgICAgIH0sXG4gICAgICBjYWxsYmFjazogcGF5bG9hZC5jYWxsYmFja191cmwsXG4gICAgICBkZXNjcmlwdGlvbjogcGF5bG9hZC5kZXNjcmlwdGlvbixcbiAgICB9O1xuXG4gICAgaWYgKHBheWxvYWQucGF5bWVudF9tb2RlID09PSAnQ0FSRCcpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24ocGF5bWVudF9wYXlsb2FkLCB7XG4gICAgICAgIHBheW1lbnRfbW9kZTogJ0NBUkQnLFxuICAgICAgICByZXR1cm5fdXJsOiBwYXlsb2FkLnJldHVybl91cmwsXG4gICAgICAgIGNhbmNlbF91cmw6IHBheWxvYWQuY2FuY2VsX3VybCxcbiAgICAgICAgY3VycmVuY3k6IHBheWxvYWQuY3VycmVuY3ksXG4gICAgICB9KTtcblxuICAgIH0gZWxzZSB7XG5cbiAgICAgIE9iamVjdC5hc3NpZ24ocGF5bWVudF9wYXlsb2FkLCB7XG4gICAgICAgIHBheW1lbnRfbW9kZTogJ01PQklMRV9NT05FWScsXG4gICAgICAgIG9wZXJhdG9yOiBwYXlsb2FkLm9wZXJhdG9yLFxuICAgICAgICBwaG9uZU51bWJlcjogcGF5bG9hZC5waG9uZU51bWJlcixcbiAgICAgICAgY3VycmVuY3k6ICdYQUYnLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wb3N0PExvb3ZSZXNwb25zZT4odGhpcy5jb25maWdEYXRhLmxvb3ZfdXJsLmNvbmNhdChwYXlsb2FkLnBheW1lbnRfbW9kZSA9PSAnTU9CSUxFX01PTkVZJyA/ICcvcGF5bWVudC9wYXlpbi9tb2JpbGUnIDogJy9wYXltZW50L2luaXQnKVxuICAgICwgcGF5bWVudF9wYXlsb2FkLFxuICAgIHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgJ2FwcC1rZXknOiB0aGlzLmNvbmZpZy5hcHBfa2V5LCAvLyBSZXBsYWNlIHdpdGggeW91ciBhcHAga2V5XG4gICAgICAgICdtZXJjaGFudC1rZXknOiB0aGlzLmNvbmZpZy5tZXJjaGFudF9rZXksIC8vIFJlcGxhY2Ugd2l0aCB5b3VyIG1lcmNoYW50IGtleVxuICAgICAgfVxuICAgIH1cblxuICApO1xuXG4gIH1cblxuXG4gIGNoZWNrU3RhdHVzKHJlZmVyZW5jZTpzdHJpbmcpOk9ic2VydmFibGU8Q2hlY2tSZWZSZXNwb25zZT57XG5cbiAgICByZXR1cm4gdGhpcy5odHRwY2xpZW50LmdldDxDaGVja1JlZlJlc3BvbnNlPih0aGlzLmNvbmZpZ0RhdGEubG9vdl91cmwuY29uY2F0KGAvcGF5bWVudC9zdGF0dXMvJHtyZWZlcmVuY2V9YCksXG4gICAgIHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgJ2FwcC1rZXknOiB0aGlzLmNvbmZpZy5hcHBfa2V5LCAvLyBSZXBsYWNlIHdpdGggeW91ciBhcHAga2V5XG4gICAgICAgICdtZXJjaGFudC1rZXknOiB0aGlzLmNvbmZpZy5tZXJjaGFudF9rZXksIC8vIFJlcGxhY2Ugd2l0aCB5b3VyIG1lcmNoYW50IGtleVxuICAgICAgfVxuICAgIH0pO1xuXG4gIH1cblxuICBwYXlPdXQocGF5bG9hZDogUGF5T3V0KTpPYnNlcnZhYmxlPExvb3ZSZXNwb25zZT4ge1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wb3N0PExvb3ZSZXNwb25zZT4odGhpcy5jb25maWdEYXRhLmxvb3ZfdXJsLmNvbmNhdCgnL3BheW1lbnQvcGF5b3V0L21vYmlsZScpXG4gICAgLCBwYXlsb2FkLFxuICAgIHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgJ2FwcC1rZXknOiB0aGlzLmNvbmZpZy5hcHBfa2V5LCAvLyBSZXBsYWNlIHdpdGggeW91ciBhcHAga2V5XG4gICAgICAgICdtZXJjaGFudC1rZXknOiB0aGlzLmNvbmZpZy5tZXJjaGFudF9rZXksIC8vIFJlcGxhY2Ugd2l0aCB5b3VyIG1lcmNoYW50IGtleVxuICAgICAgfVxuICAgIH1cblxuICApO1xuICAgICAgXG4gIH1cblxuXG4gXG5cblxufVxuIl19