razerms / mobile-xdk-razerms_android_studio Goto Github PK
View Code? Open in Web Editor NEWRazer Merchant Services mobile payment for Android (Android Studio)
Home Page: https://merchant.razer.com/v3/
Razer Merchant Services mobile payment for Android (Android Studio)
Home Page: https://merchant.razer.com/v3/
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.
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?
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"}
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!
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)
With the current input flow when user keys in their credit card data, users are distracted while inputing data.
When user selects Credit Card channel, there will be extra part of the form that will appear
Flow:
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.
Hi , when i enter the card number, the cursor is change to previous position. It is very hard to input .
Please check.
Thanks
Android 5.0.1
Instead of compile it together with Molpay sdk. It is better to separate them, so user can choose wether to include it or not. To prevent many duplicate entry in the future in gradle.
our customer report this issue that only happened in app, but work well in browser sdk
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.
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:
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.
Once payment is successful, user is presented a blank page as below.
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):
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?
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");
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"}
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?
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.