UNPKG

vendure-plugin-nowpayments

Version:

A cryptocurrency payment gateway plugin for Vendure that integrates with NOWPayments.io, enabling your store to accept payments in Bitcoin, Ethereum, and 100+ other cryptocurrencies.

72 lines (71 loc) 2.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "nowPaymentsPaymentHandler", { enumerable: true, get: function() { return nowPaymentsPaymentHandler; } }); const _core = require("@vendure/core"); const _nowpaymentsservice = require("./nowpayments.service"); let nowPaymentsService; const nowPaymentsPaymentHandler = new _core.PaymentMethodHandler({ code: 'nowpayments', description: [ { languageCode: _core.LanguageCode.en, value: 'NOWPayments Cryptocurrency Payment Gateway' } ], args: {}, init (injector) { nowPaymentsService = injector.get(_nowpaymentsservice.NOWPaymentsService); }, createPayment: async (ctx, order, amount, args, metadata)=>{ try { // Check if a NOWPayments payment already exists for this order const existingPayment = order.payments.find((p)=>p.method === 'nowpayments' && p.state === 'Authorized'); if (existingPayment) { // If payment already exists, return the existing payment state return { amount: existingPayment.amount, state: existingPayment.state, metadata: existingPayment.metadata }; } // Generate payment URL based on configuration const redirectUrl = nowPaymentsService.useInvoices ? await nowPaymentsService.generateInvoiceUrl(ctx, order) : await nowPaymentsService.generatePaymentUrl(ctx, order); const orderId = nowPaymentsService.invoicePrefix + order.code; return { amount: amount, state: 'Authorized', metadata: { public: { redirectUrl }, orderId: order.id, paymentMethod: 'nowpayments', nowPaymentsOrderId: orderId } }; } catch (err) { return { amount: amount, state: 'Declined', metadata: { errorMessage: err.message } }; } }, settlePayment: async (ctx, order, payment, args)=>{ // For NOWPayments, we don't settle immediately // The payment is settled via IPN callback return { success: true }; } }); //# sourceMappingURL=nowpayments-payment.handler.js.map