Actions
Programming Guide » History » Revision 12
« Previous |
Revision 12/21
(diff)
| Next »
chin-yeh, 09/21/2011 03:13 PM
- Table of contents
- Programming Guide
Programming Guide¶
Describes how to integrate the mPay into online mall.
Steps-by-steps:- First, refer to the Generate Redirect URL section on how to generate the redirect URL
- And then, include the method, Capture Payment Status in the return/receipt page to capture & persist the payment status
- Finally, query the MPAY_INTERFACE table to get the payment status.
- Generate Redirect URL (for hosted payment form)
- Query Payment Status:
Source files¶
Files:Get the source files from SCM.
- my.com.eCosway.mpay
- Commons - list of common constant
- MpayInterfaceUtils - an utility to perform data persistence related operation
- MpayPaymentUtils - the mPay APIs
- MpayProperties - data model of the mPay properties
- PaymentRequest - data model of the mPay's payment request
- PaymentResponse - data model of the mPay's payment response
- resources.properties.mpay
- mpay.properties - the application properties file
- source file of demo application (JSP):
- mpay-sample folder
Generate Redirect URL¶
Generates the URL which will be used to redirect user to the mPay's hosted payment form.
- Method Signature:
public static Map<String, String> genRedirectFormData(String orderNo, Date txnDate, String amount, String returnUrl, String locale, PaymentMethod paymentMethod)
- Demo:
Input Parameters¶
- orderNo - the unique order number
- txtDate - the transaction date
- amount - the transaction amount
- returnUrl - mPay will redirect the user to this URL after made the payment
- locale - the display language of the payment form
- paymentMethod - the payment method, e.g. CUP, Alipay
Output Parameters¶
Use the returned key-pair values to construct the HTML form.
Due to the limit of the length of a URL, the recommended HTTP method is POST. This is because extremely long URL will not work in most popular browsers and most importantly the length of the query string is unknown.
Returned key-pair values:- form_action - the URL of the hosted payment form. To be placed in the action attribute of the form
- encmsg - the encrypted message. To be placed in the input element
- sigmsg - the signed message. To be placed in the input element
- certserial - the serial number of the certificate. To be placed in the input element
Code Snippets¶
<body> <% String orderNo = request.getParameter("order_no"); String txnDate = request.getParameter("txn_date"); String amount = request.getParameter("amount"); String returnUrl = request.getParameter("return_url"); String locale = request.getParameter("locale"); String paymentMethod = request.getParameter("payment_method"); Date transactionDate = new SimpleDateFormat("yyyyMMddHHmmss").parse(txnDate); PaymentMethod cardType = PaymentMethod.valueOf(paymentMethod); Map<String, String> formData = MpayPaymentUtils.genRedirectFormData( orderNo, transactionDate, amount, returnUrl, locale, cardType); %> <p> Redirecting you to the mPay payment form, it may takes up to 1 minute... </p> <form name="form1" method="post" action="<%= formData.get("form_action") %>"> <input type=hidden name=encmsg value="<%=formData.get("encmsg")%>"/> <input type=hidden name=sigmsg value="<%=formData.get("sigmsg")%>"/> <input type=hidden name=certserial value="<%=formData.get("certserial")%>"/> </form> <script language="javascript"> function submitForm(){ document.form1.submit(); } window.onload=submitForm ; </script> </body>
Query Payment Status¶
Queries the payment status of the submitted transaction.
- Method Signature:
public static PaymentResponse queryPaymentStatus(String orderNo)
- Demo:
Input Parameters¶
orderNo - the order number of the submitted transaction
Output Parameters¶
The fields of the returned object, PaymentResponse:- merchantId - the merchant ID
- merchantTId - the merchant terminal ID
- orderNo - the order number
- systemDate - the system date of mPay
- refNo - the transaction ID of mPay
- amount - the settlement amount
- currencyCode - the currency of the settlement amount
- settlementDate - the settlement date
- responseCode - the response code
- authCode - the bank authorization code if any
- transactionStatus - indicate if it's success
Code Snippets¶
<% PaymentResponse paymentResponse = MpayPaymentUtils.queryPaymentStatus(request.getParameter("order_no")); %>
Updated by chin-yeh over 13 years ago · 12 revisions