@kibocommerce/kibo-paymentgateway-hosting
TypeScript icon, indicating that this package has built-in type declarations

0.2.3 • Public • Published

Node.js Payment Extensibility Host Pacakge

This is an example payment gateway adapter that can be used with the Kibo UCP. The main branch of this repo should always work as a No-Op gateway so that you can start with a working app and develop from there.

Configuration

Implement the PaymentGatwayAdapter interface

import type { PaymentGatwayAdapter, AdapterContext, GatewayAuthorizationRequest, GatewayAuthorizeResponse } from "@kibocommerce/kibo-paymentgateway-hosting";

class MyService implements PaymentGatwayAdapter {
  context: AdapterContext;
  logger: any;
  constructor(context: AdapterContext, logger: any) {
    this.context = context;
    this.logger = logger;
  }
  async authorize(
    request: GatewayAuthorizationRequest
  ): Promise<GatewayAuthorizeResponse> {
    return {
        authCode:"go"
    }
  }
  ...
}

Create a factory

import type { AdapterFactory} from "@kibocommerce/kibo-paymentgateway-hosting";
class MyFactory implements AdapterFactory {
  createAdapter(context: AdapterContext, logger: any): PaymentGatwayAdapter {
    return new MyService(context, logger);
  }
}

Pass the factory to the host

import host from "@kibocommerce/kibo-paymentgateway-hosting"

host(factory);

Serverless Hosting

For Dev or QA purposes, this package can be deployed to serverless environments using any module that can wrap an NodeJS Express application for serverless use, such as Serverless Http or Serverless Express

You will need to pass your gateway adapter factory to the createHost function that will return an Express application.

import { createHost } from '@kibocommerce/kibo-paymentgateway-hosting'
import { CustomAdapterFactory } from './CustomAdapterFactory'
// create your paymentgateway adapter factory
const factory = new CustomAdapterFactory()
// create express app instance with factory
const app = createHost(factory)

Once you have the app instance, follow the steps to whichever serverless express module you are using

// lambda.js
import serverless from 'serverless-http'
import { createHost } from '@kibocommerce/kibo-paymentgateway-hosting'
import { CustomAdapterFactory } from './CustomAdapterFactory'
// create your paymentgateway adapter factory
const factory = new CustomAdapterFactory()
// create express app instance with factory
const app = createHost(factory)
// wrap app in serverless-http handler
const serverlessHandler = serverless(app)

export const handler = serverlessHandler
//lambda.js
const kiboPaymentGatewayHost = require('@kibocommerce/kibo-paymentgateway-hosting')
const serverlessExpress = require('@vendia/serverless-express')
const CustomAdapterFactory = require('./CustomAdapterFactory')
const factory = new CustomAdapterFactory()
const app = kiboPaymentGatewayHost.createHost(factory)
exports.handler = serverlessExpress({ app })

/@kibocommerce/kibo-paymentgateway-hosting/

    Package Sidebar

    Install

    npm i @kibocommerce/kibo-paymentgateway-hosting

    Weekly Downloads

    2

    Version

    0.2.3

    License

    MIT

    Unpacked Size

    622 kB

    Total Files

    123

    Last publish

    Collaborators

    • dirkelfman
    • seven.k