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

authorizenet-react

v1.0.2

Published

React components for Authorize.Net payments

Downloads

36

Readme

React Authorize.Net

A lightweight React library for integrating Authorize.Net payments into your React applications. This library provides React components and hooks for accepting payments through Authorize.Net with minimal dependencies.

Features

  • 🪶 Lightweight with zero dependencies
  • ⚛️ React hooks for easy integration
  • 🔒 Secure token generation
  • 🎨 Customizable styling
  • 📱 Responsive design
  • 💪 TypeScript support
  • 🖼️ Multiple payment form options (Card Element and Hosted Form)

Installation

npm install authorizenet-react

Peer Dependencies

This library requires the following peer dependencies:

{
  "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
  "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
}

Usage

Card Element

import { AuthorizeNetProvider, Card, useAuthorizeNet } from 'react-authorize-net';

// Wrap your app with AuthorizeNetProvider
function App() {
  return (
    <AuthorizeNetProvider
      apiLoginId="YOUR_API_LOGIN_ID"
      clientKey="YOUR_CLIENT_KEY"
      environment="sandbox" // or "production"
    >
      <CheckoutForm />
    </AuthorizeNetProvider>
  );
}

// Create a checkout form component
function CheckoutForm() {
  const { createToken } = useAuthorizeNet();

  const handleSubmit = async (event) => {
    event.preventDefault();
    try {
      const { token, descriptor } = await createToken();
      // Send token to your server
      console.log('Payment token:', token);
      console.log('Descriptor:', descriptor);
    } catch (error) {
      console.error('Error:', error);
    }
  };

  return (
    <form onSubmit={handleSubmit}>
      <CardElement 
        options={{
          style: {
            base: {
              fontSize: '16px',
              color: '#424770',
              '::placeholder': {
                color: '#aab7c4'
              }
            },
            invalid: {
              color: '#9e2146'
            }
          }
        }}
        onChange={({ complete, error }) => {
          if (complete) {
            console.log('Card details complete');
          }
          if (error) {
            console.error('Error:', error);
          }
        }}
      />
      <button type="submit">Pay</button>
    </form>
  );
}

API Reference

AuthorizeNetProvider

The provider component that wraps your application:

<AuthorizeNetProvider
  apiLoginId="YOUR_API_LOGIN_ID"
  clientKey="YOUR_CLIENT_KEY"
  environment="sandbox" // or "production"
  className="custom-class" // optional
>
  {/* Your app */}
</AuthorizeNetProvider>

Props

  • apiLoginId (string, required): Your Authorize.Net API Login ID
  • clientKey (string, required): Your Authorize.Net Client Key
  • environment (string, optional): "sandbox" or "production", defaults to "sandbox"
  • className (string, optional): Custom CSS class for the provider wrapper

CardElement

A React component that creates a card input field:

<Card
  options={{
    style: {
      base: {
        fontSize: '16px',
        color: '#424770',
        '::placeholder': {
          color: '#aab7c4'
        }
      },
      invalid: {
        color: '#9e2146'
      }
    }
  }}
  onChange={({ complete, error }) => {
    // Handle changes
  }}
  className="custom-class"
/>

Props

  • options (object, optional): Styling options for the card element
  • onChange (function, optional): Callback for form state changes
  • className (string, optional): Custom CSS class for the card element

useAuthorizeNet

A hook for accessing the Authorize.Net context:

const { createToken, isScriptLoaded } = useAuthorizeNet();

// Create a payment token
const handlePayment = async () => {
  try {
    const { token, descriptor } = await createToken();
    // Use the token
  } catch (error) {
    // Handle error
  }
};

Returns

  • createToken: Function to generate a payment token
  • isScriptLoaded: Boolean indicating if the Authorize.Net script is loaded
  • setCardData: Function to set card data manually (advanced usage)
  • apiLoginId: The API Login ID provided to the provider
  • clientKey: The Client Key provided to the provider
  • environment: The environment setting ("sandbox" or "production")

License

MIT