Plugins List

WooCommerce WordPress EZYWAY – Mobiversa Payment Gateway Plugin Installation guide.

EZYWAY by Mobiversa
Accept online payments and grow customer base.
Take your business to the NEXT LEVEL with EZYWAY!
Mobiversa is PCI level 1 certified that ensures the highest security standards in the payment industry. This ensures zero compromise on safety leading to an optimal customer experience. Moreover, EZYWAY by Mobiversa offers 2 days settlements, which is the fastest in town. Choose EZYWAY by Mobiversa and stay on top of the game.

Step -1
Install/Download WooCommerce EZYWAY – Mobiversa payment plugin:
Step – 2
Go to wordpress plugin setting for EZYWAY.
Use sandbox for testing and UAT.
Use below credential only for testing. For live/production credentials will send by email
mobiApiKey: Click here for login to get the ApiKey
loginId: Click here for login to get LoginID
Gateway API URL: Click here for login to get API URL
Step – 3
Please create 3 custom template pages in wordpress for woocommerce.
1. Call back page
Get the response from bank
==> Need to create new custom template page in Wordpress then give page URL here. Please add below short code in newly created page.

<?php
/* Template Name: Mobiversa Callback */
echo do_shortcode('[MobiversaCallback]');
?>

2. Thank you page
This order detail page after payment success
==> Need to create new custom template page in Wordpress then give page URL here. Please add below short code in newly created page.

<?php
/* Template Name: Mobiversa Thankyou */
echo do_shortcode('[MobiversaAPI]');
?>

3. Payment-failure page
This page is required for payment failure
==> Need to create new custom template page in Wordpress then give page URL here. Please add below short code in newly created page.

<?php
/* Template Name: Mobiversa Failure */
get_header();
echo do_shortcode('[MobiversaFailure]');
get_footer();
?>

Once All UAT/ SIT / Testing done. Please confirm with our team.
We will share the live/production URL, login ID & APIKEY.
NOTE:
Below Sample URL for testing
Do Sample testing for full flow.

Wordpress - Installation and configuration

Installation Steps
- Go to wp-admin
- Plugins -> Add Plugin -> Upload Plugin 'ezyway-mobiversa' -> Install Now -> Activate Plugin
--- Or unzip ezyway-mobiversa.zip file and paste on 'wp-content/plugins' go to Wp-admin -> Plugins -> Installed Plugins -> 'Ezyway Mobiversa' click Activate.
Configuration
- Wp-admin -> Settings -> Ezyway Mobiversa
- Choose Payment Mode
eg: Sandbox/Live

- Add Mobiversa API Key
Click here for login to get the ApiKey

- Add Merchant Login ID
Click here for login to get LoginID

1. Add this [ezyway_mobiversa]-Shortcode in any page or post
2. For PHP templates copy the following anyone and paste it
- <?php echo do_shortcode('[ezyway_mobiversa]'); ?>
- <?php ezyway_mobiversa_shortcode(); ?>
Click on Save Changes button

Prestashop 1.7 - Download and Installation steps

Mobiversa is one of the fastest growing fintech companies in Malaysia. EZYWAY by Mobiversa now also offers a plugin for Prestashop. We comply with the highest security standards with a PCI DSS level 1 certification.
Now you can track your sales and grow your business online with EZYWAY by Mobiversa.

Installation Steps
- Go to Prestashop admin panel
- Improve -> Modules -> Modules & Services
- Selection -> Upload a module 'After loadking it will automatically install
--- Or unzip module and paste on 'prestashop/module' then install it by admin
Configuration
- Choose Payment Mode
eg: Sandbox/Live

- Add Mobiversa API Key
Click here for login to get the ApiKey

- Add Merchant Login ID
Click here for login to get LoginID

Click on Save button

OpenCart 3.0 - Download and Installation steps

Installation Steps
- Go to opencart admin panel
- Extensions -> Installer -> Upload
- After uploaded -> Extensions -> Extensions -> Filter 'Choose Payments' -> Install 'Ezyway Mobiversa'
Configuration
- Click Edit
- Choose Payment Mode
eg: Sandbox/Live

- Add Mobiversa API Key
Click here for login to get the ApiKey

- Add Merchant Login ID
Click here for login to get LoginID
- Status Enable
Click on Save button
If you face any issue on installation then you can install by manually.

PHP Core - Integration

Download

Click here to download PHP Core source code

Params required

Params Type Description
firstName string First Name eg: Aaila
lastName string Last Name eg: Kaira
postalCode string Billing Postal Code eg: 50460
shippingState string Shipping State eg: negeri
cardnum int Card Number eg: 4918914107195005
ccv int Security Pin eg: 123
exp_mm int Expiry Month eg: 07
exp_yy int Expiry Year eg: 2019
emailid string Email address
amount int Total amount of the checkout
ordrid int Order ID


Configuration
Add your Sandbox/Live credentials in following params
$_SESSION['apiKey'] = 'Click here for login to get the ApiKey ';
$_SESSION['loginID'] = 'Click here for login to get the LoginID';
$_SESSION['paymentMode'] = 'Click here for login to get API URL';

iOS - Integration

Contents

  1. Introduction ...................................................................................................................................................... 2
  2. Feature / API’s available .................................................................................................................................... 2
  3. EZYWAY SDK ...................................................................................................................................................... 2
  4. Integration ........................................................................................................................................................ 3
  5. SDKSetUp .......................................................................................................................................................... 4
  6. Sale Request ..................................................................................................................................................... 5
  7. Sale Response ................................................................................................................................................... 5
Download
Click here to download iOS sdk
1. Introduction
This document is intended to explain the Infrastructure Detailed Design for the features available in the EZYWAY SDK (Library) and the implementation / integration guide for iOS application. It gives explanation of infrastructure and related components in the Functional to the extent that the infrastructure design is sufficiently complete to be implemented.
2. Feature / API’s available
Following are the features available in EZYWAY SDK:
  • Sale Using 3d Secure pin from a web link.
3. EZYWAY SDK
Please include the EZYWAY SDK as framework in your iOS application.
  • EZYWAY.framework
4. Integration
  1. Drag and drop EZYWAY framework into iOS project. Select destination copy if needed.
  2. Project -> Settings -> Genetral -> Remove framework from linked framework -> Add in Embedded Binaries (Will Auto add to linked framework).
5. SDK SETUP
When the 3d secure function is completed in SDK side the result will be given to the main app (you can get result in JSON response).
Require:
  1. XCODE
  2. Deployment Target version 9.0
  3. Required testing in Real device
6. Sale Request
Pre-requisite
  • Strings MobileNo, Email, Amount(Accepts only 2 decimals), OrderID,Apikey,UserId,Carddetails,URL, latitude, longitude are the mandatory fields in JSONRequest.
    Method to Initialize EZYWAY:
    -(void)IniliazeEZYWAYPaymentDetailswithIdentity :(NSString *)passportNo andContanctName :(NSString *)contactName andMobileNumber :(NSString *)mobileNum andCountry:(NSString *)country andCity :(NSString *)city andStreet :(NSString *)street andPostalCode :(NSString *)postalCode andAmount :(NSString *)TotalAmount andIPAddress :(NSString *)ip andLatitude :(NSString *)lat andLongitude :(NSString *)log andExpectedDate :(NSString *)expectedDate andOrderId :(NSString *)orderID andNameOnCard :(NSString *)Name andInVOice :(NSString *)invoice andState :(NSString *)state andCardDetails :(NSString *)cardNumber andCvv :(NSString *)cvv andCardExpYYMM :(NSString *)expiryDate andEmailId :(NSString *)email andUserName :(NSString *)userID andapiKey :(NSString *)APIKEY andOrderDescription :(NSString *)Description andURL :(NSString *)Url and3dSecureView :(CGRect)framewithCompletionHandler:(completionHandler)responceData;
    Note : For testing send URL parameter As SandBox_URL and For Live_URL
  • While calling sale_req function mobiApiKey, loginId, cardNumber, cvvNumber, expiryMonth, expirYear is mandatory.
  • You need to form a JSONObject request.
  • Refer sample APP(EZYWAYSAM) for sending request.
After forming the request, before calling sale_req add other Mandatory fields mobiApiKey, loginId, cardNumber, cvvNumber, expiryMonth, expirYear all the fields in “string” format.
Now, everything is done before calling sale_req check the following parameters are validated correctly to avoid payment errors.
Validation before sending to the sale_req function as follows:
  • The cardNumber as in the credit / debit card.
  • cvvNumber as in the card.
  • expiryMonth should be 2 digit, For
    e.g.
    “09” (Accepted) ✔
    “Sep” (not Accepted) ✘
    “September” (not Accepted) ✘
  • expirYear should be last 2 digit of the year. For e.g.
    If the year is 2023:
    “23”(Accepted) ✔
    “2023” (Not Accepted) ✘
Here the “requestJON” is the string which is formed.
mobiApiKey and loginId will be provided by Mobiversa while providing the SDK. And card details as shown (check the sample app).
7. Sale Response The final response of the Sale request will be given to your app using resposeDate
Responce from server if it is Success:- ------------------------------------------
{
responseCode = 0000;
responseData =
{
amount = "99.99";
approveCode = 000068;
batchNo = 2;
cardHolderName = BORRA;
cardNo = "XXXX 5005";
date = "16-Oct-2018";
invoiceId = SomeThing;
latitude = "4.2105";
longitude = "101.9758";
mid = 000006003000823;
orderDesc = "Im Here with EZYWAY";
orderId = 123456789;
rrn = 000000000068;
tc = 77000001001460;
tid = 77000001;
time = "11:39";
tips = "0.00";
trace = 001460;
trxId = 181016101125770000012000000001460;
txnType = "EZYWAY SALE";
};
responseDescription = "EZYWAY Sale Done";
responseMessage = SUCCESSFUL;
}
Responce from server if it is failed:- -------------------------------------
responseCode = 0001;
responseData = { };
responseDescription = "xxxxxx";
responseMessage = FAILURE;
}

Android - Integration

Contents

  1. Introduction ...................................................................................................................................................... 2
  2. Feature / API’s available .................................................................................................................................... 2
  3. EZYWAY SDK ...................................................................................................................................................... 2
  4. Gradle Build Dependencies ............................................................................................................................... 3
  5. Manifest Permissions ........................................................................................................................................ 4
  6. Sale Request ...................................................................................................................................................... 5
  7. Sale Response .................................................................................................................................................... 5
Download
Click here to download Android sdk
1. Introduction
This document is intended to explain the Infrastructure Detailed Design for the features available in the EZYWAY SDK (Library) and the implementation / integration guide for Android application. It gives explanation of infrastructure and related components in the Functional to the extent that the infrastructure design is sufficiently complete to be implemented.
2. Feature / API’s available
Following are the features available in EZYWAY SDK:
  • Sale Using 3d Secure pin from a web link.
3. EZYWAY SDK
Please include the EZYWAY SDK as library in your android application, the library will be in (.aar) format.
  • ezyway_sdk_v1.0.aar
4. Gradle Build Dependencies
Volley been used for all the internet usages / service calls. AppCompat been used for Alert dialog.
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
implementation 'me.neavo:volley:2014.12.09' implementation project(':ezyway_sdk_v1.0')
5. Manifest Permissions
<uses-permission android:name="android.permission.INTERNET"/>
When the 3d secure function is completed in SDK side the result will be given to the main app (you can get result in any activity of your application).
For example:
If you want to get the transaction result you need to call the following intent-filter action in android manifest:
<intent-filter>
<action android:name="com.mobiversa.ezyway" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
In the given sample app it will be as follows:

<activity android:name=".MainActivity">
<intent-filter>
<action android:name="com.mobiversa.ezyway" />
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.MAIN" />

<!—-the above line is not needed if it is not the MainActivity-->
<category android:name="android.intent.category.LAUNCHER" />

<!—the above line is not needed if it is not the MainActivity-->
</intent-filter>
</activity>
So, based on your requirement you can call the intent-filter for any activity just call the action and category as the above example.
6. Sale Request
Pre-requisite
  • Strings mobileNo, email, amount, invoiceId, orderDesc, latitude, longitude are the mandatory fields in JSONRequest.
  • While calling sale_req function mobiApiKey, loginId, cardNumber, cvvNumber, expiryMonth, expirYear is mandatory.
  • You need to form a JSONObject request as follows:
Sample Request code snippet: (code as in Sample app)

JSONObject requestJSON = null;
try
{
requestJSON = new JSONObject();
requestJSON.put("passportNo", edit_passport.getText().toString());
requestJSON.put("country", edit_country.getText().toString());
String amount = edit_amount.getText().toString();
//AMOUNT SHOULD BE CONVERTED AS BELOW
String amount_to_send = String.format("%012d", Integer.parseInt(amount.replace(".", "")));
requestJSON.put("amount", amount_to_send);
requestJSON.put("city", edit_city.getText().toString());
requestJSON.put("contactName", edit_contactName.getText().toString());
requestJSON.put("postalCode", edit_postalCode.getText().toString());
requestJSON.put("ip", edit_ip.getText().toString());
requestJSON.put("latitude", edit_latitude.getText().toString());
requestJSON.put("longitude", edit_longitude.getText().toString());
requestJSON.put("mobileNo", edit_mobileNo.getText().toString());
requestJSON.put("expectedDate", edit_expectedDate.getText().toString());
requestJSON.put("orderId", edit_orderId.getText().toString());
requestJSON.put("nameOnCard", edit_nameOnCard.getText().toString());
requestJSON.put("street", edit_street.getText().toString());
requestJSON.put("invoiceId", edit_invoiceId.getText().toString());
requestJSON.put("email", edit_email.getText().toString());
requestJSON.put("state", edit_state.getText().toString());
requestJSON.put("orderDesc", edit_orderDesc.getText().toString());
}
catch (JSONException e) {
e.printStackTrace();
}
// Note: mobileNo, email, amount, invoiceId, orderDesc, latitude, longitude is MANDATORY.
// While forming the request the String should be as same as in the above code.
//For eg. The amount field should be “amount” not “AMOUNT” or “_Amount” or any other format.
After forming the request, before calling sale_req add other Mandatory fields mobiApiKey, loginId, cardNumber, cvvNumber, expiryMonth, expirYear all the fields in “string” format.
Now, everything is done before calling sale_req check the following parameters are validated correctly to avoid payment errors.
Validation before sending to the sale_req function as follows:
  • The cardNumber as in the credit / debit card.
  • cvvNumber as in the card.
  • expiryMonth should be 2 digit,
    For e.g.
    “09” (Accepted) ✔
    “Sep” (not Accepted) ✘
    “September” (not Accepted) ✘
  • expirYear should be last 2 digit of the year.
    For e.g.
    If the year is 2023:
    “23”(Accepted) ✔
    “2023” (Not Accepted)
The final Request code snippet as follows:
SaleRequestService loginService1 = new SaleRequestService(MainActivity.this); loginService1.sale_req(requestJSON, mobiApiKey, loginId, CardNumber, CVVNumber, ExpiryMonth, ExpiryYear);
  • Here the “requestJON” is the string which is formed.
  • mobiApiKey and loginId will be provided by Mobiversa while providing the SDK.
  • And card details as shown above (check the sample app).
7. Sale Response
The final response of the Sale request will be given to your app using the intent-filter, please ensure that the intent-filter is placed in correct activity that you want to display the response.
The following codes are mandatory to receive the sale response back to the application:
In Android Manifest:
<intent-filter>
<action android:name="com.mobiversa.ezyway" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
Also ensure that the same activity has the below code to fetch the response String from the sdk, which will be used for future reference if you save it in your own Database.
In Activity:
String response_from_sdk; Intent intent = getIntent(); Bundle bundle = intent.getExtras();
if(bundle != null) { response_from_sdk = bundle.getString("response");
Log.e("--ResponseinMainApp--", response_from_sdk);
/*Save and Parse this response anywhere you want*/ Toast.makeText(getApplicationContext(), response_from_sdk, Toast.LENGTH_LONG).show(); }

Sample Response:
{
"responseCode": "0000",
"responseMessage": "SUCCESSFUL",
"responseDescription": "EZYWAY Sale Done",
"responseData": {
"trxId": "1809270915428770000012000000001105",
"amount": "1.00",
"tid": "77000001",
"mid": "000006003000823",
"tips": "0.00",
"rrn": "000000000093",
"trace": "001105",
"date": "27-Sep-2018",
"time": "15:16",
"approveCode": "000093",
"cardNo": "XXXX 0007",
"tc": "77000001001105",
"batchNo": "2",
"cardHolderName": "Mobiversa",
"latitude": "3.1414518",
"longitude": "101.6578041",
"txnType": "EZYWAY SALE",
"invoiceId": "0101010",
"orderId": "0192822828",
"orderDesc": "Android Description"
}
}
For More Information please refer the sample app.

HTML - Integration

Request

The API Request will be given from the Merchant website. The merchant website can be any Ecommerce website which needs to be registered with Mobiversa.
On successful registration with Mobiversa, the merchant will be provided with a few API parameters. They include MID, TID, Username and Password. The Parameters are kept in a database table for your convenience and ease of modification.
The request should be made from a Shopping Cart page as shown below:
Request Sandbox URL
https://demo.mobiversa.com/moApi/
Parameters
Parameter Description Required
1 Amount Amount to be paid through API.
2 contactName Name of the customer who perform the transaction.
3 phoneNo Phone number of the customer who perform the transaction.
4 expectedDate Expected Date.
5 reference Reference for Merchant from the customer.
6 city City of the customer who perform the transaction.
7 email E-Mail of the customer who perform the transaction.
8 postalCode Postal Code of the customer who perform the transaction.
9 state State of the customer who perform the transaction.
10 street Street of the customer who perform the transaction.
11 countryName Country of the customer who perform the transaction.
12 mid MID of the merchant.
13 tid TID of the merchant.
14 userName Username of the merchant.
15 password Password of the merchant.
16 apiToken Token received from the Payment server while performing a transaction
Notes: To be stored and sent for making the next transaction First Time this can be empty, but username & password is mandatory.

Not needed for first Request
17 responseUrl Response URL to which page to be redirected with.
18 orderNo The id of Order which is the merchant going to do payment for product
19 orderDesc The description about the order.
Instructions to Post the data to the Api
Amount
Fields Mandatory Format
amount
contactName

5,000.00
String
phoneNo +60 1234567890
expectedDate
reference

 
15-Jul-2018
String
city String
email String
postalCode String
state String
street
apiToken
 
√ (Scenario Based)
String
DB Data(String)
orderNo Maximum length 20 (AlphaNumeric) – Should be Unique
orderDesc String
responseUrl String
countryName String
mid DB Data(String)
tid DB Data(String)
userName √ (Scenario Based) DB Data(String)
password √ (Scenario Based) DB Data(String)
For ASP.Net (Function in C#)
protected void redirectToPayment()
{
NameValueCollection data = new NameValueCollection();
data.Add("amount", coPost.amount);
data.Add("contactName", coPost.contactName);
data.Add("phoneNo", coPost.phoneNo);
data.Add("expectedDate", coPost.expectedDate);
data.Add("reference", coPost.reference);
data.Add("city", coPost.city);
data.Add("passportNo", coPost.passportNo);
data.Add("email", coPost.email);
data.Add("postalCode", coPost.postalCode);
data.Add("state", coPost.state);
data.Add("street", coPost.street);
data.Add("countryName", coPost.countryName);
data.Add("mid", coPost.MID);
data.Add("tid", coPost.TID);
`
data.Add("userName", coPost.userName);
data.Add("password", coPost.password);
data.Add("apiToken", token);
data.Add("responseUrl", coPost.responseUrl);
HttpHelper.RedirectAndPOST(this.Page, "https://demo.mobiversa.com/moApi/", data);
}
For HTML

<form method="post" action="https://demo. mobiversa.com/moApi/" name="form1">
<input type="text" name="amount"></input>
<input type="text" name="contactName"></input>
<input type="text" name="phoneNo"></input>
<input type="text" name="expectedDate"></input>
<input type="text" name="reference"></input>
<input type="text" name="city"></input>
<input type="text" name="passportNo"></input>
<input type="text" name="email"></input>
<input type="text" name="postalCode"></input>
<input type="text" name="state"></input>
<input type="text" name="street"></input>
<input type="text" name="countryName"></input>
<input type="text" name="mid"></input>
<input type="text" name="tid"></input>
<input type="text" name="userName"></input>
<input type="text" name="password"></input>
<input type="text" name="apiToken"></input>
<input type="text" name="responseUrl" value=” https://demo.mobiversa.com/TestingUI/Response.jsp” ><!--Response back URL Your site --></input>
<input type="submit" value="Submit"></input>
</form>
Processing
The posted HTML form will be authenticated in the API. The following can cause failure.
1. Invalid MID
2. Invalid TID
3. Invalid Username
4. Invalid Password
5. Payment cancel by customer
Sample Data parameters
The Descriptions about Success and Failure Scenarios
Test Cases Request Response
Successful Payment {"amount": "4500", "contactName": "Abcdef",phoneNo": "+60 xxxxxxxx","expectedDate": "15-Jul2018","reference": "Mobile Purchase","city": "KL","email": "abc@abc.com",” orderDesc”:”Mobile Purchase” ,”orderNo”:” 738579347454522”,"postalCode": "50740",state": "Kuala Lumpur","street": "Damansara Heights", "countryName": "Malaysia","MID": " 000555500001115","TID": "xxxxxxxxx", "userName": " abc@abc.com","password": "12345678" } {"responseCode": "0000", "responseMessage": "SUCCESSFUL", "responseDescription": "Sale Done", "amount": "4,500.00", tid":"55006602", "mid": "000555500001115","rrn": "000000000003","trace": "000229","date": "05-Jul2018","time": "13:50","approveCode": "000003", "cardNo": "XXXX 1080","tc": "55006602000229", "cardHolderName": "test","latitude": "3.1520243","longitude": "101.6663907","invoiceId": "Test","OrderId": "1234567890", "orderDesc": "Mobile Purchase", “token”:”550066021530769818086” }
Invalid UserName {"amount": "4500", "contactName": "abcdefgh",phoneNo": "+60 xxxxxxxxxx","expectedDate": "15-Jul2018","reference": "Test","city": "KL","email": "abc@abc.com", ”orderNo”:” 738579347454522”, ” orderDesc”:”Mobile Purchase” , "postalCode": "50740",state": "Kuala Lumpur","street": "Damansara Heights", "countryName": "Malaysia","MID": " 000555500001115", "TID": "55006602", "userName": " abc1@abc.com","password": "12345678 } { "responseCode": "0001", "responseMessage": "FAILURE","responseDescription": "Invalid UserName " }
Invalid Password { "amount": "4500", "contactName": "abcdefg",phoneNo": "+60 xxxxxxxx","expectedDate": "15-Jul2018","reference": "Test","city": "KL","email": "abc@abc.com", ”orderNo”:” 738579347454522”, ” orderDesc”:”Mobile Purchase” ,"postalCode": "50740",state": "Kuala Lumpur","street": "Damansara Heights", "countryName": "Malaysia","MID": " 000555500001115", "TID": "55006602", "userName": " abc@abc.com","password": "12345678"} { "responseCode": "0001", "responseMessage": "FAILURE", "responseDescription": "Invalid Password" }
Invalid MID { "amount": "4500", "contactName": "abcdefg",phoneNo": "+60 xxxxxxxxx","expectedDate": "15-Jul2018","reference": "Test","city": "KL", "email": "abc@abc.com", ”orderNo”:” 738579347454522”, ” orderDesc”:”Mobile Purchase” ,"postalCode": "50740",state": "Kuala Lumpur","street": "", "countryName": "Malaysia","MID": " 0000032434000009", "TID": "55006602", "userName": " abc@gmail.com","password": "12345786" } { "responseCode": "0001", "responseMessage": "FAILURE", "responseDescription": "Invalid MID" }
Invalid TID { "amount": "4500", "contactName": "abc",phoneNo": "+60 xxxxxxxxxx","expectedDate": "15-Jul2018","reference": "Test","city": "KL", "email": "abc@abc.com",”orderNo”:” 738579347454522”, ” orderDesc”:”Mobile Purchase” ,"postalCode": "50740",state":"Kuala Lumpur","street": "Damansara Heights", "countryName": "Malaysia","MID": " 000555500001115", "TID": "12346601", "userName": " abc@abc.com","password": "1234567890" } { "responseCode": "0001", "responseMessage": "FAILURE”, “responseDescription": "Invalid TID" }
Payment Cancelled by the Customer { "amount": "4500", "contactName": "abcdefgh",phoneNo": "+60 xxxxxxxxxx","expectedDate": "15-Jul2018","reference": "Test","city": "KL", "email": "abc@abc.com",”orderNo”:” 738579347454522”, ” orderDesc”:”Mobile Purchase” ,"postalCode": "50740",state": "Kuala Lumpur","street": "Damansara Heights", "countryName": "Malaysia","MID": "000594500001115", "TID": "55006602", "userName": " abc@abc.com","password": "1234567"} { "responseCode": "0001", "responseMessage": "FAILURE", "responseDescription": "Payment Cancelled by the Customer" }
If the HTML Page parameters are authenticated and verified successfully, then the Payment initialization screen will be displayed as below.
Note: For First time Username & Password mandatory for the transaction.
Next continues transactions use apiToken is mandatory.
It has two sections. Payment Details & Card Details.
The Payment Details such as Merchant Name, Reference, amount and estimated date of delivery are pre-filled from the Merchant’s website.
The Card details needs to be entered by the customer and agree to the Terms & conditions and then click Accept to proceed for the card payment.
The secret code will be entered in the 3D secure payment page by customer and complete the payment. Once the payment is completed 3D secure will redirect to authentication Page and will post the response data back to the Merchant.
Response
The response will be sent back from API to the merchant’s ‘responseUrl’ page. So, the responseUrl page should be given precisely to get the response back from API.
Request URL
In my case, the response Url is
Parameters
Parameter Description Hide/Show
1 responseCode Response code from API.
'0000- Success
'0001- Failure
Hide
2 responseMessage Response Message from API which can be shown to the customer Show
3 responseDescription Response description for the transaction done from API Optional
4 responseData Response Data which contains all the transaction details.
5 Amount Amount of transaction Show
6 Tid TID of the merchant Hide
7 Mid MID of the merchant Hide
8 Token Token to be used for next transaction from the merchant to API. (must be hidden) Hide
9 Rrn RRN Optional
10 Trace TRACE Optional
11 Date Date of transaction Show
12 Time Date of transaction Show
13 approveCode Bank Approval code Optional
14 cardNo Last four digits of Card used for the transaction (must be hidden) Show
15 tc TC Hide
16 cardHolderName Card holder name Show
17 Latitude Latitude of transaction Optional
18 Longitude Longitude of transaction Optional
19 invoiceId Invoice ID Show