This SDK allows you to seamlessly connect to multiple payment channels such as Flutterwave, Paystack and Stripe and create a checkout experience with only one integration.
You can see a demo of our checkout experience here: https://asyncpay.io/demo
- An Asyncpay account - Head to Asyncpay to create an account and gain access to your dashboard.
- Connect your payment Channels - The dashboard provides you a means to connect your multiple payment channels to your business. Create accounts on the payment channels you wish to integrate and provide your keys on the dashboard.
- Integrate this SDK - After connecting the payment channels you can initialize payments with the Asyncpay public key found on your dashboard.
- To install this SDK, run the npm command
$ npm install @asyncpay/checkout-react-native
OR
$ yarn add @asyncpay/checkout-react-native
- The SDK exports a Customizable button Component
import { CheckoutButton } from '@asyncpay/checkout-react-native';
<CheckoutButton
publicKey="${YOUR_ASYNC_PAY_PUBLIC_KEY}"
amount={10000}
currency={'NGN'}
customer={{
email: 'example@mail.com',
first_name: 'John',
last_name: 'Doe',
}}
/>;
- The SDK exports a custom hook
import { useCheckout } from '@asyncpay/checkout-react-native';
import { StyleSheet, Text, TouchableOpacity } from 'react-native';
const Checkout = () => {
const { _handleCheckout, Modal } = useCheckout({
amount: 10000,
currency: 'NGN',
customer: {
email: 'example@mail.com',
},
publicKey: '${YOUR_ASYNC_PAY_PUBLIC_KEY}',
});
return (
<>
<TouchableOpacity
style={styles.buttonContainer}
onPress={_handleCheckout}
>
<Text style={styles.text}>Press me</Text>
</TouchableOpacity>
<Modal />
</>
);
};
const styles = StyleSheet.create({
buttonContainer: {
width: '90%',
height: heightPercentageToDP(5),
backgroundColor: '#1059bc',
alignItems: 'center',
justifyContent: 'center',
borderRadius: 10,
marginVertical: heightPercentageToDP(5),
},
text: {
color: '#fff',
fontSize: 16,
fontWeight: 'bold',
},
});
Listed below are the available config options for the AsyncpayCheckout
button and hook.
publicKey
,
amount
,
description
,
customer_email
,
customer_uuid
,
subscription_plan_uuid
,
customer
,
paymentChannel
,
onError
,
onSuccess
,
logo
,
buttonStyle
,
buttonTextStyle
,
buttonTitle
Name | Required | Description |
---|---|---|
publicKey |
true |
The public key of your business gotten from the Asyncpay dashboard. |
amount |
true but not considered when subscription_plan_uuid is present |
The amount you want to charge the user. |
currency |
false but not considered when subscription_plan_uuid is present |
The amount you want to charge the user. |
description |
false but not considered when subscription_plan_uuid is present |
The description of the transaction. |
customer_email |
required if customer_uuid and customer is absent |
The email of the customer you want to charge. |
customer_uuid |
required if customer_email and customer is absent |
The UUID of the customer you want to charge. |
subscription_plan_uuid |
false prohibits amount , currency and description
|
The UUID of the subscription plan you want to subscribe your customer to. |
customer |
required if customer_email and customer_uuid is absent |
The customer object of the customer. Using this option would create a customer on the user. |
metadata |
false |
An object that can be used to add metadata to the checkout. It expects an object whose keys and values are strings. |
save_payment_method |
false |
This flag determines whether the payment method used for this checkout should be saved on Asyncpay. Saving this method for the customer allows you to initiate a charge later on the saved payment method. |
reference |
false |
A uniquely generated reference to be tied to the payment request for your checkout session. |
payment_channel |
false |
The payment channel you want to route the payment to. If you set a value here, the checkout goes staright to that payment channel without giving the user a choice. |
buttonStyle |
false |
For Styling the checkout button. |
buttonTextStyle |
false |
For styling the checkout text . |
onCancel |
false |
A javascript function to call after the user cancels the checkout page. |
buttonTitle |
false |
Set The a custom title for the checkout button. |
onError |
false |
A javascript function to call whenever there is an error during the checkout process. An argument with a type of Error would be supplied to describe the error. |
onSuccess |
false |
A javascript function to call after the user has successfully completed checkout. |
logo |
false |
The logo to show up on the payment page if you want to override the logo set on the dashboard. |
The table below shows the properties that can be attached to a customer
object if you choose to use that to initialize a payment request with the SDK.
Name | Required |
---|---|
first_name |
true |
last_name |
true |
email |
true |
phone_code |
Required if email is absent |
phone_number |
Required if email is absent |
address_line_1 |
false |
address_line_2 |
false |
city |
false |
state |
false |
country |
false |
zip |
false |
Feel free to send a message to info@asyncpay.io
for any support regarding using this SDK or create an issue
on Github