Socket
Socket
Sign inDemoInstall

@juspay/godel-cordova-plugin

Package Overview
Dependencies
0
Maintainers
11
Versions
20
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @juspay/godel-cordova-plugin

A Cordova plugin for the JusPay Safe Browser for android and iOS


Version published
Weekly downloads
19
increased by375%
Maintainers
11
Install size
30.2 kB
Created
Weekly downloads
 

Readme

Source

PhoneGap app integration

JusPay has a native android client which can be used by PhoneGap applications. To get started, you first need to download the code for the plugin.

Installation

This requires phonegap/cordova CLI 5.0+ (current stable v1.5.3).

Android Details

Permissions

The plugin will automatically make the following entries into the AndroidManifest.xml of your hybrid application.

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

The in.juspay.godel.PaymentActivity is also added to <application>:

<activity
     android:label="Processing your payment"
     android:name="in.juspay.godel.PaymentActivity"
     android:hardwareAccelerated="true"
     android:screenOrientation="portrait"
     android:windowSoftInputMode="adjustResize"
   >
 </activity>

Starting payment flow

Define Return Url Callback

When the user has completed the payment (could be success or failure), the user will be redirected to the return_url configured by you at the time of order creation. JusPay will invoke your function when the user has reached this return_url.

var reachedEndUrl = function () {
    // your code to check the server status
    var paymentStatus = getPaymentStatusFromServer()
    if(paymentStatus == "CHARGED") {
        gotoThankYouPage()
    }
    else {
        gotoFailurePage()
    }
};

Note: JusPay will not provide the payment status in the callback function, because it is a security issue. You will have to check with your server and retrieve the status from JusPay using /order/status API.

Define back button callback

If the user presses back button, then the transaction is aborted midway by the user. Our plugin will let you know when this happens through a callback. You may define the function as:

var abortedCallback = function () {
    gotoFailurePage()
};

The plugin will handle all the payment pages and when the user has completed the payment, the user is finally redirected to your website. To stop the plugin at the correct end URL, you must declare the final return URL that you have configured with JusPay.

var myEndUrls = ["https://shop.com/juspay-response/.*", "https://beta.shop.com/juspay-response/.*"]

Specify the browserParams

The browserParams object is used to pass all the required information that must be passed to the JusPay safe browser.

Find below the set of parameters which must be sent:

VariableDescriptionTypeRequiredDefault
urlStart URL for paymentStringYes
postDataPOST parameters that must be passed to the URLStringNo
merchantIdIdentifies the merchant. Eg. 'merchant’StringYes
clientIdClientID defines the platform used. Eg. 'merchant_android’StringYes
transactionIdRepresents the current transactionIdStringYes
orderIdRepresents the order number assigned by the merchantStringYes
amountAmount of the transactionStringYes
customerIdUnique identifier of the customerStringNo
customerEmailEmail address of the customerStringYes
customerPhoneNumberMobile number of the customerStringNo
displayNoteShort note about transaction shown to the customer. ex. 'Paying INR 200 for Order 123456'StringNo
remarksRemarks about transaction. This will be automatically filled up in the netbanking page. ex. 'Pay to merchant'StringNo
clearCookiesIf true, we will clear webView cookies whenever Juspay Webview is initialized. Set argument to false if you dont want to clear cookiesBooleanNotrue

Sample browserParams :

var myBrowserParams = {
    "url": "https://sandbox.juspay.in/merchant/ipay?order_id=1474096418&merchant_id=sriduth_sandbox_test&payment_options=card|nb|wallet&mobile=true",
    "merchantId": "sriduth_test",
    "clientId": "android",
    "transactionId": "123",
    "orderId": "12",
    "amount": "1000",
    "customerEmail": "sriduth.jayhari@gmail.com"
}

Customizing the Action Bar

Juspay safe browser alllows the user to customize the action bar. To customize the acton bar, pass in a JSON configuration to the ExpressCheckout.startCheckoutActivity method as shown:

var myActionBar = {
    "backgroundColor": "#FF0000",
    "backgroundImage": "my-drawable-resource",
    "icon": "my-drawable-resource",
    "displayNote": "Flight Mumbai <-> Delhi",
    "remarks": "Flight MUM DEL"
};
OptionDescription
backgroundColorSets the background color of the action bar, this must be a hex color code, like #f9c7d1
backgroundImageName of the file to be used as backgroundImage of action bar. Note that if this property and backgroundColor are set, backgroundImage will override backgroundColor
iconName of the file to be set as the icon image.
displayNoteShort note about transaction shown to the customer. ex. 'Paying INR 200 for Order 123456'
remarksRemarks about transaction. This will be automatically filled up in the netbanking page. ex. 'Pay to merchant'

Note: The images to be used for icon and backgroundImage must be placed in the drawables resource folder of android. See this link for more information.

Tracking Payment status

The GodelTracker API exposes multiple methods using which the payment status an be pushed to Juspay's servers for analytics.

  • GodelTracker.trackFailure(transactionId)
  • GodelTracker.trackCancelled(transactionId)
  • GodelTracker.trackSuccess(transactionId)

Wrapping all together

Once the required parameters are prepared, call JuspaySafeBrowser.start to load the url specified in the browserParams.

var reachedEndUrl = function () {
    // your code to check the server status
    var paymentStatus = getPaymentStatusFromServer()
    if(paymentStatus == "CHARGED") {
        GodelTracker.trackSuccess('my-transaction-id')
        gotoThankYouPage()
    }
    else {
        GodelTracker.trackFailure('my-transaction-id')
        gotoFailurePage()
    }
};

var abortedCallback = function () {
    GodelTracker.trackCancelled('my-transaction-id')
    gotoFailurePage()
};

var myBrowserParams = {
    "url": "https://sandbox.juspay.in/merchant/ipay?order_id=1474096418&merchant_id=sriduth_sandbox_test&payment_options=card|nb|wallet&mobile=true",
    "merchantId": "sriduth_test",
    "clientId": "android",
    "transactionId": "my-transaction-id",
    "orderId": "12",
    "amount": "1000",
    "customerEmail": "sriduth.jayhari@gmail.com"
}

var myActionBar = {
    "backgroundColor": "#FF0000",
    "backgroundImage": "my-drawable-resource",
    "icon": "my-drawable-resource",
    "displayNote": "Flight Mumbai <-> Delhi",
    "remarks": "Flight MUM DEL"
};

JuspaySafeBrowser.start({
    endUrls: myEndUrls,
    onEndUrlReached: reachedEndUrl,
    onTransactionAborted: abortedCallback,
    browserParams: myBrowserParams,
    actionBar: myActionBar
})

Help & Support

If you notice any errors or issues with the integration, please reach out to us at support@juspay.in. You may also search our Knowledge base to see if the issue has already been addressed by our team.

Keywords

FAQs

Last updated on 10 Dec 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc