Skip to content

@belongnet/sdk ​

JavaScript SDK for integrating with Belong.net widget for seamless payment implementation on your website or application frontend.

Installation ​

NPM: ​

You can install using npm, yarn, or pnpm:

bash
pnpm add @belongnet/sdk

# or
npm install @belongnet/sdk

# or
yarn add @belongnet/sdk

and then import it in your project:

ts
import { createPaymentFrame } from '@belongnet/sdk'

CDN: ​

To load scripts as modules, it's recommended to use esm.sh. Add this to the bottom of your HTML file:

html
<script type="module">
  import { createPaymentFrame } from 'https://esm.sh/@belongnet/sdk@0.1.5'
</script>

Note: Pin the version number to avoid breaking changes in production.

You can also try jsDelivr or unpkg, but they haven't been tested.

Usage: ​

The SDK supports several payment targets for different use cases:

Event Ticket Payment ​

Used for purchasing tickets to events. Requires an eventId to identify the specific event.

ts
import { PaymentTarget } from '@belongnet/sdk'

createPaymentFrame({
  el: document.getElementById('belong-payment-frame'),
  params: {
    target: PaymentTarget.EventTicket,
    eventId: '65f1c7a33e51d8e4c2a9b4d2',
  },
})
Hub Minting Payment ​

Used for minting operations within a hub. Requires a hubId to identify the specific hub.

ts
createPaymentFrame({
  el: document.getElementById('belong-payment-frame'),
  params: {
    target: PaymentTarget.HubMinting,
    hubId: '65f1c7b12f90ae7d31c8e5f1',
  },
})
Checkout Payment ​

Used for general checkout operations. Requires a checkoutId to identify the specific checkout session.

ts
createPaymentFrame({
  el: document.getElementById('belong-payment-frame'),
  params: {
    target: PaymentTarget.Checkout,
    checkoutId: '65f1c7c8d4a5b3e9f8c1d2e3',
  },
})

Advanced Usage ​

Event listeners: ​

To determine the outcome of a payment (success or failure and etc), you can set up event listeners that listen to events from the payment frame. We provide isPaymentEvent utility to help identify payment-related events.

ts
import { isPaymentEvent } from '@belongnet/sdk'

function handlePayment(e: MessageEvent) {
  if (isPaymentEvent(e)) {
    switch (e.data.type) {
      case 'payment-success':
        // logic for successful payment
        console.log('payment-success', e.data.payload)
        break
      case 'payment-error':
        // logic for payment error
        console.log('payment-error', e.data.payload)
        break
    }
  }
}

// Add the event listener to listen for messages from the payment frame:
window.addEventListener('message', handlePayment)

// Remove the event listener when it is no longer needed to avoid potential memory leaks
function onUnmount() {
  window.removeEventListener('message', handlePayment)
}

This method makes sure your app reacts well to payment events, giving users a smooth experience even if payments fail. But it's only for showing visual changes on the frontend. For safer payments, you need server-side processing with the API too.

API ​

createPaymentFrame(options) ​

Creates a payment frame for embedding payment forms.

Example:

js
import { PaymentTarget } from '@belongnet/sdk'

const { frame, url } = createPaymentFrame({
  el: document.getElementById('payment-frame'),
  origin: 'https://example.com',
  params: {
    target: PaymentTarget.EventTicket,
    eventId: '65f1c7a33e51d8e4c2a9b4d2',
  },
})

isPaymentEvent(event) ​

Checks if the provided event is a Belong payment event.

PaymentEvent ​

Loaded ​

  • Type: string
  • Default: "loaded"

PaymentCanceled ​

  • Type: string
  • Default: "payment-canceled"

PaymentError ​

  • Type: string
  • Default: "payment-error"

PaymentSuccess ​

  • Type: string
  • Default: "payment-success"

PaymentTarget ​

Available payment targets for different use cases:

EventTicket ​

  • Type: string
  • Default: "event-ticket"
  • Description: Used for event ticket purchases. Requires eventId parameter.

HubMinting ​

  • Type: string
  • Default: "hub-minting"
  • Description: Used for hub minting operations. Requires hubId parameter.

Checkout ​

  • Type: string
  • Default: "checkout"
  • Description: Used for general checkout operations. Requires checkoutId parameter.

validateEvent(data) ​

Validates the provided payment event data.

validateParams(params) ​

Validates the provided parameters.

Target Parameters Reference ​

Each target requires specific parameters. Here's a detailed breakdown:

Event Ticket Parameters ​

ParameterTypeDescription
targetPaymentTargetMust be PaymentTarget.EventTicket
eventIdstringUnique identifier of the event (24 characters)
couponstringOptional coupon code for discounts

Hub Minting Parameters ​

ParameterTypeDescription
targetPaymentTargetMust be PaymentTarget.HubMinting
hubIdstringUnique identifier of the hub (24 characters)

Checkout Parameters ​

ParameterTypeDescription
targetPaymentTargetMust be PaymentTarget.Checkout
checkoutIdstringUnique identifier of the checkout (24 characters)

All rights reserved.