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
JavaScript
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