Specification » History » Revision 17
Revision 16 (chin-yeh, 08/12/2011 03:51 PM) → Revision 17/18 (chin-yeh, 09/20/2011 03:56 PM)
{{toc}} h1. Introduction High level view of the payment flow: !payment_flow.png! h1. Programming Guide h2. Resources h3. SCM > see [[wiki#SCM]] h3. Classes * *my.com.eCosway.migs.Commons* - Commons Constant * *my.com.eCosway.migs.MigsInterface* - Data Persistence's Interface * *my.com.eCosway.migs.MigsPaymentUtils* - Utility class * *my.com.eCosway.migs.MigsProperties* - Data model of MiGS properties * *my.com.eCosway.migs.PaymentResponse* - Data model of MiGS's payment response h3. Properties files * */resources/properties/migs-hkd.properties* - MiGS's properties file (HKD currency) ** *account.accessCode* - VPC API's access code ** *account.hashSecret* - VPC API's hash secret code ** *account.merchantId* - MIGS merchant ID ** *vpc.twoParty.url* - the posting URL for the 2-party integration model ** *vpc.threeParty.url* - the posting URL for the 3-party integration model ** *vpc.version* - the VPC version h3. Test Pages <pre> /migs-sample/migs_debug.jsp - to debug the payment response which returned by MiGS /migs-sample/migs_receipt.jsp - a very simple receipt page /migs-sample/migs_test.html - a payment test page /migs-sample/migs_test.jsp - controller for the payment test page </pre> h3. Third-Party Library * *log4j* - for logging purpose; bundled with Jboss AS h2. Tables Used * *ECOS.MIGS_INTERFACE* - This table schema is identical to *ECOS.EASYPAY_INTERFACE*. <pre> <code class="SQL"> CREATE TABLE ecos.migs_interface ( "CCORNBR" VARCHAR(15) NOT NULL , "TRX_TYPE" VARCHAR(5) , "SHRFNBR" INTEGER , "CARD_TYPE" VARCHAR(10) , "CURRENCY" VARCHAR(3) , "CHARGE_AMT" DECIMAL(15,2) , "STATUS" VARCHAR(5) , "BANK_APPRCODE" VARCHAR(8) , "MALL_IND" CHAR(1) , "DATETIME" TIMESTAMP , "ERROR_MSG" VARCHAR(155) , "UXID" VARCHAR(30) , "REVERSE_FLAG" CHAR(1) ); ) IN "USERSPACE1" ; ALTER TABLE ecos.migs_interface ADD PRIMARY KEY ("CCORNBR"); </code> </pre> h2. How To Integrate To integrate with the MiGS, one must: * *Redirect* the customer to the MiGS payment page * *Capture* the payment response which returned by MiGS, after the customer submitted the payment One could refer to the following page for demo: > http://192.168.2.68/ecosway/migs-sample/migs_test.html *To generate the redirect URL*: * *Example:* <pre> <code class="java"> String redirectUrl = MigsPaymentUtils.genRedirectUrl(MigsCurrency.HKD, locale, orderNo, amount, returnUrl); </code> </pre> ** *redirectUrl* - redirect the user/customer to this URL to make payment ** *MigsCurrency.HKD* - the currency of the payment ** *locale* - the display language of the MiGS payment page, e.g. en_US *** *English* - en, en_US *** *Simplified Chinese* - zh_CN *** *Traditional Chinese* - zh_TW ** *orderNo* - the unique order number (1-40 alphanumeric) ** *amount* - the amount of the payment in cents (1-12 numeric) ** *returnUrl* - MiGS will redirect the user to this page after made the payment (1-255 alphanumeric) *To capture the payment result:* * *Example:* <pre> <code class="java"> String orderNo = MigsPaymentUtils.persistPaymentStatus(connection, request); </code> </pre> ** *orderNo* - the order number of the payment ** *connection* - an established database connection where the payment interface table resides, e.g. MIGS_INTERFACE ** *request* - the *HTTPServletRequest* object * Refer to the *STATUS* column in the interface table to check if the payment is success ** *YES* - success ** *NO* - failed *** _refer to *ERROR_MSG* column in the interface table for more details_