0.1.2 • Published 1 year ago

one-react-native-upi v0.1.2

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Logo

one-react-native-upi

This library uses intent to use UPI as a payment gateway without any payment fees. It communicates peer-to-peer which enables the application to support UPI payments by detecting the installed application on the user's phone. UPI application responds with a transcations summary in JSON format.

Features

  • Light weight ⚖️
  • Easy to integrate 🔌
  • Works on all UPI Apps 🚀

Badges

MIT License

GPLv3 License

AGPL License

Screenshots

Demo

Note

This library is currently supported by Android only. Please add feature request in order to update the library with iOS support.

Installation

Install one-react-native-upi with npm

npm install one-react-native-upi

Install one-react-native-upi with yarn

yarn add one-react-native-upi

Add <queries> </queries> in AndroidManifest.xml within <manifest> </manifest> tag. You can add more application (UPI Apps) by knowing their packageName.

<queries>
   <package android:name="com.phonepe.app" />                        //Phonepe
    <package android:name="com.google.android.apps.nbu.paisa.user" /> // GPay
    <package android:name="net.one97.paytm" />                        // Paytm
    <package android:name="in.org.npci.upiapp" />                     // BHIM
    <package android:name="in.amazon.mShop.android.shopping" />       // AmazonPay
</queries>

Usage

To get installed UPI apps

import OneUpi from 'one-react-native-upi'
import {Button} from 'react-native


function App() {
  return  <Button
          title="Get installed apps"
          onPress={() =>
           const apps =  OneUpi.getInstalledUPIApps()
           console.log(apps)
         }
        />
}

OneUpi.getInstalledUPIApps() returns String[] of installed packageName. If the array is empty that means no apps are installed that supports upi payments

To initiate payment

import OneUpi from 'one-react-native-upi'
import {Button} from 'react-native



const config =  {
 upiId: 'yourmechantid@paytm',
 name: 'Sonu',
 note: 'Test payment',
 amount: '100',
 targetPackage: "in.org.npci.upiapp",
 }

 const onSuccess = (success) => {
     console.log({success})
 }
 const onFailure = (error) => {
     console.log({error})
 }

function App() {
  return  <Button
          title="Pay now"
          onPress={() =>
            OneUpi.initiate(
              config,
              onSuccess,
              onFailure,
            )
          }
        />
}

config

FieldTypeDefaultRequiredDescription
upiIdString""Upi id of merchant. Personal UPI will not be processed.
nameString""Merchant name
noteString""Payment note
amountString""Amount to be paid
targetPackageString""OptionalIf not passed then it will open chooser
chooserTextStringPay withOptionalif you pass targetPackage, it will not be reflected

onSuccess response

FieldTypeValueDescription
statusStringSUCCESSPayment Status
txnIdStringDynamic valuetransaction ID
codeString00success response code
approvalRefNoStringDynamic valueTransaction Reference Number

onFailure response

FieldTypeValueDescription
statusStringFAILEDpayment status
messageStringReason for the failed payment

FAQ

Will it work with ios?

No, it currently supports android

Which apps are supported?

I have tested on PayTM, PhonePe, GPay, AmazonPay as of now .

Author

Support

For support, email sky32752@gmail.com.

License

MIT

0.1.2

1 year ago

0.1.1

1 year ago

0.1.0

1 year ago