mkloubert / nativescript-paypal

PayPal plugin for NativeScript
MIT License
8 stars 5 forks source link

Writing plugin for nativescript-paytm #2

Open sarvagayatri opened 7 years ago

sarvagayatri commented 7 years ago

Hi, I am writing plugin for paytm gateway and i am getting the following errors, so can you please tell me whats the error or how to debug that error or where it occurred ?

W/System.err( 2637): at com.tns.Runtime.callJSMethodNative(Native Method) W/System.err( 2637): at com.tns.Runtime.dispatchCallJSMethodNative(Runtime.ja va:1197) W/System.err( 2637): at com.tns.Runtime.callJSMethodImpl(Runtime.java:1061) W/System.err( 2637): at com.tns.Runtime.callJSMethod(Runtime.java:1047) W/System.err( 2637): at com.tns.Runtime.callJSMethod(Runtime.java:1028) W/System.err( 2637): at com.tns.Runtime.callJSMethod(Runtime.java:1018)

and my code is ::

 `var app = require("application");
var newPayment = function (arg) {
    var service = com.paytm.pgsdk.PaytmPGService.getStagingService();
    var merchant = arg.merchant;
    var customer = arg.customer;
    var checksumUrls = arg.checksumUrls;

    var paramObject = {};
    // paramMap["REQUEST_TYPE"] = "DEFAULT";
    paramObject["MID"] = merchant.id; 
    paramObject["CHANNEL_ID"] = merchant.channelId; // "WAP";
    paramObject["INDUSTRY_TYPE_ID"] = merchant.industryTypeId; // "Retail";
    paramObject["WEBSITE"] = merchant.website; //"WEB_STAGING";
    paramObject["THEME"] = "merchant";

    paramObject["CUST_ID"] = customer.id;
    paramObject["EMAIL"] = customer.email;
    paramObject["MOBILE_NO"] = customer.mobileNumber;
    paramObject["ORDER_ID"] = customer.orderId;
    paramObject["TXN_AMOUNT"] = customer.txnAmount;

    var paramMap = toHashMap(paramObject);
    console.log("parammap:::", paramMap);

    var order = new com.paytm.pgsdk.PaytmOrder(paramMap);
     var merchant = new com.paytm.pgsdk.PaytmMerchant(checksumUrls.generation, checksumUrls.verification);
    console.log("Merchant:::", merchant);
    var  activity = app.android.foregroundActivity || app.android.startActivity;
    service.initialize(order, merchant, null);
    console.log("Service intialised");

    //Start the Payment Transaction. Before starting the transaction ensure that initialize method is called.
    service.startPaymentTransaction(
       app.android.foregroundActivity || app.android.startActivity, true, true,
        new com.paytm.pgsdk.PaytmPaymentTransactionCallback({
            onTransactionSuccess: function (paramBundle) {
                android.widget.Toast.makeText(app.android.context, "Transaction Successful", android.widget.Toast.LENGTH_SHORT).show();
            },
            onTransactionFailure: function (paramString, paramBundle) {
                android.widget.Toast.makeText(app.android.context, "Transaction Failure", android.widget.Toast.LENGTH_SHORT).show();
            },

            networkNotAvailable: function () {
                android.widget.Toast.makeText(app.android.context, "Check Network connection", android.widget.Toast.LENGTH_SHORT).show();
            },
            clientAuthenticationFailed: function (paramString) {
                android.widget.Toast.makeText(app.android.context, "Client Authentication Failed", android.widget.Toast.LENGTH_SHORT).show();
            },
            someUIErrorOccurred: function (paramString) {
                android.widget.Toast.makeText(app.android.context, "UI Error Occur", android.widget.Toast.LENGTH_SHORT).show();
            },
            onErrorLoadingWebPage: function (paramInt, paramString1, paramString2) {
                android.widget.Toast.makeText(app.android.context, "Error On Loading", android.widget.Toast.LENGTH_SHORT).show();
            },

            onBackPressedCancelTransaction: function () {
                android.widget.Toast.makeText(app.android.context, "Back Button pressed by user", android.widget.Toast.LENGTH_SHORT).show();
            }
        }));
}
var toHashMap = function (obj) {
    var node = new java.util.HashMap();
    for (var property in obj) {
        if (obj.hasOwnProperty(property)) {
            if (obj[property] !== null) {
                node.put(property, String(obj[property]));
            }
        }
    }
    return node;
};
exports.newPayment = newPayment;`

reference url for what i wrote the nativescript wrapper is :: http://paywithpaytm.com/developer/paytm_sdk_doc/?target=example