@orbitalpay/sdk
Version:
Orbital Pay - A simple and elegant way to integrate Orbital Pay payment functionality into your applications
140 lines (106 loc) • 3.42 kB
Markdown
# Orbital Pay SDK Integration Example
This repository demonstrates how to integrate the Orbital Pay SDK into a Next.js application. The SDK provides a simple way to implement payment functionality with just a few lines of code.
## Installation
```bash
npm install orbital-pay-sdk
# or
yarn add orbital-pay-sdk
```
## Usage
<img width="258" alt="image" src="https://github.com/user-attachments/assets/e4a65e27-db19-49a7-9818-31d36692415d" />
```tsx
"use client"
import * as React from 'react';
import OrbitalPay from 'orbital-pay-sdk';
export default function PaymentPage() {
const [open, setOpen] = React.useState(false);
const [status, setStatus] = React.useState<string | null>(null);
const handleClose = () => {
setOpen(false);
};
const handleOpen = () => {
setOpen(true);
};
return (
<div>
<button onClick={handleOpen}>
Open Payment Modal
</button>
{open && (
<OrbitalPay
transaction_id="your_transaction_id"
orbital_public_key={process.env.NEXT_PUBLIC_ORBITAL_PUBLIC_KEY}
open={open}
setStatus={setStatus}
onClose={handleClose}
/>
)}
</div>
);
}
```
## Required Props
| Prop | Type | Required | Description |
|------|------|----------|-------------|
| `transaction_id` | string | Yes | Unique identifier for the transaction |
| `orbital_public_key` | string | Yes | Your Orbital Pay public API key |
| `open` | boolean | Yes | Controls the visibility of the payment modal |
| `onClose` | function | Yes | Callback function when the modal is closed |
| `setStatus` | function | Yes | function to get your payment status back |
## Environment Variables
Create a `.env.local` file in your project root and add your Orbital Pay API keys:
```env
NEXT_PUBLIC_ORBITAL_PUBLIC_KEY=your_public_key_here
```
## API Integration and Generating transaction_id
The SDK can be integrated with the Orbital Pay API to create checkout sessions. Here's an example of creating a checkout:
```typescript
const response = await fetch('https://py.api.orbitalpay.xyz/merchants/create-checkout', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': process.env.NEXT_PUBLIC_ORBITAL_PRIVATE_KEY
},
body: JSON.stringify({
amount: 150000, // Must be Converted into full perecision
details: 'Sample money request',
token: 'USDC'
})
const data = await response.json();
// interface CheckoutSession {
// amount: number;
// callback_url: string;
// details: string;
// requester_wallet: string;
// status: string;
// timestamp: number;
// expiration_timestamp: number | null;
// token: string;
// transaction_id: string;
// txhash: string;
// type: string;
// email_linked: boolean;
// }
});
```
## Features
- Clean and modern UI
- Responsive design
- Simple integration
- Modal-based payment flow
- Environment variable configuration
- TypeScript support
- USDC payment support
- Customizable transaction details
## Browser Support
The SDK supports all modern browsers:
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
## Security Notes
- Always store API keys in environment variables
- Never expose private keys in client-side code
- Use HTTPS in production environments
- Keep your `orbital_public_key` secure
- Implement proper error handling for API responses