reactjs-payment-gateway
TypeScript icon, indicating that this package has built-in type declarations

1.0.4 • Public • Published

ReactJS Payment Gateway

A React component for integrating with Omniware payment gateway.

TypeScript Support

The package includes TypeScript definitions for all payment parameters matching the Swift SDK structure.

Installation

npm install reactjs-payment-gateway

Complete Integration Guide

Basic Setup

  1. Install the package:
npm install reactjs-payment-gateway
  1. Import the payment function in your component:
import PaymentGateway, { PaymentGatewayParams } from 'reactjs-payment-gateway';

Payment Initialization

Prepare the payment data object with all required parameters:

const paymentData: PaymentGatewayParams = {
  api_key: '<API_KEY>',
  return_url: '<RETURN_URL>',
  mode: '<LIVE || TEST>',
  name: '<NAME>',
  phone: '<PHONE>',
  city: '<CITY>',
  country: '<COUNTRY>',
  state: '<STATE>',
  email: '<EMAIL>',
  zip_code: '<ZIP_CODE>',
  description: '<DESCRIPTION>',
  currency: '<CURRENCY>',
  amount: '<AMOUNT>',
  address_line_1: '<ADDRESS_LINE_1>',
  address_line_2: '<ADDRESS_LINE_2>',
  order_id: '<ORDER_ID>'
};

Hash Generation

Please contact support for assistance with this particular query.

Payment Initialization

const handlePayment = async () => {
  // Use the SALT only for hash generation
  paymentData.hash = await generatehash(paymentData);
  
  // Remove the SALT from the paymentData object after generating the hash
  delete paymentData.salt;
  
  try {
    const result = await PaymentGateway.initiatePayment(<PAYMENT_URL: String>, <PAYMENT_PARAMS: PaymentGatewayParams>);
    console.log(result.success ? 'Payment successful!' : 'Payment failed');
  } catch (error) {
    console.error('Payment error:', error.message);
  }
};

Initiating Payment

Call the payment function with your payment data and gateway URL:

try {
  
  await PaymentGateway.initiatePayment(<PAYMENT_URL: String>, <PAYMENT_PARAMS: PaymentGatewayParams>);

} catch (error) {
  // Handle errors
  console.error('Payment error:', error);
}

Required Fields

  • api_key: Your merchant API key (from environment variables)
  • return_url: URL to redirect after payment
  • mode: 'LIVE' or 'TEST'
  • amount: Payment amount as string
  • currency: Currency code (e.g. 'INR')
  • order_id: Unique order ID
  • description: Payment description
  • address_line_1: Billing address line 1
  • address_line_2: Billing address line 2
  • city: Billing city
  • state: Billing state
  • country: Billing country code
  • zip_code: Billing zip code
  • name: Customer name
  • email: Customer email
  • phone: Customer phone number
  • hash: SHA-512 hash of sorted payment parameters

Return URL Endpoint Setup

To handle payment responses, you need to create an endpoint that can process POST requests and pass that url as return_url in the paymentData. Follow these general steps:

  1. Create a server-side endpoint that accepts POST requests
  2. Configure the endpoint to receive and parse form data
  3. Validate the payment status from the received data
  4. Store transaction details securely
  5. Implement appropriate response handling

Make sure your endpoint is accessible over HTTPS and can handle the expected request format from the payment gateway.

Security Measures

Protecting Sensitive Information

Always store sensitive data like API keys, salts, and payment URLs in environment variables. Never hardcode them in your source code. Follow these best practices:

  1. Create a .env file in your project root:
API_KEY=your_api_key
PAYMENT_URL=your_payment_url
SALT=your_salt_value
  1. Add .env to your .gitignore file to prevent accidental commits

  2. Access environment variables in your code:

const paymentData = {
  api_key: process.env.API_KEY,
  // ... other parameters
};
  1. Use secure environment variable management in production

  2. Regularly rotate your API keys and salts

  3. Implement proper access controls for sensitive data

License

MIT

Package Sidebar

Install

npm i reactjs-payment-gateway

Weekly Downloads

1

Version

1.0.4

License

MIT

Unpacked Size

107 kB

Total Files

11

Last publish

Collaborators

  • omniware.npm