UNPKG

@ng-web-apis/payment-request

Version:

This is a library for declarative use of Payment Request API with Angular

33 lines 5.17 kB
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==