npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

paymaya-js-sdk

v2.0.1

Published

Official client side SDK by PayMaya Payment Gateway. For assistance you may reach us through [email protected]

Downloads

1,073

Readme

Overview

Official client side SDK by PayMaya Payment Gateway. For assistance you may reach us through [email protected]

Install

npm install --save paymaya-js-sdk

or

yarn add paymaya-js-sdk

Run

You can either import it like:

import PaymayaSdkClient from 'paymaya-js-sdk'

or simply include it through a script tag on your HTML site:

<script src="https://unpkg.com/[email protected]/dist/bundle.js"></script>

NOTE: when including via script tags, the SDK is globally available using the variable PayMayaSDK

Usage

Before using any of the publicly available methods, you need to initialize the SDK by using the init method (you only need to do this once in app's lifetime).

React:

import paymaya from 'paymaya-js-sdk';

function App() {
  const exampleCheckoutObject = {};
  useEffect(() => {
    paymaya.init('my-public-key', true);
    paymaya.createCheckout(exampleCheckoutObject);
  }, []);
  return (
      <div>
        <div>Test App</div>
      </div>
  );
}

or vanilla js

    <script>
      const myExampleObject = {};
      PayMayaSDK.init('my-public-key', true);
      PayMayaSDK.createCheckout(myExampleObject);
    </script>

SDK API


init(publicKey, isSandbox)

This method initializes SDK. It must be run before other methods are being used.

Returns: void

init properties:

| Parameter | Type | Required | Description | |-----------------------|--------|----------|--------------------------------------------------------| | publicKey | string | Yes | Public API key delivered by PayMaya. | | isSandbox | boolean | No | Boolean that indicates whether SDK should use sandbox environment or not. Defaults to true, if not supplied. |


createCheckout(checkoutRequestObject)

This method redirects the user to PayMaya Checkout, where the user can finalize his/her payment.

Returns: Promise<void>

checkoutRequestObject properties are defined here.

Example checkoutRequestObject:

{
  "totalAmount": {
    "value": 100,
    "currency": "PHP",
    "details": {
      "discount": 0,
      "serviceCharge": 0,
      "shippingFee": 0,
      "tax": 0,
      "subtotal": 100
    }
  },
  "buyer": {
    "firstName": "John",
    "middleName": "Paul",
    "lastName": "Doe",
    "birthday": "1995-10-24",
    "customerSince": "1995-10-24",
    "sex": "M",
    "contact": {
      "phone": "+639181008888",
      "email": "[email protected]"
    },
    "shippingAddress": {
      "firstName": "John",
      "middleName": "Paul",
      "lastName": "Doe",
      "phone": "+639181008888",
      "email": "[email protected]",
      "line1": "6F Launchpad",
      "line2": "Reliance Street",
      "city": "Mandaluyong City",
      "state": "Metro Manila",
      "zipCode": "1552",
      "countryCode": "PH",
      "shippingType": "ST" // ST - for standard, SD - for same day
    },
    "billingAddress": {
      "line1": "6F Launchpad",
      "line2": "Reliance Street",
      "city": "Mandaluyong City",
      "state": "Metro Manila",
      "zipCode": "1552",
      "countryCode": "PH"
    }
  },
  "items": [
    {
      "name": "Canvas Slip Ons",
      "quantity": 1,
      "code": "CVG-096732",
      "description": "Shoes",
      "amount": {
        "value": 100,
        "details": {
          "discount": 0,
          "serviceCharge": 0,
          "shippingFee": 0,
          "tax": 0,
          "subtotal": 100
        }
      },
      "totalAmount": {
        "value": 100,
        "details": {
          "discount": 0,
          "serviceCharge": 0,
          "shippingFee": 0,
          "tax": 0,
          "subtotal": 100
        }
      }
    }
  ],
  "redirectUrl": {
    "success": "https://www.merchantsite.com/success",
    "failure": "https://www.merchantsite.com/failure",
    "cancel": "https://www.merchantsite.com/cancel"
  },
  "requestReferenceNumber": "1551191039",
  "metadata": {}
}

createWalletLink(walletLinkrequestObject)

This method creates a wallet link that allows charging to a PayMaya account.

Returns Promise<void>

walletLinkRequestObject properties:

| Parameter | Type | Required | Description | |-----------------------|--------|----------|--------------------------------------------------------| | redirectUrl | object | | Object containing merchant's callback urls | | redirectUrl.success | string | | Url that the user will be redirected on after successful payment | | redirectUrl.failure | string | | Url that the user will be redirected on after failed payment | | redirectUrl.cancel | string | | Url that the user will be redirected on after canceled payment | | requestReferenceNumber | string | | Request reference number | | metadata | object | No | Additional information regarding payment |


createSinglePayment(singlePaymentRequestObject)

This method creates a single payment redirection, allowing the user to finalize the transaction.

Returns Promise<void>

createSinglePayment properties:

| Parameter | Type | Required | Description | |-----------------------|--------|----------|--------------------------------------------------------| | totalAmount | object | | Object containing payment amount | | totalAmount.currency | string | | Currency of transaction | | totalAmount.value | string | | Value of transaction | | redirectUrl | object | | Object containing merchant's callback urls | | redirectUrl.success | string | | Url that the user will be redirected on after successful payment | | redirectUrl.failure | string | | Url that the user will be redirected on after failed payment | | redirectUrl.cancel | string | | Url that the user will be redirected on after canceled payment | | requestReferenceNumber | string | | Request reference number | | metadata | object | | Additional information regarding payment |


addTransactionHandler(callback)

This method assigns a listener for credit card form method createdCreditCardForm - whenever the user fills all the information required (cvc, credit card number and expiry date) and then tokenizes that data, a callback will be fired with payment token.

Returns void

Example usage:

sdk
  .createCreditCardForm(iframeContainer, {})
  .addTransactionHandler((paymentTokenId) => this.setState({open: true, iframe: true, bodyResponse: {paymentTokenId}}))

addTransactionHandler properties:

| Parameter | Type | Required | Description | |-----------------------|--------|----------|--------------------------------------------------------| | callback | function | Yes | function that will be fired once credit card form is tokenized |

callback(paymentTokenId) properties:

| Parameter | Type | Required | Description | |-----------------------|--------|----------|--------------------------------------------------------| | paymentTokenId | string | | a string that will be passed as argument to merchant's callback function |


createCreditCardForm(targetHtmlElement, options)

This method creates a credit card form in selected html element, by embedding a safe iframe instance in it - allowing the user to fill his credit card information in a safe manner.

Returns void

createdCreditCardForm properties:

| Parameter | Type | Required | Description | |-----------------------|--------|----------|--------------------------------------------------------| | targetHtmlElement | HTMLElement | Yes | a target html element in which form will be embedded | | options | object | No | options object containing styling schema | | options.buttonText | string | No | label text for a button inside the form | | options.buttonColor | string | No | button color (example: '#000') | | options.buttonTextColor | string | No | button text color (example: '#000') | | options.showLogo | boolean | No | boolean whether to show PayMaya logo or not |