JavaScript SDK for integrating with Belong.net widget for seamless payment implementation on your website or application frontend.
You can install using npm, yarn, or pnpm:
pnpm add @belongnet/sdk
# or
npm install @belongnet/sdk
# or
yarn add @belongnet/sdkand then import it in your project:
import { createPaymentFrame } from '@belongnet/sdk'To load scripts as modules, it's recommended to use esm.sh. Add this to the bottom of your HTML file:
<script type="module">
import { createPaymentFrame } from 'https://esm.sh/@belongnet/[email protected]'
</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.
The SDK supports several payment targets for different use cases:
Used for purchasing tickets to events. Requires an eventId to identify the specific event.
import { PaymentTarget } from '@belongnet/sdk'
createPaymentFrame({
el: document.getElementById('belong-payment-frame'),
params: {
target: PaymentTarget.EventTicket,
eventId: '65f1c7a33e51d8e4c2a9b4d2',
},
})Used for minting operations within a hub. Requires a hubId to identify the specific hub.
createPaymentFrame({
el: document.getElementById('belong-payment-frame'),
params: {
target: PaymentTarget.HubMinting,
hubId: '65f1c7b12f90ae7d31c8e5f1',
},
})Used for general checkout operations. Requires a checkoutId to identify the specific checkout session.
createPaymentFrame({
el: document.getElementById('belong-payment-frame'),
params: {
target: PaymentTarget.Checkout,
checkoutId: '65f1c7c8d4a5b3e9f8c1d2e3',
},
})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.
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.link)
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.
Creates a payment frame for embedding payment forms.
Example:
import { PaymentTarget } from '@belongnet/sdk'
const { frame, url } = createPaymentFrame({
el: document.getElementById('payment-frame'),
origin: 'https://example.com',
params: {
target: PaymentTarget.EventTicket,
eventId: '65f1c7a33e51d8e4c2a9b4d2',
},
})Checks if the provided event is a Belong payment event.
- Type:
string - Default:
"loaded"
- Type:
string - Default:
"payment-canceled"
- Type:
string - Default:
"payment-error"
- Type:
string - Default:
"payment-success"
- Type:
string - Default:
"checkout"
- Type:
string - Default:
"event-ticket"
- Type:
string - Default:
"hub-minting"
Validates the provided payment event data.
Validates the provided parameters.
Each target requires specific parameters. Here's a detailed breakdown:
| Parameter | Type | Description |
|---|---|---|
target |
PaymentTarget |
Must be PaymentTarget.EventTicket |
eventId |
string |
Unique identifier of the event (24 characters) |
coupon |
string |
Optional coupon code for discounts |
email |
string |
Email user |
| Parameter | Type | Description |
|---|---|---|
target |
PaymentTarget |
Must be PaymentTarget.HubMinting |
hubId |
string |
Unique identifier of the hub (24 characters) |
email |
string |
Email user |
| Parameter | Type | Description |
|---|---|---|
target |
PaymentTarget |
Must be PaymentTarget.Checkout |
checkoutId |
string |
Unique identifier of the checkout (24 characters) |
email |
string |
Email user |
This project is licensed under the terms of the MIT license.
🤖 auto updated with automd