Project

General

Profile

Programming Guide » History » Revision 8

Revision 7 (chin-yeh, 09/21/2011 02:35 PM) → Revision 8/21 (chin-yeh, 09/21/2011 02:38 PM)

{{toc}} 

 h1. Programming Guide 

 Describes how to integrate the mPay into online mall. 

 *Demo application:* 
 * Generate Redirect URL (for hosted payment form) 
 > http://192.168.2.68/ecosway/mpay-sample/payment_form.html 
 * Query Payment Status: 
 > http://192.168.2.68/ecosway/mpay-sample/query.html 

 h2. Source files 

 > Get the source files from [[wiki#SCM|SCM]]. 

 *Files:* 
 * 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 

 *Demo application:* 
 * source file of demo application (JSP): 
 ** > can be found in mpay-sample folder (web content) 

 h2. Generate Redirect URL 

 Generates the URL which will be used to redirect user to the mPay's hosted payment form. 

 Demo application: 
 > [[Programming Guide]] 

 h3. 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_ 

 h3. Output Parameters 

 Use the returned key-pair values to construct the *HTML form*.  

 Due to the limit of the maximum 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 

 h3. Code Snippets 

 <pre> 
 <code class="JAVA"> 
 <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> 
 </code> 
 </pre> 


 h2. Query Payment Status 

 h3. Input Parameters 

 h3. Output Parameters 

 h3. Code Snippets 

 <pre> 
 <code class="JAVA"> 

 </code> 
 </pre>