UNPKG

react-native-razorpay

Version:
38 lines (32 loc) 1.24 kB
'use strict'; import { NativeModules, NativeEventEmitter } from 'react-native'; const razorpayEvents = new NativeEventEmitter(NativeModules.RazorpayEventEmitter); const removeSubscriptions = () => { razorpayEvents.removeAllListeners('Razorpay::PAYMENT_SUCCESS'); razorpayEvents.removeAllListeners('Razorpay::PAYMENT_ERROR'); razorpayEvents.removeAllListeners('Razorpay::EXTERNAL_WALLET_SELECTED'); }; class RazorpayCheckout { static open(options, successCallback, errorCallback) { return new Promise(function(resolve, reject) { razorpayEvents.addListener('Razorpay::PAYMENT_SUCCESS', (data) => { let resolveFn = successCallback || resolve; resolveFn(data); removeSubscriptions(); }); razorpayEvents.addListener('Razorpay::PAYMENT_ERROR', (data) => { let rejectFn = errorCallback || reject; rejectFn(data); removeSubscriptions(); }); NativeModules.RNRazorpayCheckout.open(options); }); } static onExternalWalletSelection(externalWalletCallback) { razorpayEvents.addListener('Razorpay::EXTERNAL_WALLET_SELECTED', (data) => { externalWalletCallback(data); removeSubscriptions(); }); } } export default RazorpayCheckout;