npm.io
1.1.3 • Published 7 months ago

omnipay-react-sdk

Licence
MIT
Version
1.1.3
Deps
0
Size
237 kB
Vulns
0
Weekly
0

omnipay-react-sdk

Omnipay react sdk

Installation

yarn add omnipay-react-sdk

Usage

// usage with useOmnipay hook
import { OmnipayProvider, useOmnipay } from 'omnipay-react-sdk';

// Wrap your parent component with OmnipayProvider like below
<OmnipayProvider publicKey='OMNIPUBKEY_HZA3ERGYEE5XUFGTZDQV_MNKRSTA3-TU' env='dev' color='red'>
  {/* the rest of your app */}
</OmnipayProvider>;

// import useOmnipay hook in the component you need to show the wallet sdk in
const { initiateWallet } = useOmnipay();

function onWalletClosed() {
  console.log('wallet is closed..you can do some stuff');
}

initiateWallet({
  customerRef: '299911',
  onClose: onWalletClosed,
  usesAirtimeData: true,
  usesBills: true,
  usesPaylater: true,
  usesPromo: true,
  usesPos: true,
  usesTransfer: true,
  sessionId: '9e949499494',
  kycStatus: 'verified',
  launchPage: 'wallet',
});
Properties
Name Type Description
color String color of primary buttons and links
env String dev or prod
customerRef String customer reference of the customer
publicKey String public key of the company on omnipay
onClose Function this is used to notify you when the sdk closes
usesAirtimeData Boolean whether to show airtime and data shortcut in wallet view
usesBills Boolean whether to show bills shortcut in wallet view
usesPaylater Boolean whether to paylater tab in wallet view
usesPromo Boolean whether to show promo tab in wallet view
usesPos Boolean whether to pos shortcur in wallet view
usesTransfer Boolean whether to transfer shortcut in wallet view
sessionId String unique session id to identify the sdk session
kycStatus String customer's KYC status: "verified" or "unverified"
launchPage String page to launch when opening wallet (default: "wallet")
analyticsConfig Object optional analytics configuration (see below)
Analytics Configuration

You can track user events from the Omnipay SDK by providing an analyticsConfig object to the OmnipayProvider:

<OmnipayProvider
  publicKey='OMNIPUBKEY_HZA3ERGYEE5XUFGTZDQV_MNKRSTA3-TU'
  env='dev'
  color='red'
  analyticsConfig={{
    onEvent: (eventName, payload) => {
      // Send events to your analytics provider
      console.log('Omnipay Event:', eventName, payload);
      // Example: analytics.track(eventName, payload);
    },
    allowedEvents: ['payment_initiated', 'payment_completed'] // Optional: whitelist specific events
  }}
>
  {/* your app */}
</OmnipayProvider>

Analytics Config Properties:

Name Type Description
onEvent Function Callback that receives (eventName: string, payload?: object)
allowedEvents String[] Optional array of event names to forward. If omitted, all events are forwarded

Registration Sdk

import { Omnipay } from "omnipay-react-sdk";

//render it anywhere on your page where you want to display the registration sdk
<Omnipay.Registration
  env="dev"
  color="#42a99b"
  publicKey="OMNIPUBKEY_K0VUJN0JAJZIXUGKAG6XNBXR-RH5YNRS"
  phoneNumber="09031234571"
  onRegistrationSuccessful={({ customerRef, walletId }) => {
    /**
     * the customer ref and walletid can be saved
     * to your database at this point
     *
     */
    console.log(customerRef, walletId);
  }}
  onClose={() => {
    /**
     * the user is done with registration.
     * you can navigate them else where at this point
     */

  }}
  callback={{
    url: "" //webhook url to receive customerRef and walletId via
    secretKey: "" // this will be passed as Secret-Key in the headers
  }}
/>

Properties

Name Type Description
color String color of primary buttons and links
env String dev or prod
phoneNumber String phone number of the customer
publicKey String public key of the company on omnipay
view String the view to render on the sdk

Bvn Verification Sdk

import { Omnipay } from 'omnipay-react-sdk';

//render it anywhere on your page where you want to display the registration sdk
<Omnipay.BvnVerification
  env='dev'
  color='#42a99b'
  publicKey='OMNIPUBKEY_K0VUJN0JAJZIXUGKAG6XNBXR-RH5YNRS'
  customerRef='010019ddh'
  onVerificationSuccessful={() => {
    /**
     * bvn has been verified successfully
     */
  }}
  onClose={() => {
    /**
     * the user is done with bvn verification.
     * you can navigate them else where at this point
     */
  }}
/>;

Properties

Name Type Description
color String color of primary buttons and links
env String dev or prod
phoneNumber String phone number of the customer
publicKey String public key of the company on omnipay
customerRef String customer ref of the customer

Payment Linking Sdk

import { Omnipay } from 'omnipay-react-sdk';

//render it anywhere on your page where you want to display the payment linking sdk
<Omnipay.PaymentLinking
  env='dev'
  color='#42a99b'
  publicKey='OMNIPUBKEY_K0VUJN0JAJZIXUGKAG6XNBXR-RH5YNRS'
  phoneNumber='09031234571'
  customerRef='010019ddh'
  amount={5000}
  sessionId='session123'
  orderId='order456'
  onPaymentLinkingSuccessful={() => {
    /**
     * payment linking has been completed successfully
     */
  }}
  onClose={() => {
    /**
     * the user is done with payment linking.
     * you can navigate them else where at this point
     */
  }}
/>;
Properties
Name Type Description
color String color of primary buttons and links
env String dev or prod
publicKey String public key of the company on omnipay
phoneNumber String phone number of the customer (required if customerRef not provided)
customerRef String customer reference of the customer (required if phoneNumber not provided)
userRef String user reference of the customer (if phoneNumber/customer ref not provided)
amount Number amount to be linked for payment in kobo
sessionId String unique session identifier
orderId String order identifier
onPaymentLinkingSuccessful Function callback when payment linking is successful
onClose Function callback when the payment linking modal is closed

Face Verification Sdk

import { Omnipay } from 'omnipay-react-sdk';

//render it anywhere on your page where you want to display the face verification sdk
<Omnipay.FaceVerification
  env='dev'
  color='#42a99b'
  preAuthKey='your-64-character-pre-auth-key-here-1234567890123456789012345678901234'
  onVerificationSuccessful={(faceAuthToken) => {
    /**
     * face verification has been completed successfully
     * faceAuthToken can be used for authentication
     */
    console.log('Face auth token:', faceAuthToken);
  }}
/>;
Properties
Name Type Description
color String color of primary buttons and links (must be at least 3 characters)
env String dev or prod
preAuthKey String pre-authentication key for face verification (required, must be 64 characters)
onVerificationSuccessful Function callback when face verification is successful, receives faceAuthToken as parameter