1.0.13 • Published 6 years ago
@faisalali19/react-native-paytm v1.0.13
@faisalali19/react-native-paytm
This library has been forked from https://github.com/elanic-tech/react-native-paytm Updated it to work with the latest version of react-native and latest PayTM SDK.
Installation
| react-native-paytm | react-native |
|---|---|
| 1.0.11 | < 0.60 |
| 1.0.12 | >= 0.60 |
npm i --save @faisalali19/react-native-paytmor
yarn add @faisalali19/react-native-paytmFor RN < 0.60
Link it:
react-native link @faisalali19/react-native-paytmFor RN >= 0.60
Use CocoaPods installation if auto-linking doesn't work.
CocoaPods
Add to your Podfile:
pod 'RNPayTm', :path => '../node_modules/@faisalali19/react-native-paytm'Install it:
pod install && pod updateIf it's not gonna work, then add libPaymentsSDK.a to "Link Binary With Libraries" Build Phase for the RNPayTm target (in Pods project).
iOS (Manually)
- In XCode, in the project navigator, right click
Libraries➜Add Files to [your project's name] - Go to
node_modules/@faisalali19/react-native-paytmand addRNPayTm.xcodeproj - In XCode, in the project navigator, select your project. Add
libRNPayTm.ato your project'sBuild Phases➜Link Binary With Libraries - Run your project (
Cmd+R)
Methods
startPayment(details: PayTmPaymentDetails): void
type PayTmPaymentDetails = {
mode: 'Staging' | 'Production',
MID: string,
INDUSTRY_TYPE_ID: string,
WEBSITE: string,
CHANNEL_ID: string,
TXN_AMOUNT: string,
ORDER_ID: string,
EMAIL?: string,
MOBILE_NO?: string,
CUST_ID: string,
CHECKSUMHASH: string,
CALLBACK_URL: string,
MERC_UNQ_REF?: string,
};Usage
For more details check official documentation: iOS and Android.
Example:
import React from 'react';
import { Platform } from 'react-native';
import Paytm from '@faisalali19/react-native-paytm';
// Data received from PayTM
const paytmConfig = {
MID: 'Value from PayTM dashboard',
WEBSITE: 'Value from PayTM dashboard',
CHANNEL_ID: 'WAP',
INDUSTRY_TYPE_ID: 'Retail',
CALLBACK_URL: 'https://securegw.paytm.in/theia/paytmCallback?ORDER_ID=',
};
export default class Test extends React.Component {
componentWillMount() {
Paytm.addListener(Paytm.Events.PAYTM_RESPONSE, this.onPayTmResponse);
}
componentWillUnmount() {
Paytm.removeListener(Paytm.Events.PAYTM_RESPONSE, this.onPayTmResponse);
}
onPayTmResponse = (resp) => {
const { STATUS, status, response } = resp;
if (Platform.OS === 'ios') {
if (status === 'Success') {
const jsonResponse = JSON.parse(response);
const { STATUS } = jsonResponse;
if (STATUS && STATUS === 'TXN_SUCCESS') {
// Payment succeed!
}
}
} else {
if (STATUS && STATUS === 'TXN_SUCCESS') {
// Payment succeed!
}
}
};
runTransaction(amount, customerId, orderId, mobile, email, checkSum, mercUnqRef) {
const callbackUrl = `${paytmConfig.CALLBACK_URL}${orderId}`;
const details = {
mode: 'Staging', // 'Staging' or 'Production'
MID: paytmConfig.MID,
INDUSTRY_TYPE_ID: paytmConfig.INDUSTRY_TYPE_ID,
WEBSITE: paytmConfig.WEBSITE,
CHANNEL_ID: paytmConfig.CHANNEL_ID,
TXN_AMOUNT: `${amount}`, // String
ORDER_ID: orderId, // String
EMAIL: email, // String
MOBILE_NO: mobile, // String
CUST_ID: customerId, // String
CHECKSUMHASH: checkSum, //From your server using PayTM Checksum Utility
CALLBACK_URL: callbackUrl,
MERC_UNQ_REF: mercUnqRef, // optional
};
Paytm.startPayment(details);
}
}1.0.13
6 years ago