0.2.0 • Published 5 months ago

@payglide/sdk-js v0.2.0

Weekly downloads
-
License
Apache-2.0
Repository
-
Last release
5 months ago

Installation

Use your favorite package manager to install the sdk and save to your package.json:

$ npm install @payglide/sdk-js

# Or, you can use yarn
$ yarn add @payglide/sdk-js

Usage

Import and initialize a client using an api key

import { PayGlideClient } from '@payglide/sdk-js';

// Initializing a client
const client = new PayGlideClient({
  apiKey: process.env.PAYGLIDE_API_KEY,
})

initCheckoutSession

CheckoutSession initCheckoutSession(initCheckoutRequest)

Create a new checkout session based on the transaction data

const checkoutSession = await client.initCheckoutSession({
  address: '0x6f9ce307c114f443',
  code: 'test script',
  arguments: [
    {
      value: '5.0',
      type: 'UFix64',
    },
  ],
})

The initCheckoutSession method returns a Promise which resolves the checkoutSession response.

{
    "id": "1234abcd-1234-abcd-8c19-1234abcd56ef",
    "expiresAt": "2023-05-25T23:23:56.360Z",
    "createdAt": "2023-05-25T23:08:56.360Z",
    "updatedAt": "2023-05-25T23:08:56.360Z",
    "status": "CHECKOUT_INITIATED",
    "transactionHash": "",
    "buyer": {
        "address": "0x6f9ce307c114f443"
    },
    "products": [
        {
            "pricing": {
                "amount": "5.00000000",
                "currency": "USDC"
            }
        }
    ],
    "quote": {
        "details": [
            {
                "description": "1 x NFT",
                "amount": "5.00",
                "currency": "USD"
            },
            {
                "description": "Processing Fee",
                "amount": "0.49",
                "currency": "USD"
            },
            {
                "description": "Network Fee",
                "amount": "0",
                "currency": "USD"
            }
        ],
        "total": {
            "description": "Total Price",
            "amount": "5.49",
            "currency": "USD"
        },
        "expiresAt": "2023-05-25T23:18:56.360Z",
        "createdAt": "2023-05-25T23:08:56.360Z",
        "updatedAt": "2023-05-25T23:18:56.360Z"
    }
}

initCheckout

Checkout initCheckout(initCheckoutRequest)

The initCheckout method returns a Promise which resolves the Checkout object. Checkout is a helper class for polling the checkout session status and provides with other convenience methods.

const checkout = await client.initCheckout({
  address: '0x6f9ce307c114f443',
  code: 'test script',
  arguments: [
    {
      value: '5.0',
      type: 'UFix64',
    },
  ],
})

Checkout object with convenience methods

getCheckoutPage(walletId)

Convenience method to get the url for the wallet specific checkout page.

const checkoutPageUrl = checkout.getCheckoutPage(walletId)

getCurrentStatus()

Convenience method to retrieve the current checkout status associated with the checkout.

const currentStatus = await checkout.getCurrentStatus()

Posible checkout status:

  • CHECKOUT_INITIATED
  • PAYMENT_INITIATED
  • PAYMENT_SUCCEEDED
  • PAYMENT_FAILED
  • TOKEN_TRANSFER_INITIATED
  • TOKEN_TRANSFER_COMPLETED
  • TOKEN_TRANSFER_FAILED

CheckoutSession onTransactionComplete()

Convenience method to poll the checkout status and resolve the promise when the checkout is complete.

const finalSession = await checkout.onTransactionComplete()

PayGlideClient options

The PayGlideClient supports the following options on initialization. These options are all keys in the constructor parameter.

OptionDefault valueTypeDescription
apiKeyundefinedstringAPI Key provided to individual projects.
pollInterval5000 (5 seconds)numberMilliseconds interval between attempting to resolve the promise again.
pollTimeout300000 (5 minutes)numberMaximum time in milliseconds to continue polling to receive a successful resolved response. If the promise doesn't resolve before the poll timeout then the poller rejects with a timeout error.

Requirements

This package supports the following minimum versions:

  • Runtime: node >= 14

LICENSE

Apache-2.0

0.2.0

5 months ago

0.1.2

5 months ago

0.1.3

5 months ago

0.1.1

12 months ago

0.1.0

1 year ago