@ng-web-apis/payment-request
Version:
This is a library for declarative use of Payment Request API with Angular
33 lines • 5.17 kB
JavaScript
import { inject, Injectable } from '@angular/core';
import { PAYMENT_METHODS } from '../tokens/payment-methods';
import { PAYMENT_OPTIONS } from '../tokens/payment-options';
import { PAYMENT_REQUEST_SUPPORT } from '../tokens/payment-request-support';
import * as i0 from "@angular/core";
class PaymentRequestService {
supported = inject(PAYMENT_REQUEST_SUPPORT);
paymentMethods = inject(PAYMENT_METHODS);
paymentOptions = inject(PAYMENT_OPTIONS);
async request(details, methods = this.paymentMethods, options = this.paymentOptions) {
if (!this.supported) {
return Promise.reject(new Error('Payment Request is not supported in your browser'));
}
const gateway = new PaymentRequest(methods, details,
// @ts-ignore
options);
return gateway
.canMakePayment()
.then(async (canPay) => canPay
? gateway.show(details)
: Promise.reject(new Error('Payment Request cannot make the payment')));
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PaymentRequestService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PaymentRequestService, providedIn: 'root' });
}
export { PaymentRequestService };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PaymentRequestService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root',
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1yZXF1ZXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3BheW1lbnQtcmVxdWVzdC9zcmMvc2VydmljZXMvcGF5bWVudC1yZXF1ZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRTFELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFFMUUsTUFHYSxxQkFBcUI7SUFDYixTQUFTLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDNUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN6QyxjQUFjLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRW5ELEtBQUssQ0FBQyxPQUFPLENBQ2hCLE9BQTJCLEVBQzNCLFVBQStCLElBQUksQ0FBQyxjQUFjLEVBQ2xELFVBQTBCLElBQUksQ0FBQyxjQUFjO1FBRTdDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2pCLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FDakIsSUFBSSxLQUFLLENBQUMsa0RBQWtELENBQUMsQ0FDaEUsQ0FBQztTQUNMO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxjQUFjLENBQzlCLE9BQU8sRUFDUCxPQUFPO1FBQ1AsYUFBYTtRQUNiLE9BQU8sQ0FDVixDQUFDO1FBRUYsT0FBTyxPQUFPO2FBQ1QsY0FBYyxFQUFFO2FBQ2hCLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FDbkIsTUFBTTtZQUNGLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUN2QixDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FDVixJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUN2RCxDQUNWLENBQUM7SUFDVixDQUFDO3dHQWhDUSxxQkFBcUI7NEdBQXJCLHFCQUFxQixjQUZsQixNQUFNOztTQUVULHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtQQVlNRU5UX01FVEhPRFN9IGZyb20gJy4uL3Rva2Vucy9wYXltZW50LW1ldGhvZHMnO1xuaW1wb3J0IHR5cGUge1BheW1lbnRPcHRpb25zfSBmcm9tICcuLi90b2tlbnMvcGF5bWVudC1vcHRpb25zJztcbmltcG9ydCB7UEFZTUVOVF9PUFRJT05TfSBmcm9tICcuLi90b2tlbnMvcGF5bWVudC1vcHRpb25zJztcbmltcG9ydCB7UEFZTUVOVF9SRVFVRVNUX1NVUFBPUlR9IGZyb20gJy4uL3Rva2Vucy9wYXltZW50LXJlcXVlc3Qtc3VwcG9ydCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBheW1lbnRSZXF1ZXN0U2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzdXBwb3J0ZWQgPSBpbmplY3QoUEFZTUVOVF9SRVFVRVNUX1NVUFBPUlQpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcGF5bWVudE1ldGhvZHMgPSBpbmplY3QoUEFZTUVOVF9NRVRIT0RTKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBheW1lbnRPcHRpb25zID0gaW5qZWN0KFBBWU1FTlRfT1BUSU9OUyk7XG5cbiAgICBwdWJsaWMgYXN5bmMgcmVxdWVzdChcbiAgICAgICAgZGV0YWlsczogUGF5bWVudERldGFpbHNJbml0LFxuICAgICAgICBtZXRob2RzOiBQYXltZW50TWV0aG9kRGF0YVtdID0gdGhpcy5wYXltZW50TWV0aG9kcyxcbiAgICAgICAgb3B0aW9uczogUGF5bWVudE9wdGlvbnMgPSB0aGlzLnBheW1lbnRPcHRpb25zLFxuICAgICk6IFByb21pc2U8UGF5bWVudFJlc3BvbnNlPiB7XG4gICAgICAgIGlmICghdGhpcy5zdXBwb3J0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcbiAgICAgICAgICAgICAgICBuZXcgRXJyb3IoJ1BheW1lbnQgUmVxdWVzdCBpcyBub3Qgc3VwcG9ydGVkIGluIHlvdXIgYnJvd3NlcicpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGdhdGV3YXkgPSBuZXcgUGF5bWVudFJlcXVlc3QoXG4gICAgICAgICAgICBtZXRob2RzLFxuICAgICAgICAgICAgZGV0YWlscyxcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGdhdGV3YXlcbiAgICAgICAgICAgIC5jYW5NYWtlUGF5bWVudCgpXG4gICAgICAgICAgICAudGhlbihhc3luYyAoY2FuUGF5KSA9PlxuICAgICAgICAgICAgICAgIGNhblBheVxuICAgICAgICAgICAgICAgICAgICA/IGdhdGV3YXkuc2hvdyhkZXRhaWxzKVxuICAgICAgICAgICAgICAgICAgICA6IFByb21pc2UucmVqZWN0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRXJyb3IoJ1BheW1lbnQgUmVxdWVzdCBjYW5ub3QgbWFrZSB0aGUgcGF5bWVudCcpLFxuICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==