Code Monkey home page Code Monkey logo

mobile-xdk-razerms_android_studio's People

Contributors

afiqrazer avatar candyyng avatar clewlb avatar fadhilrozaidi avatar jordanngoi avatar wankimmy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mobile-xdk-razerms_android_studio's Issues

Communication Error

Hi, I am using molpay android XDK for our app's online payment gateway but sometimes it returns the error below and sometimes it success redirect to bank page. I put all the credentials correctly but the issue still exist.

{"Error":"Communication Error, please check internet connection, username, or password"}

Any help is appreciated
Thanks.

SDK 3.9.0 crashes in MOLPayActivity#onCreate

Retrieve a non-existent key from a Map is guaranteed to return null. This is what causes the crash.

paymentDetails = (HashMap<String, Object>) getIntent().getSerializableExtra(MOLPayPaymentDetails);

// For submodule wrappers
Boolean is_submodule = new Boolean(paymentDetails.get("is_submodule").toString());
String submodule_module_id = paymentDetails.get("module_id").toString();
String submodule_wrapper_version = paymentDetails.get("wrapper_version").toString();
if (is_submodule && submodule_module_id != null && submodule_wrapper_version != null) {
    ....
}

paymentDetails.get("is_submodule") will return null for sure and subsequent few lines.
Even so the if-statement does not make sense, if it was able toString() in the first place then submodule_module_id or submodule_wrapper_version will never be null

Below is a proposed fix for the bug. I have no idea what the value do yet, based on current way, the keys will always be null since users will never pass in such value.

boolean is_submodule = false;
if (paymentDetails.containsKey("is_submodule")) {
    is_submodule = Boolean.valueOf(paymentDetails.get("is_submodule").toString());
}
String submodule_module_id = null;
if (paymentDetails.containsKey("module_id")) {
    submodule_module_id = paymentDetails.get("module_id").toString();
}
String submodule_wrapper_version = null;
if (paymentDetails.containsKey("wrapper_version")) {
    submodule_wrapper_version = paymentDetails.get("wrapper_version").toString();
}
... 

Its amazing that such a critical bug can slip thru testing, since it crashes even before its able display anything.

mp_channel no value

I'm trying to make FPX as the default channel. Here are the values I passed.

paymentDetails.put(MOLPayActivity.mp_amount, mPrice); paymentDetails.put(MOLPayActivity.mp_username, getResources().getString(R.string.mp_username)); paymentDetails.put(MOLPayActivity.mp_password, getResources().getString(R.string.mp_password)); paymentDetails.put(MOLPayActivity.mp_merchant_ID, getResources().getString(R.string.mp_merchant_id)); paymentDetails.put(MOLPayActivity.mp_app_name, getResources().getString(R.string.mp_app_name)); paymentDetails.put(MOLPayActivity.mp_verification_key, getResources().getString(R.string.mp_verification_key)); paymentDetails.put(MOLPayActivity.mp_order_ID, mRequestId); paymentDetails.put(MOLPayActivity.mp_currency, UserUtil.getHouseCallCurrency(mContext)); paymentDetails.put(MOLPayActivity.mp_country, UserUtil.getHouseCountryISO2(mContext)); paymentDetails.put(MOLPayActivity.mp_channel, "FPX"); paymentDetails.put(MOLPayActivity.mp_bill_description, "Request a doctor to your doorstep"); paymentDetails.put(MOLPayActivity.mp_bill_name, "Doctor House Call"); paymentDetails.put(MOLPayActivity.mp_bill_email, UserUtil.getInstance(this).getEmail()); paymentDetails.put(MOLPayActivity.mp_bill_mobile, UserUtil.getInstance(this).getPhone()); paymentDetails.put(MOLPayActivity.mp_channel_editing, false);

The problem is payment info still ask me to select a channel. "Please select a channel" still appear inside Pay through row instead of FPX.
Actually what is the correct way to set default payment channel to FPX? I'm using the latest 3.11.0 version.

Credit Card input UX improvement

Problem Statement

With the current input flow when user keys in their credit card data, users are distracted while inputing data.

Problem

When user selects Credit Card channel, there will be extra part of the form that will appear
screen shot 2017-02-17 at 10 33 38 pm

Flow:

  1. Put down phone and take out credit card from wallet
  2. Pick up the phone and fills up card number
  3. Next is the CVV row, user have to reach to their card and flip it to the back to view the CVV
  4. Continue input CVV
  5. Next is the Exp Date, which is in front of the card, user have to reach for their card and flip it again
  6. Continue input Exp Date

Proposal

I propose a minor order change in the input of Credit Card channel with the goal of improving UX.
Just by a simple row swap, users have much better experience filling up the form, where they only need to flip the card ONCE.

where to find the mp_username and mp_password

Hi,

We are using the android molpay SDK in our app, while opening the payment gateway it throws the following error

MPMainUIWebClient jsonResult = {"Error":"Communication Error, please check internet connection, username, or password"}

We don't know where to find the mp_username and mp_password, can you tell us the exact way from where to we find out this one

The code we are using the following lines

// Mandatory String. Values obtained from MOLPay.
paymentDetails.put(MOLPayActivity.mp_username, "username");
paymentDetails.put(MOLPayActivity.mp_password, "password");

Kindly solve this problem as soon as possible.

Thanks!

NullPointerException

I received this from our app crash analytic. Can anyone give advice on how to avoid this in the future? This happened to our client on Samsung Galaxy Note 3 with OS Version 5.0.

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.webkit.WebView.loadUrl(java.lang.String)' on a null object reference at com.molpay.molpayxdk.MOLPayActivity$MPMainUIWebClient.shouldOverrideUrlLoading(SourceFile:282) at com.android.webview.chromium.WebViewContentsClientAdapter.shouldOverrideUrlLoading(WebViewContentsClientAdapter.java:356) at org.chromium.android_webview.AwContentsClient.shouldIgnoreNavigation(AwContentsClient.java:168) at org.chromium.android_webview.AwContentsClientBridge.shouldOverrideUrlLoading(AwContentsClientBridge.java:257) at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(SystemMessageHandler.java) at org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:41) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:145) at android.app.ActivityThread.main(ActivityThread.java:5938) at java.lang.reflect.Method.invoke(Method.java) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1389) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1184)

How to handle event user cancel?

The only way to close the MolPay activity is to tap the "Close" button on top right corner of the screen
RESULT_OK is always returns in onActivityResult
How can we differentiate between user complete the payment process and cancel halfway?

Error mp_amount value not found

That's what I see when I first started the sample app.

Do you have a sandbox environment and/ or test credentials that I can use?

paymentDetails.put(MOLPayActivity.mp_amount, "100.00");
        paymentDetails.put(MOLPayActivity.mp_username, "???");
        paymentDetails.put(MOLPayActivity.mp_password, "???");
        paymentDetails.put(MOLPayActivity.mp_merchant_ID, "???");
        paymentDetails.put(MOLPayActivity.mp_app_name, "???");
        paymentDetails.put(MOLPayActivity.mp_verification_key, "???");

        paymentDetails.put(MOLPayActivity.mp_order_ID, "???");
        paymentDetails.put(MOLPayActivity.mp_currency, "MYR");
        paymentDetails.put(MOLPayActivity.mp_country, "MY");

device-2016-10-12-151900

Log:

10-12 03:16:07.448 6451-6451 D/MOLPAY: MPMainUIWebClient onPageFinished paymentDetails = {"mp_bill_name":"","mp_merchant_ID":"","mp_amount":"","mp_bill_mobile":"","mp_editing_enabled":false,"mp_order_ID":"","mp_verification_key":"","mp_bill_description":"","mp_app_name":"","mp_country":"MY","mp_channel":"","mp_request_type":"","mp_password":"","wrapper_version":"0","module_id":"molpay-mobile-xdk-android","mp_bill_email":"","mp_channel_editing":false,"mp_transaction_id":"","mp_username":"","mp_currency":"MYR"}
10-12 03:16:08.854 6451-6451 D/MOLPAY: MPMainUIWebClient shouldOverrideUrlLoading url = mptransactionresults://eyJFcnJvciI6Im1wX2Ftb3VudCB2YWx1ZSBub3QgZm91bmQifQ==
10-12 03:16:08.854 6451-6451 D/MOLPAY: MPMainUIWebClient mptransactionresults base64String = eyJFcnJvciI6Im1wX2Ftb3VudCB2YWx1ZSBub3QgZm91bmQifQ==
10-12 03:16:08.854 6451-6451 D/MOLPAY: MPMainUIWebClient mptransactionresults dataString = {"Error":"mp_amount value not found"}
10-12 03:16:08.854 6451-6451 D/MOLPAY: MPMainUIWebClient jsonResult = {"Error":"mp_amount value not found"}
10-12 03:16:08.856 6451-6451 I/Choreographer: Skipped 75 frames!  The application may be doing too much work on its main thread.
10-12 03:16:08.860 6451-6451 D/MOLPAY: MOLPay result = {"Error":"mp_amount value not found"}

after click on Proceed button, does not forward to bank page

Isn't it suppose to forward me to the bank login page? Currently all it return is json string like this

{"txn_ID":"7039867","paydate":1460015587,"order_id":"ss123","amount":"1.00","status_code":"11","channel":"MB2u","err_desc":"","app_code":"","chksum":"7ab215b01b5495483f2b10f5757a5c13","pInstruction":0,"msgType":"C6"}

3.16.0 not work anymore

Hi team,
Yesterday I received some complains from user that they cannot use MOL payment.

I checked and faced same issue.
It worked before.
compile 'com.molpay:molpay-mobile-xdk-android:3.16.0'

Any update from your side?

mp_verification_key = Verify Key, any secure mode as last time?

this means our only verify key will be leaked, and hacker may potentially use the vkey to fake payment data, which means after the response send back, we may compulsory do a requery, am I right?

so is the "IsSecure" mode last time still valid? or any way for us not leaking the verify key?

Tounch n Go ewallet unable to navigate back to app after payment

Hi, I am developing an app where Tounch n Go ewallet is part of payment options. During payment process, when user selects to pay with Touch n Go, user will be presented by two option:

  1. Tap to Pay
  2. Sign in to pay

Screenshot 2022-07-19 at 11 36 34 AM

Sign in to pay works fine. But for Tap to pay, it will open Touch n go ewallet which is as intended, and user allow to make payment using the application.

Screenshot 2022-07-19 at 11 50 30 AM

Once payment is successful, user is presented a blank page as below.

Screenshot 2022-07-19 at 11 40 56 AM

Expected behavior
After making payment using Tounch n Go ewallet, it should navigate back to the app, instead to browser.

Smartphone (please complete the following information):

  • Device: Samsung S22Ultra
  • OS: Android 12

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.