Skip to main content

Headless SDK

Customize the payment experience using Headless functions​

1. Initialize the OrchestratorX SDK​

Initialize OrchestratorX Headless SDK onto your app with your publishable key. To get a Publishable Key please find it here.

import { HyperProvider } from "@juspay-tech/hyperswitch-react-native";

function App() {
return (
<HyperProvider publishableKey="YOUR_PUBLISHABLE_KEY">
// Your app code here
</HyperProvider>
);
}

2. Create a Payment Intent​

Make a request to the endpoint on your server to create a new Payment. The clientSecret returned by your endpoint is used to initialize the payment session.

danger

Important: Make sure to never share your API key with your client application as this could potentially compromise your security

3. Initialize your Payment Session​

Initialize a Payment Session by passing the clientSecret to the initPaymentSession

import { useHyper } from "@juspay-tech/react-native-hyperswitch";

const { initPaymentSession } = useHyper();
const [paymentSession,setPaymentSession] = React.useState(null);

const initializeHeadless = async() => {
const { clientSecret } = await fetchPaymentParams();
const params = {clientSecret:clientSecret}
const paymentSession = await initPaymentSession(params);
setPaymentSession(_ => paymentSession)
};

useEffect(() => {
initializeHeadless();
}, []);

options (Required)Description
paymentIntentClientSecret (string)Required. Required to use as the identifier of the payment.

4. Craft a customized payments experience​

Using the paymentSession object, the default customer payment method data can be fetched, using which you can craft your own payments experience. The paymentSession object also exposes a confirmWithCustomerDefaultPaymentMethod function, using which you can confirm and handle the payment session.

import { useHyper } from "@juspay-tech/react-native-hyperswitch";

const { getCustomerSavedPaymentMethods,
getCustomerDefaultSavedPaymentMethodData,
confirmWithCustomerDefaultPaymentMethod } = useHyper();

const [defaultPaymentMethodData,setDefaultPaymentMethodData]=React.useState(null)

React.useEffect(()=>{
const getPaymentMethods = async() => {
const paymentMethodSession
= await getCustomerSavedPaymentMethods(paymentSession);
const customer_default_saved_payment_method_data
= await getCustomerLastUsedSavedPaymentMethodData(paymentMethodSession);
setDefaultPaymentMethodData(_=>customer_default_saved_payment_method_data)
}
getPaymentMethods()
},[])

let confirmDefaultPaymentMethod = () => {
const status = await confirmWithCustomerLastUsedPaymentMethod(paymentMethodSession);
// handle status of payment
if (status != null) {
const message = status.message;
console.log(message)
}
}

return (
//build the ui using defaultPaymentMethodData
//on click of pay use confirmDefaultPaymentMethod()
)

Payload for confirmWithCustomerLastUsedPaymentMethod(callback)

options (Required)Description
callback (function)Callback to get confirm response.