UNPKG

bc-payments-sdk

Version:

BetterCommerce's Payments NodeJS SDK is a complete solution for storefront clients that integrate payments. `bc-payments-sdk` is a single point interface for storefront clients for interacting with payment gateways.

99 lines (98 loc) 4.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.KlarnaPayment = void 0; // Package Imports const bc_klarna_sdk_1 = require("bc-klarna-sdk"); // Other Imports const BasePaymentProvider_1 = require("../../base/entity/BasePaymentProvider"); /** * Class {KlarnaPayment} is a concrete implementation of a payment provider. * It provides a set of methods that can be used to interact with the Klarna payment gateway. * * @class KlarnaPayment * @extends {BasePaymentProvider} * @implements {IPaymentProvider} * @implements {IKlarnaPaymentProvider} */ class KlarnaPayment extends BasePaymentProvider_1.BasePaymentProvider { /** * Initializes a payment intent using the Klarna payment gateway. * * This method initializes the SDK and attempts to create a payment intent * with the provided data. If successful, it returns the result of the intent * creation. If the SDK initialization fails, it returns null. In case of an * error during the process, it returns an object containing the error details. * * API Reference - https://docs.klarna.com/klarna-payments/integrate-with-klarna-payments/step-1-initiate-a-payment/ * * @param data - The payment intent data required by Klarna. * @returns A promise that resolves to the result of the payment intent creation * or an object with error details if an error occurs. */ async initPaymentIntent(data) { try { if (super.initSDK()) { const intentResult = await new bc_klarna_sdk_1.Payment().initIntent(data); return intentResult; } return null; } catch (error) { return { hasError: true, error: error === null || error === void 0 ? void 0 : error.message }; } } /** * Creates a one time payment order. This method initializes the SDK and attempts to create a payment intent * with the provided data. If successful, it returns the result of the intent creation. If the SDK initialization fails, it returns null. In case of an * error during the process, it returns an object containing the error details. * * API Reference - https://docs.klarna.com/klarna-payments/integrate-with-klarna-payments/step-3-create-an-order/create-a-one-time-payment-order/ * * @param data - The payment intent data required by Klarna. * @returns A promise that resolves to the result of the payment intent creation * or an object with error details if an error occurs. */ async createOneTimePaymentOrder(data) { try { if (super.initSDK()) { const intentResult = await new bc_klarna_sdk_1.Payment().createOneTimePaymentOrder(data); return intentResult; } return null; } catch (error) { return { hasError: true, error: error === null || error === void 0 ? void 0 : error.message }; } } async requestPayment(data) { throw new Error("Method not implemented."); } /** * Retrieves the details of an order from Klarna. * * This method attempts to retrieve the order details with the provided data. * If successful, it returns the result of the order details request. * If the SDK initialization fails, it returns null. In case of an * error during the process, it returns an object containing the error details. * * API Reference - https://docs.klarna.com/api/ordermanagement/#operation/getOrder * * @param data - The order ID required by Klarna. * @returns A promise that resolves to the result of the order details request * or an object with error details if an error occurs. */ async getOrderDetails(data) { try { if (super.initSDK()) { const payment = new bc_klarna_sdk_1.Payment(); const orderDetailsResult = await payment.getDetails(data); return orderDetailsResult; } return null; } catch (error) { return { hasError: true, error: error === null || error === void 0 ? void 0 : error.message }; } } } exports.KlarnaPayment = KlarnaPayment;