react-native-upi-pay
Version:
react-native-upi is a plugin to integrate the UPI payment interface made by NPCI 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 doc
134 lines (114 loc) • 4.23 kB
Markdown
# react-native-upi-pay
react-native-upi is a plugin to integrate the UPI payment interface made by NPCI 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 doc
## Getting started
`$ npm install react-native-upi-pay --save`
### Mostly automatic installation
`$ react-native link react-native-upi-pay`
### Manual installation
#### Android
1. Open up `android/app/src/main/java/[...]/MainActivity.java`
- Add `import com.upiPay.UpiPayPackage;` to the imports at the top of the file
- Add `new UpiPayPackage()` to the list returned by the `getPackages()` method
2. Append the following lines to `android/settings.gradle`:
```
include ':react-native-upi-pay'
project(':react-native-upi-pay').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-upi-pay/android')
```
3. Insert the following lines inside the dependencies block in `android/app/build.gradle`:
```
compile project(':react-native-upi-pay')
```
## Usage (Example of react-native-upi-pay )
```javascript
import React, {Component} from 'react';
import {View,Text,Button} from 'react-native';
import RNUpiPayment from 'react-native-upi-pay';
/*
npm install react-native-upi-pay
react-native link
*/
export default class App extends Component{
constructor(props){
super();
this.state={
Status:"",
txnId:"",
GOOGLE_PAY:'GOOGLE_PAY',
PHONEPE:'PHONEPE',
PAYTM:'PAYTM',
message:""
}
}
render(){
that=this;
function floo(paymentApp){
RNUpiPayment.initializePayment({
vpa: 'something@bank', //your upi address like 12345464896@okhdfcbank
payeeName: ' abc', // payee name
amount: '1', //amount
transactionNote:'Testing Upi', //note of transaction
transactionRef: 'aasf-332-aoei-fn' //some refs to aknowledge the transaction
},paymentApp,successCallback,failureCallback);
}
function failureCallback(data){
console.log(data)
// in case no action taken
if (data['status']=="FAILURE"){
that.setState({Status:"FAILURE"})
that.setState({message:data['message']});
}
// in case of googlePay
else if (data['Status']=="FAILURE"){
that.setState({Status:"FAILURE"})
that.setState({message:"app closed without doing payment"});;
}
// in case of phonepe
else if (data['Status']=="Failed"){
that.setState({Status:"FAILURE"});
that.setState({message:"app closed without doing payment"});
}
// in case of phonepe
else if(data['Status']=="Submitted"){
that.setState({Status:"FAILURE"});
that.setState({message:"transaction done but pending"});
}
// any other case than above mentioned
else{
that.setState({Status:"FAILURE"});
that.setState({message:data[Status]});
}
}
function successCallback(data){
//
console.log(data);
that.setState({Status:"SUCCESS"});
that.setState({txnId:data['txnId']});
that.setState({message:"Succccessfull payment"});
}
return (
<View style={{alignItems:"center",justifyContent:"center",flex:1}}>
<View style={{flexDirection:'row',padding:5}}>
<Button
title="Google pay"
onPress={() => {floo(this.state.GOOGLE_PAY)}}
/>
<Button
title="Phone pe"
onPress={() => {floo(this.state.PHONEPE)}}
/>
<Button
title="PAYTM"
onPress={() => {floo(this.state.PAYTM)}}
/>
</View>
<Text>{this.state.Status+" "+this.state.txnId}</Text>
<Text>{this.state.message}</Text>
</View>
);
}
}
// TODO: What to do with the module?
RNReactNativeUpiPay;
```
##insipiration
` This liabrary is inspired by react-native-upi-payments.