Skip to content

nitish24p/react-native-upi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

react-native-upi

My cool logo

[react-native-upi](https://github.com/nitish24p/react-native-upi/tree/master/lib) is a tiny plugin to integrate the UPI payment interface made by [NPCI](https://www.bhimupi.org.in/) from your react native apps. This plugin allows you to enable peer to peer payments via UPI in your react native apps. Linking specs have been followed as per [this](https://www.npci.org.in/sites/all/themes/npcl/images/PDF/UPI_Linking_Specs_ver_1.5.1.pdf) doc

Installation

npm install react-native-upi-payment

or

yarn add react-native-upi-payment

Android

Automatic Installation

react-native run link 

Manual Installation

Open android/settings.gradle add the following

include ':react-native-upi' project(':react-native-upi').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-upi/android') 

Open android/build.gradle add the following in the dependencies section

dependencies { compile project(':react-native-upi') } 

Open MainApplication.java

// Other imports import com.upi.payment.UpiPaymentPackage; // Add this in the Main Application Class @Override protected List<ReactPackage> getPackages() { return Arrays.<ReactPackage>asList( //... Other packages new UpiPaymentPackage() // <- Add this line ); }

Usage

RNUpiPayment.initializePayment({ vpa: 'john@upi', // or can be john@ybl or mobileNo@upi payeeName: 'John Doe', amount: '1', transactionRef: 'aasf-332-aoei-fn' }, successCallback, failureCallback);

Config docs

{ /*  * REQUIRED  * vpa is the address of the payee given to you  * by your bank  */ vpa: 'somehandle@upi', /*  * REQUIRED  * payeeName is the name of the payee you want  * to make a payment too. Some upi apps need this  * hence it is a required field  */ payeeName: 'Payee name', /*  * REQUIRED  * This is a reference created by you / your server  * which can help you identify this transaction  * The UPI spec doesnt mandate this but its a good to have  */ transactionRef: 'some-hash-string', /*  * REQUIRED  * The actual amount to be transferred  */ amount: '200', /*  * OPTIONAL  * Transactional message to be shown in upi apps  */ transactionNote: 'for food' }

Callbacks

function successCallback(data) { // do whatever with the data } function failureCallback(data) { // do whatever with the data }

Responses

SUCCESS CASE

{ /** * SUCCESS STATUS * */ Status: "SUCCESS", /** * Transaction Id of bank to which upi has been initiated * */ txnId: "AXId8c71205eb7d459889bb7018bdf2c056", /** * 00 response code, for success * transaction is successful money has been debited * */ responseCode: "00", /** * Transaction reference stated in init obect * */ txnRef: "aasf-332-aoeifn" }

FAILURE CASES

{ /**  * Status Sent on transaction  * If the user presses back or closes app  * */ status: "FAILURE", /**  * If the user presses back or closes app  * */ message: "No action taken" } // No action
{ /**  * FAILURE STATUS  * */ Status: "FAILURE", /**  * Transaction Id of bank to which upi has been initiated  * */ txnId: "AXIa463c7ca81a24e168df5ac9c1359c38c", /**  * Non 0 response code,  * If the user enters the wrong pin  * */ responseCode: "ZM", /**  * Transaction reference stated in init obect  * */ txnRef: "aasf-332-aoeifn" }

About

A tiny module for Adding payments via UPI in your react native apps ❤️

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published