@asyncpay/checkout-react-native
v0.0.3
Published
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.
Readme
Asyncpay Checkout SDK
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.
Demo
You can see a demo of our checkout experience here: https://asyncpay.io/demo
Requirements
- 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.
Steps for Integrating this SDK
- To install this SDK, run the npm command
$ npm install @asyncpay/checkout-react-nativeOR
$ 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: '[email protected]',
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: '[email protected]',
},
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',
},
});Available Checkout Options
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. |
Available Customer Object Options
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 |
Support
Feel free to send a message to [email protected] for any support regarding using this SDK or create an issue
on Github
