UNPKG

cordova-plugin-cashfree-pg

Version:

Cordova/Ionic/Phonegap plugin for Cashfree's Mobile payments SDKs

211 lines (210 loc) 6.84 kB
const PLUGIN_NAME = "CFPaymentGateway"; const version = "1.1.0"; function validateDropInput(cfDropPayment) { if (cfDropPayment) { if (cfDropPayment.session) { if (!cfDropPayment.session.payment_session_id) { return "payment_session_id object is missing in session object"; } if (!cfDropPayment.session.orderID) { return "orderID object is missing in session object"; } if (!cfDropPayment.session.environment) { return "environment object is missing in session object"; } return null; } else { return "session object is missing in cfDropPayment object"; } } else { return "cfDropPayment object is missing"; } } function validateWebInput(cfWebPayment) { if (cfWebPayment) { if (cfWebPayment.session) { if (!cfWebPayment.session.payment_session_id) { return "payment_session_id object is missing in session object"; } if (!cfWebPayment.session.orderID) { return "orderID object is missing in session object"; } if (!cfWebPayment.session.environment) { return "environment object is missing in session object"; } return null; } else { return "session object is missing in cfWebPayment object"; } } else { return "cfWebPayment object is missing"; } } function validateSubscriptionInput(cfSubscriptionPayment) { if (cfSubscriptionPayment) { if (cfSubscriptionPayment.session) { if (!cfSubscriptionPayment.session.subscription_session_id) { return "subscription_session_id is missing in session object"; } if (!cfSubscriptionPayment.session.subscription_id) { return "subscription_id is missing in session object"; } if (!cfSubscriptionPayment.session.environment) { return "environment is missing in session object"; } return null; } else { return "session object is missing in cfSubscriptionPayment object"; } } else { return "cfSubscriptionPayment object is missing"; } } function validateUPIInput(cfUPIPayment) { if (cfUPIPayment) { if (cfUPIPayment.session) { if (!cfUPIPayment.session.payment_session_id) { return "payment_session_id object is missing in session object"; } if (!cfUPIPayment.session.orderID) { return "orderID object is missing in session object"; } if (!cfUPIPayment.session.environment) { return "environment object is missing in session object"; } return null; } else { return "session object is missing in cfUPIPayment object"; } } else { return "cfUPIPayment object is missing"; } } function getError(message, orderId) { return { status: 'FAILED', message: message, code: 'payment_failed', type: 'request_failed', orderID: (orderId) ? orderId : "NA", }; } const CFPaymentGatewayService = module.exports = { cfCallback: null, doUPIPayment(cfUPIPayment) { const callback = this.cfCallback; const error = validateUPIInput(cfUPIPayment); if (error) { if (callback) { // @ts-ignore callback.onError(getError(error)); } return; } cordova.exec(function (result) { // @ts-ignore if (callback) { // @ts-ignore callback.onVerify(result); } }, function (error) { // @ts-ignore if (callback) { // @ts-ignore callback.onError(error); } }, PLUGIN_NAME, 'doUPIPayment', [JSON.stringify(cfUPIPayment), version]); }, /** @deprecated Use doWebCheckoutPayment instead. */ doDropPayment(cfDropPayment) { const callback = this.cfCallback; const error = validateDropInput(cfDropPayment); if (error) { if (callback) { // @ts-ignore callback.onError(getError(error)); } return; } cordova.exec(function (result) { // @ts-ignore if (callback) { // @ts-ignore callback.onVerify(result); } }, function (error) { // @ts-ignore if (callback) { // @ts-ignore callback.onError(error); } }, PLUGIN_NAME, 'doDropPayment', [JSON.stringify(cfDropPayment), version]); }, doWebCheckoutPayment(cfWebPayment) { const callback = this.cfCallback; const error = validateWebInput(cfWebPayment); if (error) { if (callback) { // @ts-ignore callback.onError(getError(error)); } return; } cordova.exec(function (result) { // @ts-ignore if (callback) { // @ts-ignore callback.onVerify(result); } }, function (error) { // @ts-ignore if (callback) { // @ts-ignore callback.onError(error); } }, PLUGIN_NAME, 'doWebCheckoutPayment', [JSON.stringify(cfWebPayment), version]); }, doSubscriptionPayment(cfSubscriptionPayment) { const callback = this.cfCallback; const error = validateSubscriptionInput(cfSubscriptionPayment); if (error) { if (callback) { callback.onError(getError(error)); } return; } cordova.exec(function (result) { if (callback) { callback.onVerify(result); } }, function (error) { if (callback) { callback.onError(error); } }, PLUGIN_NAME, 'doSubscriptionPayment', [JSON.stringify(cfSubscriptionPayment), version]); }, setCallback(cfCallback) { this.cfCallback = cfCallback; cordova.exec(function (result) { // @ts-ignore if (cfCallback) { // @ts-ignore cfCallback.onVerify(result); } }, function (error) { // @ts-ignore if (cfCallback) { // @ts-ignore cfCallback.onError(error); } }, PLUGIN_NAME, 'setCallback', []); } };