Integration Reference
Learn how to integrate Hyperswitch embeddable components into your React application using the SDK provider pattern for secure connector configuration management.
Last updated
Was this helpful?
Was this helpful?
const express = require('express');
const cors = require('cors');
const axios = require('axios');
const app = express();
const port = 4000;
app.use(cors());
app.use(express.json());
const HYPERSWITCH_BASE_URL = 'https://app.hyperswitch.io/api';
app.get('/embedded/hyperswitch', async (req, res) => {
try {
const response = await axios.get(
`${HYPERSWITCH_BASE_URL}/api/embedded/token`,
{
headers: {
'api-key': 'YOUR_ACTUAL_API_KEY_HERE',
'X-profile-id': 'YOUR_PROFILE_ID_HERE',
'Content-Type': 'application/json'
}
}
);
console.log('Hyperswitch Token Generated:', response.data);
res.json({
success: true,
message: 'Token fetched successfully',
data: response.data
});
} catch (error) {
console.error('Error fetching token:', error.message);
res.status(500).json({
error: 'Failed to fetch token from Hyperswitch API',
details: error.message
});
}
});
app.listen(port, () => {
console.log(`Server listening at http://localhost:${port}`);
});
npm install @juspay-tech/hyperswitch-control-center-embed-coreimport { loadHyperswitch } from "@juspay-tech/hyperswitch-control-center-embed-core";const { loadHyperswitch } = require("@juspay-tech/hyperswitch-control-center-embed-core");import { loadHyperswitch } from "@juspay-tech/hyperswitch-control-center-embed-core";
document.addEventListener("DOMContentLoaded", async function () {
const fetchToken = async () => {
try {
const response = await fetch(
"http://localhost:4000/embedded/hyperswitch",
{
method: "GET",
headers: {
"Content-Type": "application/json"
}
}
);
if (!response.ok) {
return undefined;
}
const responseData = await response.json();
const token = responseData.data?.token || responseData.token;
return token;
} catch (err) {
return undefined;
}
};
const hyperswitch = loadHyperswitch({
fetchToken: fetchToken
});
const connectorConfig = hyperswitch.create("connectors", {
url: "https://app.hyperswitch.io/api"
});
connectorConfig.mount("#hyperswitch-root");
});
npm install @juspay-tech/hyperswitch-control-center-embed-reactimport React, { useState } from 'react';
import './App.css';
import 'tailwindcss/tailwind.css';
import { loadHyperswitch } from '@juspay-tech/hyperswitch-control-center-embed-core';
import {
HyperswitchProvider,
ConnectorConfiguration
} from '@juspay-tech/hyperswitch-control-center-embed-react';function App() {
const [errorMessage, setErrorMessage] = useState(null);
const [hyperswitchInstance] = useState(() => {
const fetchToken = async () => {
try {
const response = await fetch(
'http://localhost:4000/embedded/hyperswitch',
{
method: "GET",
headers: {
'Content-Type': 'application/json'
}
}
);
if (!response.ok) {
const errorData = await response.json();
const errorMsg = errorData.error || 'Network error fetching token';
setErrorMessage(errorMsg);
return undefined;
}
const responseData = await response.json();
const token = responseData.data?.token || responseData.token;
return token;
} catch (err) {
setErrorMessage(err.message);
return undefined;
}
};
return loadHyperswitch({
fetchToken: fetchToken
});
});
return (
<div className="h-screen bg-gray-100 p-10 text-gray-700">
{errorMessage ? (
<div className="bg-red-100 border border-red-400 text-red-700 px-4 py-3 rounded mb-4">
<strong>Error: </strong>
<span>{errorMessage}</span>
</div>
) : (
<HyperswitchProvider hyperswitchInstance={hyperswitchInstance}>
<ConnectorConfiguration url="https://app.hyperswitch.io/api" />
</HyperswitchProvider>
)}
</div>
);
}
export default App;