PayDollar PayGate Integration Guide
Oglas
Oglas
PayDollar PayGate
Integration Guide version 3.46
(Leave Blank Intentionally)
PayDollar PayGate Integration Guide (v3.46) Page 1
Copyright Information
AsiaPay (HK) Limited
Unit 1701-2, 17/F, K. Wah Centre
191 Java Road
Hong Kong.
Telephone (852) 2538 8278
Fax: (852) 2545 3898
Web site: http://www.asiapay.com
This document and the software described by this document are copyright 2012 by AsiaPay (HK)
Limited. All rights reserved. Use of the software described herein may only be done in accordance with the License Agreement provided with the software. This document may not be reproduced in full or partial form except for the purpose of using the software described herein in accordance with the
License Agreement provided with the software. Information in this document is subject to change without notice. Companies, names and data used in the examples herein are fictitious unless otherwise noted.
All trademarks are the property of their respective owners. This document is developed and produced in Hong Kong, SAR.
PayDollar PayGate Integration Guide (v3.46) Page 2
Confidentiality and Usage
The information contained in this document (and any attachments) is confidential information provided by AsiaPay (HK) Limited. This document is intended only for use by merchants approved by AsiaPay.
Any copying, distribution or dissemination of this document by any other parties is prohibited.
2.7
2.8
2.9
3.0
3.1
3.11
3.2
3.2.1
3.2.2
3.3
3.4
3.5
3.5.5
3.6
PayDollar PayGate Integration Guide (v3.46)
Revision History
1.7
1.8
1.9
2.0
2.1
2.2
2.3
2.5
1.3
1.4
1.5
1.6
Revision
0.0
1.0
1.1
1.2
2.6
Date
July 11,2001
Apr 28, 2003
Oct 7, 2003
Nov 1, 2003
Nov 6, 2003
Nov 13, 2003
Feb 20, 2004
Mar 9, 2004
May 6, 2004
May 13, 2004
Aug. 20, 2004
Sept 14, 2004
Oct 8, 2004
Dec 6, 2004
Sep 15, 2005
Jan 25, 2006
Mar 30, 2006
Jun 15, 2006
Jun 20, 2006
Nov 27, 2006
Aug 30, 2007
Jan 24, 2008
June, 25, 2008
Mar 25, 2009
Apr 29, 2009
May 14, 2009
Nov 5, 2009
Dec 18, 2009
Jun 1, 2010
Jun 25, 2010
Jun 29,2010
Page 3
Revision Description
First Draft issue
First issue (All in One Copy)
Add VBV Parameters for Server Side Integration
Modify VBV Parameters for Server Side Integration
Deleted Data Feed Retry Message
Add AuthId to Data Feed Output
Add JCB Card Type and Japanese Lang Parameter
All-in-One Version
Add JPY and TWD Currency Code
Add data feed flow comment
Add AMEX and Security Code parameter
Add Payment Flow, 3D Transaction, PayPal Transaction and New Currencies
Modify the pop-up flow to be inline flow of 3D Transaction
Add errorUrl parameter to Direct Client Side Connection
Add ECI and Payer Authentication Status to datafeed section
Add data feed port requirement
Add new parameters to datafeed :
- sourceIp
- ipCountry
Add sample data feed page in ASP.
Modified Payment Method to support CUP.
Add Transaction Handling and FAQ Section
Add Alipay payment method
Language update
– Supporting Thai
Revise and updated content
Add China UnionPay (CHINAPAY) payment method
Add new parameter
“payMethod” to Data Feed Output
Add APPENDIX
Add Tenpay and 99bill payment method
Add new optional parameter for connect to payment page.
Origin Country and Destination Country
Add new parameter
“cardIssuingCountry” to Data Feed Output
Add new parameter
“channelType” to Data Feed Output
Add new function
“Multi-Currency Processing” and merge “Server Side Direct
Connection
” Spec into one spec. Move “Data Feed Handling” into a new section. Add mps fields in datafeed and merchant api.
PayDollar PayGate Integration Guide (v3.46)
3.7 Jul 27, 2010
3.8
3.9
3.10
3.11
3.12
3.13
3.14
3.15
3.16
3.17
3.18
3.19
3.20
3.21
3.22
3.23
3.24
3.25
3.26
3.27
Dec 6,2010
Feb 16, 2011
Apr 1, 2011
Apr 20, 2011
Jun 1, 2011
Jul 12, 2011
Nov 2, 2011
Jan 30,2012
Jun 6, 2012
Jun 27, 2012
Aug 3, 2012
Oct 5, 2012
Jan 8, 2013
Jan 28, 2013
Jun 13, 2013
Jun 21,2013
Aug 22, 2013
Nov 11, 2013
Nov 22, 2013
Feb 18, 2014
Page 4
Add Secure Hash Function.
Add new optional parameter
“amount” for Merchant API RequestRefund action
Merchant can set Return Value Link (Data Feed) at merchant admin
Language update
– Supporting French, German, Russian and Spanish
Add new optional parameters on Client Post Through Browser for disable the print and retry function at payment result page.
Update the description of the parameter
“payType” for integration.
Add new parameters
“mSchPayId”, “dSchPayId” to Data Feed Output.
Add MOP, PHP, THB, MYR, IDR and KRW Currency Code
Update the list of response code from PayDollar
Add SAR, NZD, AED, BND Currency Code
Add MEPS payment method
Add MemberPay Service integration parameters
Update Browser version compatibility
Update IP Ranges
Add
“AMEX SafeKey”
Update the wording of
“3D-Secure” to “3-D Secure”
Add datafeed return parameters (AlertCode and MerchantId)
Update Debit payment for Thailand
Add SCB , BAY, UOB, TMB , UOB , KTB , IBANKING, Bill Payment
Add Installment service
Update testing environment IP Ranges
Add Airline data support
- Air Ticket Number
Add new optional parameters panFirst4, panLast4, accountHash and accountHashAlgo to Data Feed Out and Merchant API Query
Add new payment method
“UPOP”
Add customer billing information
Add payment gateway transaction time into datafeed and query function
Add VND Currency Code
Add 99BILL, ALIPAY, CHINAPAY, PAYPAL, PPS, TENPAY, MEPS,
OCTOPUS, ENETS, MYCLEAR, POLI, UPOP, UPOP-GNETE, UPOP-DNA,
FUIOU, SCB, KRUNGSRIONLINE, KTB, UOB, TMB, IBANKING, BPM,
GCash, BancNet, SMARTMONEY into direct client side connection method
Add M2U and CIMBCLICK
Add new optional parameter
“panFull” to Data Feed output and Merchant API
Query.
Add new currency INR
Add new language Vietnamese
PayDollar PayGate Integration Guide (v3.46)
3.28
3.29
3.30
3.31
3.32
3.33
3.34
3.35
3.36
3.37
3.38
3.39
3.40
3.41
3.42
3.43
3.44
3.45
3.46
Mar 19, 2014
May 29, 2014
Jun 06, 2014
Jul 03, 2014
Oct 06, 2014
Oct 31, 2014
Nov 3, 2014
Nov 25, 2014
Dec 2, 2014
Dec 12, 2014
Mar 19, 2015
Jun 11, 2015
Aug 19, 2015
Sep 14, 2015
Sep 16,2015
Sep 23,2015
Nov 12, 2015
Dec 16,2015
Jan 22, 2016
Page 5
Add OCTOPUS
Add “mpLatestStaticToken” and “mpMemberId” in DataFeed
Add “timeoutValue” to control Octopus timeout value
Add “hiddenAmount” and “expDateCheck”, for Client Post Through Browser
- Add Ewallet Integration Parameters in Direct Client Side Connection and
Server Side Direct Connection
- Add Ewallet information in Data Feed Response
Add WeChat payment method
Add Multi Currency Pricing and Integration Parameters for card data encryption
Update description of optional parameter
“foreignAmount” on MCP Function
Add “promotionCode”, “promotionRuleCode”, “promotionOriginalAmt” on
Query API
Add ONEPAY (ATM Card) Payment Method
Change the type of “Ord”
Add new parameters
“rewardsRedeemTotalAmt”, “rewardsRedeemType”,
“rewardsRedeemProgram”, “rewardsRedeemCode1”,
“rewardsRedeemLabel1”, “rewardsRedeemAmt1”, “rewardsBalance1”,
“rewardsRedeemCode2”, “rewardsRedeemLabel2”, “rewardsRedeemAmt2”,
“rewardsBalance2”, “rewardsRedeemCode3”, “rewardsRedeemLabel3”,
“rewardsRedeemAmt3”, “rewardsBalance3” to Data Feed Output and Query
API Output
Add new parameters “netAmtAfterRewards” to Data Feed Output and Query
API Output
Add new parameters
“netAmtAfterRewards “, “rewardsRedeemTotalAmt”,
“rewardsRedeemType”, “rewardsRedeemProgram”, “rewardsRedeemCode1”,
“rewardsRedeemLabel1”, “rewardsRedeemAmt1”, “rewardsBalance1”,
“rewardsRedeemCode2”, “rewardsRedeemLabel2”, “rewardsRedeemAmt2”,
“rewardsBalance2”, “rewardsRedeemCode3”, “rewardsRedeemLabel3”,
“rewardsRedeemAmt3”, “rewardsBalance3” to Capture API Output
Add VISA Checkout and MasterPass Payment Method
Add installOnly
Revise output of “Settlement Report Request”
Update description of Datafeed for VISA Checkout
Add VISA Checkout and MasterPass Payment Method
Change the length of “batchid”
Add API function
– Query payment request log
PayDollar PayGate Integration Guide (v3.46) Page 6
Table of Contents
..................................................................................... 38
........................................................................................... 48
ASH FUNCTION OF YOUR MERCHANT ACCOUNT
............................................................................. 49
PayDollar PayGate Integration Guide (v3.46) Page 7
................................................................. 52
......................................................................... 54
LL THE RETURN PARAMETERS WILL BE IN
.......................................................................................... 71
............................................................................ 79
NSUCCESSFUL REDIRECTION TO SUCCESS
............................................................... 81
AUTHENTICATION TRANSACTIONS BY CUSTOMER
......................................................................... 81
99BILL / ALIPAY / CHINAPAY / PPS / TENPAY / SCB / BAY / KTB / UOB / TMB / BBL
.................................................................................... 82
PayDollar PayGate Integration Guide (v3.46) Page 8
1 Overview
1.1 Introduction
PayDollar PayGate is a powerful web-based online payment services platform, which provides secure, multi-channel, multi-lingual and multi-currency payment services. It is used by many renowned companies and organizations in the region.
This technical specification document prescribes the constituent parts of specification for integration of an e-commerce web site with PayDollar e-commerce service, the on-line payment service by AsiaPay
(HK) Limited, by subscribed merchants of the service. This document has been created to ensure that all technical specifications contain sufficient information to enable a merchant to design and modify the codes of an existing on-line shopping architecture or software to cater for the payment
–enabling service. It also provides a checklist to enable the reviewers of specifications to conduct tests on the functionalities of the integration.
PayDollar PayGate facilitates merchant to connect to our network with great flexibility. Merchant can choose one of the following integration methods, which will be described in detail in the document.
-
Client Post through Browser (e.g. Shopping Cart)
-
Direct Client Side Connection
-
Server Side Direct Connection (e.g. IVR System, Mobile App)
Moreover, a list of merchant API functions will be also described in detail in the later section.
PayDollar PayGate Integration Guide (v3.46) Page 9
2 Connection method
2.1 Client Post Through Browser
It is the most popular connection method among merchants. The advantage of this connection method is simple and speedy. On the other hand, payment transaction flow is ready to use. Merchant can kick off the web site on-the-fly with just a small scale integration.
Scope and Compatibility
This connection is designed for merchants who have Online Shopping Cart System. The routine is
HTML-based with Javascript and should be widely applicable to on-line shopping cart software and architecture, whose technical specifications and varieties are beyond the scope of this document.
Compatibility with shopping cart software is yet to be exhaustively given and would not be included in the scope of this document.
The compatible version of the software code is as follow:
Software Code
HTML
Javascript
Version
4.0
1.3
The version compatibility of the software code with popular browser software is as follow:
Browser
Microsoft Internet Explorer
Mozilla Firefox
Google Chrome
Safari
Version
7.0 or above
3.0 or above
5.0 or above
4.0 or above
PayDollar PayGate Integration Guide (v3.46)
Credit Card Payment Flow
Merchant’s Shopping Cart
(e.g. shopCart.jsp)
MPS Process (Optional)
Exchange Rate
Provider
PayDollar’s Payment
Connection Page
Continue
PayDollar’s Payment Input Form
(Credit Card Information)
Page 10
Merchant’s Page
PayDollar’s Page
Third Party
Decision Box
Report
Cancel
Submit / Cancel?
Submit
Directory
Server
(VISA/
MasterCard/
JCB)
Card
Issuer
Bank
Cancel
JavaScript Payment
Confirmation
(for customer to confirm)
Confirm / Cancel?
Confirm
3D Authentication Process
Authentication
Success?
Succes s
Yes
Enrolled 3D Card?
No
Connect to Bank
Fail
Fail
Payment Success?
Succes s
Merchant’s Transaction
Cancel Page
Data Feed (Optional)
Recommended
– if you need to take action in real-time
Merchant’s Data Feed Receiving Page cancelUrl)
PayDollar’s Payment Fail Page PayDollar’s Payment Successful Page
Retry
Retry / Close?
Close
Merchant’s Transaction
Fail Page
Print / Continue?
Continue
Merchant’s Transaction
Successful Page
Receipt
PayDollar PayGate Integration Guide (v3.46) Page 11
99BILL, ALIPAY, CHINAPAY, PAYPAL, PPS, TENPAY, SCB, BAY, KTB, UOB, TMB, BBL iBanking, UPOP, M2U, CIMBCLICK, OCTOPUS, WECHAT, ONEPAY Payment Flow
MPS Process (Optional)
Rate Provider
Fail
Merchant’s Shopping Cart
(e.g. shopCart.jsp)
Merchant’s Page
PayDollar’s Page
Third Party
Decision Box
Report
PayDollar’s Payment Connection
Page
PPS / PAYPAL / CHINAPAY/ALIPAY/TENPAY/99BILL/UPOP/M2U/CIMBCLICK
PayDollar’s Payment Confirmation
(for customer to confirm)
Merchant’s Transaction
Cancel Page
Confirm / Cancel ? an
(VISA/
Mas
Confirm
Redirect to
PPS or PAYPAL or CHINAPAY or ALIPAY
JCB) or TENPAY or 99BILL or UPOP or
Cancel
PayDollar receives Payment Result
Data Feed (Optional)
Recommended
– if you need to take action in real time
Merchant’s Data Feed Receiving Page
(different from successUrl, failUrl & cancelUrl)
Success
Payment Success?
PayDollar’s Payment Fail Page
Close?
Close
Merchant’s Transaction
Fail Page
PayDollar’s Payment Successful Page
Payment Success ul Page
Print / Continue?
Continue
Merchant’s Transaction
Successful Page
Receipt
PayDollar PayGate Integration Guide (v3.46)
Bill Payment Flow (BPM)
Page 12
Merchant’s Shopping Cart
(e.g. shopCart.jsp)
Merchant’s Page
SiamPay’s Page
Decision Box
Report
SiamPay’s Payment Connection Page
BPM
SiamPay’s Payment Confirmation
(for customer to confirm)
Merchant’s Transaction
Cancel Page
Confirm / Cancel ? an
(VISA/
Mas
Confirm
Generate Siampay Payment Slip
(Payin)
JCB) celt?
Cancel
Print / Close?
Close
Merchant’s Transaction
Successful Page
Print Payin slip
Payment at Counter/ATM/Phone
Data Feed
Recommended
– if you need to take action in real time
Merchant’s Data Feed Receiving Page
(different from successUrl, failUrl & cancelUrl)
PayDollar PayGate Integration Guide (v3.46) Page 13
It is notable that the software codes of the payment routine, whose example is as given, should be embedded into the integration page, as in above, which should be able to generate the sum of purchase from the previous shopping practice of the user. The subsequent parts of the flow would be directed to system architecture in which the payment details are to be submitted by the user, and handled for settlement and clearance.
Definition of Parameters in the Integration Page
The following are the parameters for integration. PayDollar PayGate is case sensitive. Make sure the typeface is correct. When a transaction is finished, the system will return customer a payment message. Merchant can create static HTML pages to display the message. If merchant’s web site supports data feed, the system can return payment message as shown in the following table.
Parameters orderRef currCode amount lang
Data Type Descriptions
Required Parameter ( with UTF-8 Encoding ) for connect to our payment page
Text (35) Merchant‘s Order Reference Number
Text (3) The currency of the payment:
“344” – HKD
“156” – CNY (RMB)
“036” – AUD
“124” – CAD
“840” – USD
“392” – JPY
“978” – EUR
“446” – MOP
“702” – SGD
“901” – TWD
“826” – GBP
“608” – PHP
“764” – THB
“410” – KRW
“784” – AED
“356” – INR
“458” – MYR
“682” – SAR
“096” – BND
“360” – IDR
“554” – NZD
“704” – VND
Remark: mpsMode = SCP, the currCode value should be in foreign currency. mpsMode = MCP, the currCode value should be in base currency.
Number (12,2) The total amount you want to charge the customer for the provided currency
Text (1)
Remark:
mpsMode = SCP
, the amount should be calculated in foreign currency.
mpsMode = MCP
, the amount should be calculated in base currency.
The language of the payment page
“E” – English
“X” – Simplified Chinese
“C” – Traditional Chinese
“J” – Japanese
PayDollar PayGate Integration Guide (v3.46)
cancelUrl failUrl successUrl merchantId payType payMethod
Text (300)
Text (300)
Text (300)
Number
Text(1)
(“N”, ”H”)
Text
Page 14
“T” – Thai
“G” – German
“S” – Spanish
“F” – French
“R” – Russian
“V” – Vietnamese
A Web page address you want us to redirect upon the transaction being cancelled by your customer (For display purpose only. DO NOT use
this URL to update your system. Please use DataFeed for this
purpose.)
A Web page address you want us to redirect upon the transaction being rejected by us. (For display purpose only. DO NOT use this URL to
update your system. Please use DataFeed for this purpose.)
A Web page address you want us to redirect upon the transaction being accepted by us (For display purpose only. DO NOT use this URL to
update your system. Please use DataFeed for this purpose.)
The merchant ID we provide to you
The payment type:
”N” – Normal Payment (Sales)
”H” – Hold Payment (Authorize only)
For merchants who use authorize mode, please be reminded to perform the CAPTURE action as soon as the transaction is confirmed as valid.
Once captured, the customer's credit card will be debited in coming bank settlement processing. If the merchant does not capture/reverse the authorized transaction over 14 days, the credit limit will be released to the cardholder after a time period which is subjected to card issuing bank
Merchant may capture/reverse the authorized transaction in the merchant administration site > Operation > Transaction Detail.
Remark: Hold Payment is not available for 99BILL, ALIPAY, CHIANPAY,
PAYPAL, PPS, TENPAY, WECHAT, MEPS,OCTOPUS
The payment method:
“ALL” – All the available payment method
“CC” – Credit Card Payment
“VISA” – Visa Payment
“Master” – MasterCard Payment
“JCB” – JCB Payment
“AMEX” – AMEX Payment
PayDollar PayGate Integration Guide (v3.46)
installment_service installment_period installOnly airline_service airline_ticketNumber mpsMode
Page 15
“Diners” – Diners Club Payment
“PPS” – PayDollar PPS Payment
“PAYPAL” – PayPal By PayDollar Payment
“CHINAPAY” – China UnionPay By PayDollar Payment
“ALIPAY” – ALIPAY By PayDollar Payment
“TENPAY” – TENPAY BY PayDollar Payment
“99BILL” – 99BILL BY PayDollar Payment
“MEPS” – MEPS BY PayDollar Payment
“SCB” –SCB (SCB Easy) BY PayDollar Payment
“BPM” –Bill Payment BY PayDollar Payment
“KTB” –Krung thai Bank (KTB Online) BY PayDollar Payment
“UOB” –United Oversea bank BY PayDollar Payment
“KRUNGSRIONLINE” –Bank of Ayudhya (KRUNGSRIONLINE) BY
PayDollar Payment
“TMB” –TMB Bank BY PayDollar Payment
“IBANKING” –Bangkok Bank iBanking BY PayDollar Payment
“UPOP” – UPOP BY PayDollar Payment
“M2U” – M2U BY PayDollar Payment
“CIMBCLICK” – CIMBCLICK BY PayDollar Payment
“OCTOPUS” – OCTOPUS BY PayDollar Payment
“WECHAT” – WECHAT BY PayDollar Payment
“ONEPAY” – ONEPAY BY PayDollar Payment
“VCO” – VISA Checkout Payment
“MP” – MasterPass Payment
Text (1)
(“T”,”F”)
Number
Optional Parameter for installment
Installment service indicator
In number of months
*Not provide will Enable installment selection during the payment
Control the mandatory of Installment payment Text (1)
(“T”,”F”)
Optional Parameter for airline data
Text (1)
(“T”,”F”)
Airline service indicator
Text (13) Air ticket number
Optional Parameter for Multi Currency Pricing (MCP)
Text(3) The Multi-Currency Processing Service (MPS) Mode:
“NIL” or not provide – Disable MPS (merchant not using MPS)
PayDollar PayGate Integration Guide (v3.46)
multiRateID mpsExRate foreignCurrCode foreignAmount promotion promotionCode promotionRuleCode promotionOriginalAmt remark redirect oriCountry destCountry secureHash
Page 16
“SCP” – Enable MPS with ‘Simple Currency Conversion’
“DCC” – Enable MPS with ‘Dynamic Currency Conversion’
“MCP” – Enable MPS with ‘Multi Currency Pricing’
For merchant who applied MPS function
Text (12) Unique Rate ID
*Returned from API function “MCPMultiRateEnquiry”
Number (10,4) Exchange rate between the merchant’s base currency and the foreign currency.
Text (3)
*Returned from API function “MCPMultiRateEnquiry”
Foreign currency code
Number (12,2) Calculated foreign amount
*The foreign amount should be converted from a base amount with minimum value HKD10 / MOP10 to avoid tolerance check failure.
Optional Parameter for Promotion
Text(1);
(“T” or “F”)
Text(8);
Text(8);
Enable / Disable the promotion
Number (12,2) The promotion original amount
Optional Parameter for connect to our payment page
Text (200)
The promotion campaign code
The promotion rule code
Number
Number(3)
A remark field for you to store additional data that will not show on the transaction web page
Number of seconds auto-redirection to merchant’s site takes place at
PayDollar’s Payment Success / Fail page
Origin Country Code
Example:
344 – “HK”
840 – “US”
Number(3)
Text (40)
Destination Country Code
Example:
344 – “HK”
840 – “US”
Secure hash is used to authenticate the integrity of the transaction information and the identity of the merchant. It is calculated by hashing the combination of various transaction parameters and the Secure Hash
Secret.
PayDollar PayGate Integration Guide (v3.46) Page 17
print failRetry timeoutValue hiddenAmount expDateCheck
*Applies to merchants who registered this function only. For more information, please refer to section 4.
Text(2) ; (“no”) Disable the print function at payment result page.
Text(2) ; (“no”) Disable the retry function when the transaction is rejected
Number Timeout Value in second, only for OCTOPUS payment and ranged 180 and 7200
Text (1)
(“T”,”F”)
Number
Flag to control the display of amount. “T” for showing amount and “F” for not showing display of amount. *Enable to approved merchant only.
Value to control the expiry date checking. Eg. If “1” is submitted, the card expiry date must not be expired in one month. Only integer is allowed and minimum value is “1” and maximum value is “192”. *Enable to approved merchant only.
Ref
Redirect URL (successUrl, failUrl and cancelUrl) Output
Text Merchant’s Order Reference Number (For display
purpose only. DO NOT use this URL to update your
system. Please use DataFeed for this purpose.)
Example of Client Post Method (Source Code)
The following is an example of integration of shopping cart routine with the payment routine of
PayDollar PayGate in HTML. It is noteworthy that the portion in bold typeface as follows is mandatory for successful integration.
In the following sample form, hidden fields are used to hold the values:
...
<form name="payFormCcard" method="post" action=" https://test.paydollar.com/b2cDemo/eng/payment/payForm.jsp">
<input type="hidden" name="merchantId" value="1">
<input type="hidden" name="amount" value="3000.0" >
<input type="hidden" name="orderRef" value="000000000014">
<input type="hidden" name="currCode" value="344" >
<input type="hidden" name="mpsMode" value="NIL" >
<input type="hidden" name="successUrl" value="http://www.yourdomain.com/Success.html">
<input type="hidden" name="failUrl" value="http://www.yourdomain.com/Fail.html">
PayDollar PayGate Integration Guide (v3.46) Page 18
<input type="hidden" name="cancelUrl" value="http://www.yourdomain.com/Cancel.html">
<input type="hidden" name="payType" value="N">
<input type="hidden" name="lang" value="E">
<input type="hidden" name="payMethod" value="CC">
<input type="hidden" name="secureHash" value="44f3760c201d3688440f62497736bfa2aadd1bc0">
<input type="submit" name="submit">
</form>
...
Kick Off
After the integration has been completed, it is ready to launch your e-commerce web to serve your customers. Please copy the following TESTING URL for client post method:
https://test.paydollar.com/b2cDemo/eng/payment/payForm.jsp
Please copy the following PRODUCTION URL for client post method:
https://www.paydollar.com/b2c2/eng/payment/payForm.jsp
PayDollar PayGate Integration Guide (v3.46) Page 19
2.2 Direct Client Side Connection
This method is used for the merchant if they want to capture the credit card information from their web page instead of using our standard payment page. The requirement of using this method is to install a
SSL Certificate to your domain in order to protect your customers’ credit card information.
Moreover, if the credit card used by the customer is an enrolled 3-D Secure card, the customer will be asked for providing a static password or one-time password to verify the payer identity. 3-D Secure is a credit card authorization program implemented by VISA with brand named “Verified By VISA”,
MasterCard with brand named “MasterCard SecureCode”, JCB with brand named “J/Secure” and
AMEX with brand named
“AMEX SafeKey” to reduce fraudulent purchases by verifying purchaser identity during online transactions. PayDollar will assist to carry out this process and the customer will observe the 3D processing pages by our PayDollar shown as the later section.
As the 3D protocol is standardized for all brand types, including Verified By VISA, MasterCard
SecureCode, JCB J/Secure and AMEX SafeKey. In this document, we use the case of Verified By
VISA as an example to show the flow in detail.
For merchant who chooses this method of connection, 128-bit SSL sever certificate must be installed for data encryption. The system does not accept non-encrypted data.
PayDollar use Extended Validation (EV) SSL Certificate to ensure your system function properly, please check your certificate store can recognize VeriSign intermediate CA certificate - Secure Site
Pro/Managed PKI for SSL Premium with EV Certificates. If not, you are required to install the VeriSign intermediate CA certificate in your certificate store.
Please download the primary and secondary VeriSign EV SSL Intermediate CA certificates from the following link then import the 2 certificates into the keystore of your environment. http://www.verisign.com/support/verisign-intermediate-ca/extended-validation-pro/index.html
(Please be reminded that you should choose the option “Issued After May 17th, 2009”)
PayDollar PayGate Integration Guide (v3.46) Page 20
Credit and Debit Card Payment Flow for VISA, Master, Diners, JCB, AMEX
Merchant’s Page
PayDollar’s Page
Third Party
Decision Box
Merchant’s Shopping Cart
(e.g. shopCart.jsp)
Merchant’s Payment Page
(Credit Card Information)
Directory
Server
(VISA/
MasterCard/
JCB)
Card
Issuer
Bank
PayDollar’s Payment
Connection Page
Data Feed (Optional)
Recommended
– if you need to take action in real time
Merchant’s Data Feed Receiving Page
(different from successUrl, failUrl & cancelUrl)
3D Authentication Process
Authentication
Success?
Success
Yes
Enrolled 3D Card?
No
Connect to Bank
Fail
Fail
Payment Success?
Success
Merchant’s Transaction
Fail Page
Merchant’s Transaction
Successful Page
PayDollar PayGate Integration Guide (v3.46)
Other Payment Flow
Page 21
MPS Process (Optional)
Rate Provider
Merchant’s Shopping Cart
(e.g. shopCart.jsp)
PayDollar’s Payment
Connection Page
Merchant’s Page
PayDollar’s Page
Third Party
Decision Box
Report
Redirect to
PPS or PAYPAL or CHINAPAY or ALIPAY or TENPAY or 99BILL or
MEPS or OCTOPUS or NOVAPAY or ENETS or MYCLEAR or POLI or
UPOP or UPOP-GNETE or UPOP-DNA or FUIOU or SCB or
KRUNGSRIONLINE or KTB or UOB or TMB or IBANKING or BPM or
GCash or BancNet or SMARTMONEY or WECHAT or ONEPAY
PayDollar receives Payment Result
Data Feed (Optional)
Recommended
– if you need to take action in real time
Merchant’s Data Feed Receiving Page
(different from successUrl, failUrl & cancelUrl)
Fail Success
Payment Success?
PayDollar’s Payment Fail Page
Close?
Close
Mer chant’s Transaction
Fail Page
PayDollar’s Payment Successful Page
Payment Success ul Page
Print / Continue?
Continue
Merchant’s Transaction
Successful Page
Receipt
PayDollar PayGate Integration Guide (v3.46) Page 22
Non-3D transaction
Your client’s browser will be redirected from your site to our payment page and then we will redirect the page to your successful/fail page upon completed the transaction.
3D transaction
As 3D Authentication require your customers to enter the password of their cards, your clients’ browser will be redirected to a 3D notification web page in order to notify your customers that they need to complete the 3D Authentication by entering the password in the pop-up window. Below are some sample pages for the case of Verified By VISA.
Figure 1.1 Sample notification page
PayDollar PayGate Integration Guide (v3.46) Page 23
Figure 1.2 Sample issuing bank verification page
After the authentication process, the authentication result will forward to our system and the transaction process will be further continued by our acquiring bank according to the authentication result.
PayDollar PayGate Integration Guide (v3.46) Page 24
Integration Procedures
To connect to our system, you need to post the required parameters to our payment page URL and then get back the result by using data feed.
Definition of Parameters in the Integration Page
In the targeted page of integration, in which sum of purchase has been generated, the following fields
(hidden or text) should be added:
Parameters orderRef amount currCode lang merchantId pMethod
Data Type Descriptions
Required Parameter ( with UTF-8 Encoding ) for connect to our payment page
Text (35)
Number (12,2)
Merchant‘s Order Reference Number
Text (3)
The total amount you want to charge the customer (up to 2 decimal place)
Remark:
mpsMode = MCP
, the amount should be calculated in base currency.
The currency of the payment:
“344” – HKD
“156” – CNY (RMB)
“036” – AUD
“124” – CAD
“764” – THB
“410” – KRW
“784” – AED
“356” – INR
“840” – USD
“392” – JPY
“978” – EUR
“446” – MOP
“458” – MYR
“682” – SAR
“096” – BND
“702” – SGD
“901” – TWD
“826” – GBP
“608” – PHP
“360” – IDR
“554” – NZD
“704” – VND
Remark:
mpsMode = MCP, the currCode value should be in base currency.
Text (1)
Number
Text
The language of the payment page :
“E” – English
“X” – Simplified Chinese
“T” – Thai
“G” – German
“S” – Spanish
“C” – Traditional Chinese
“J” – Japanese
“F” – French
“R” – Russian
“V” – Vietnamese
The merchant ID we provide to you
The payment type
(“VISA”, “Master”, ”Diners”, ”JCB”, “AMEX”, PPS", "PAYPAL", "CHINAPAY",
"ALIPAY", "TENPAY", "99BILL", "MEPS", "OCTOPUS", "NOVAPAY",
PayDollar PayGate Integration Guide (v3.46)
epMonth epYear cardNo securityCode cardHolder failUrl successUrl errorUrl payType
Number(2)
Number(4)
Text (16)
Text (4)
Text (20)
Text (300)
Text (300)
Text (300)
Text (1)
(“N”,”H”)
Page 25
"ENETS", "MYCLEAR", "POLI", “UPOP”, “UPOP-GNETE” ,"UPOP-DNA",
"FUIOU", "SCB", "KRUNGSRIONLINE", "KTB", "UOB", "TMB",
"IBANKING", "BPM", "GCash", "BancNet", "SMARTMONEY, “M2U”,
“CIMBCLICK”, “WECHAT”, “ONEPAY”, “VCO”)
Credit card expiry month (mandatory for card payment)
Credit card expiry year (mandatory for card payment)
Credit card number (mandatory for card payment)
Credit Card Verification Code (mandatory for card payment)
- VISA: CVV2 (3-digit)
- MasterCard: CVC2 (3-digit)
- JCB: CAV2 (3-digit)
- American Express: 4DBC (4-digit)
Credit card holder name (mandatory for card payment)
A Web page address you want us to redirect upon the transaction being rejected by us (For display purpose only. DO NOT use this URL to
update your system. Please use DataFeed for this purpose.)
A Web page address you want us to redirect upon the transaction being accepted by us (For display purpose only. DO NOT use this URL to
update your system. Please use DataFeed for this purpose.)
A Web page address you want us to redirect when unexpected error occur
(e.g. parameter incorrect) (For display purpose only. DO NOT use this
URL to update your system. Please use DataFeed for this purpose.)
The payment type:
“N” – Normal Payment (Sales)
“H” – Hold Payment (Authorize only)
For merchants who use authorize mode, please be reminded to perform the
CAPTURE action as soon as the transaction is confirmed as valid. Once captured, the customer's credit card will be debited in coming bank settlement processing. If the merchant does not capture/reverse the authorized transaction over 14 days, the credit limit will be released to the cardholder after a time period which is subjected to card issuing bank
Merchant may capture/reverse the authorized transaction in the merchant administration site > Operation > Transaction Detail.
Remark: Hold Payment is not available for PPS, PAYPAL, CHINAPAY,
ALIPAY, TENPAY, 99BILL, MEPS, OCTOPUS, NOVAPAY, ENETS,
PayDollar PayGate Integration Guide (v3.46) Page 26
MYCLEAR, POLI, UPOP, UPOP-GNETE, UPOP-DNA, FUIOU, SCB,
KRUNGSRIONLINE, KTB, UOB, TMB, IBANKING, BPM, GCash, BancNet,
SMARTMONEY, M2U, CIMBCLICK, WECHAT
installment_service
Text (1) (“T”,”F”)
Optional Parameter for installment
Installment service indicator
installment_period
Number In number of months
airline_service
Text (1) (“T”,”F”)
airline_ticketNumber
Text (13)
Optional Parameter for airline data
Airline service indicator
Air ticket number
billingFirstName
billingLastName billingStreet1 billingStreet2
Text(60)
Text(60)
Text(40)
Text(40)
Optional Parameter for billing information
First name of customer
Last name of customer
Address of customer
Address of customer ,only mandatory if address exceed 40
billingCity billingState billingPostalCode billingCountry billingEmail custIPAddress remark oriCountry destCountry secureHash timeoutValue
Text(50)
Text(2)
Text(10)
Text(2)
City
Mandatory if customer’s country is USA or Canada
Mandatory if customer’s country is USA or Canada
Eg.HK
Text(255)
Text(15)
Email address
192.168.180.100
Optional Parameter for connect to our payment page
Text
Number(3)
Number(3)
Text (40)
Number
An additional remark field that will appear in the confirmation email and transaction detail report to help you to refer the order
Origin Country Code
Example:
344 – “HK” 840 – “US”
Destination Country Code
Example:
344 – “HK” 840 – “US”
Secure hash is used to authenticate the integrity of the transaction information and the identity of the merchant. It is calculated by hashing the combination of various transaction parameters and the Secure Hash Secret.
*Applies to merchants who registered this function only. For more information, please refer to section 4.
Timeout Value in second, only for OCTOPUS payment and ranged 180 and
7200
PayDollar PayGate Integration Guide (v3.46) Page 27
mpsMode multiRateID mpsExRate foreignCurrCode foreignAmount
eWalletService
eWalletBrand
eWalletInd
vcoCallid encryptMode encryptAlgo encryptedData
Text(3)
Text (12)
Optional Parameter for Multi Currency Pricing (MCP)
The Multi-Currency Processing Service (MPS) Mode:
“MCP” – Enable MPS with ‘Multi Currency Pricing’
For merchant who applied MPS function
Unique Rate ID
*Returned from API function “MCPMultiRateEnquiry”
Number (10,4)
Exchange rate between the merchant’s base currency and the foreign currency.
*Returned from API function “MCPMultiRateEnquiry”
Text (3)
Number (12,2)
Foreign currency code
Calculated foreign amount
*The foreign amount should be converted from a base amount with minimum value HKD10 / MOP10 to avoid tolerance check failure.
Optional Parameter for using third party EWallet
Text
(“T”,”F”)
Text (10)
EWallet service indicator
Text
Text
The value of the “eWalletBrand”:
“MP” – MasterPass
“VCO” – VISA Checkout
“ECO” – AMEX ExpressCheckout
Only Text(3) for MasterPass EWallet, The Wallet Indicator is returned by the wallet platform and must be passed to the payment processor/acquirer in the financial authorization transaction.
Value of “callid” returned from VISA Checkout
* Only for “VISA Checkout Direct Integration”
Text
Text
Text
Optional Parameters for card data encryption
Encryption Mode:
“WEB” – For online transaction
Encrypted Algorithm:
-“AES/CBC/PKCS5Padding” For “WEB”
Other customized encrypted data (For partner only)
For encrytedMode is "WEB", please follow this format cardNo|expDate|cardHolder|securityCode before encryption
“ECO” – AMEX ExpressCheckout
PayDollar PayGate Integration Guide (v3.46) Page 28
Example of connecting to our gateway (Direct Client Side Connection)
As different type of programming language have different syntax. Therefore, the sample code below, is written in HTML code, the requirement is to form post all the required parameters to our secure API, highlighted in yellow.
Sample code:
. . .
<form name="payForm" method="post" action="https://test.paydollar.com/b2cDemo/eng/dPayment/payComp.jsp">
<input type="hidden" name="merchantId" value="1">
<input type="hidden" name="amount" value="3000.0" >
<input type="hidden" name="orderRef" value="000000000006">
<input type="hidden" name="currCode" value="344" >
<input type="hidden" name="pMethod" value="VISA" >
<input type="hidden" name="cardNo" value="4918914107195005" >
<input type="hidden" name="securityCode" value="123" >
<input type="hidden" name="cardHolder" value="Testing" >
<input type="hidden" name="epMonth" value="07" >
<input type="hidden" name="epYear" value="2015" >
<input type="hidden" name="payType” value="N" >
<input type="hidden" name="successUrl" value="http://www.yourwebsite.com/pSuccess.jsp">
<input type="hidden" name="failUrl" value="http://www.yourwebsite.com/pFail.jsp">
<input type="hidden" name="errorUrl" value="http://www.yourwebsite.com/pError.jsp">
<input type="hidden" name="lang" value="E">
<input type=”hidden” name="secureHash" value="44f3760c201d3688440f62497736bfa2aadd1bc0">
<input type="submit" value="Pay Now">
</form>
. . .
* All the source code in this document are the property of AsiaPay (HK) Limited. Any use, modification and adaptation to the code should be reported to and approved by AsiaPay (HK) Limited. AsiaPay (HK) Limited do not have any liability in any lose to the party using the source code.
Kick Off
After the integration has been completed, it is ready to launch your e-commerce web to serve your customers. Please copy the following TESTING URL for client post method:
https://test.paydollar.com/b2cDemo/eng/dPayment/payComp.jsp
Please copy the following PRODUCTION URL for client post method:
https://www.paydollar.com/b2c2/eng/dPayment/payComp.jsp
PayDollar PayGate Integration Guide (v3.46) Page 29
2.3 Server Side Direct Connection
This connection method is for merchant to request payment authorization from bank directly through
PayDollar PayGate system and subject to approval of acquiring bank.
For example, merchant’s IVR system or mobile application can directly integrate to us. And in this connection, merchants need to build their own payment information collection page to collect payment information, such as credit card number, expire data, holder’s name and etc. Then, payment information has to be sent to a defined
URL provided by the acquiring bank. Customer of the merchant, therefore, will not see any bank’s payment page.
Client's Online
Shop
Store selected items in
Shopping Cart
Calculate the total amount
Collect payment information
Message to customer
Customer
Merchant Domain
PayDollar Domain
Server Post
Process under PayDollar
Domain is hidden from customer.
Request payment authorization from bank
Return payment message
For merchant who chooses this method of connection, 128-bit SSL cert must be installed for data encryption. The system does not accept non-encrypted data.
PayDollar uses Extended Validation (EV) SSL Certificate. To ensure your system function properly, please check your certificate store can recognize VeriSign intermediate CA certificate - Secure Site
Pro/Managed PKI for SSL Premium with EV Certificates. If not, you are required to install the VeriSign intermediate CA certificate in your certificate store.
Please download the primary and secondary VeriSign EV SSL Intermediate CA certificates from the following link then import the 2 certificates into the keystore of your environment. http://www.verisign.com/support/verisign-intermediate-ca/extended-validation-pro/index.html
(Please be reminded that you should choose the option “Issued After May 17th, 2009”)
PayDollar PayGate Integration Guide (v3.46) Page 30
Definition of Parameters in the Integration Page
The following are the parameters for integration. PayDollar PayGate is case sensitive. Make sure the typeface is correct. When a transaction is finish, the system will return customer a payment message on the page created by merchant.
Parameters orderRef amount currCode lang merchantId pMethod epMonth epYear cardNo cardHolder securityCode
Data Type Descriptions
Required Parameter ( with UTF-8 Encoding ) for connect to our payment interface
Text (35) Merchant‘s Order Reference Number
Number (12,2) Total amount your want to charge the customer [ Up to 2 decimal place ]
Remark:
mpsMode = MCP
, the amount should be calculated in base currency.
Text (3) The currency of the payment:
“344” – HKD “840” – USD
“156” – CNY (RMB)
“036” – AUD
“392” – JPY
“978” – EUR
“124” – CAD
“764” – THB
“410” – KRW
“784” – AED
“356” – INR
“446” – MOP
“458” – MYR
“682” – SAR
“096” – BND
“702” – SGD
“901” – TWD
“826” – GBP
“608” – PHP
“360” – IDR
“554” – NZD
“704” – VND
Text (1)
Remark:
mpsMode = MCP, the currCode value should be in base currency.
The language of the payment page :
“E” - English
Number
Text
(“VISA”,
“Master”, ”Diner s”,
”JCB”, ”AMEX”,
”VCO”)
Number(2)
Number(4)
Text (16)
The merchant ID we provide to you
The payment card type
“VCO” – VISA Checkout
Credit card expiry month
Credit card expiry year
Credit card number
Text (20)
Text (4)
Credit card holder name
Credit Card Verification Code
- VISA: CVV2 (3-digit)
PayDollar PayGate Integration Guide (v3.46) Page 31
payType installment_service installment_period airline_service airline_ticketNumber
billingFirstName
billingLastName billingStreet1 billingStreet2 billingCity billingState billingPostalCode billingCountry
Text (1)
(“N”,”H”)
- MasterCard: CVC2 (3-digit)
- JCB: CAV2 (3-digit)
- American Express: 4DBC (4-digit)
The payment type:
“N” – Normal Payment (Sales)
“H” – Hold Payment (Authorize only)
For merchants who use authorize mode, please be reminded to perform the
CAPTURE action as soon as the transaction is confirmed as valid. Once captured, the customer's credit card will be debited in coming bank settlement processing. If the merchant does not capture/reverse the authorized transaction over 14 days, the credit limit will be released to the cardholder after a time period which is subjected to card issuing bank
Merchant may capture/reverse the authorized transaction in the merchant administration site > Operation > Transaction Detail.
Remark: Hold Payment is not available for PPS, PAYPAL, CHINAPAY, ALIPAY,
TENPAY, 99BILL, MEPS, OCTOPUS, NOVAPAY, ENETS, MYCLEAR, POLI,
UPOP, UPOP-GNETE, UPOP-DNA, FUIOU, SCB, KRUNGSRIONLINE, KTB,
UOB, TMB, IBANKING, BPM, GCash, BancNet, SMARTMONEY, M2U,
CIMBCLICK, WECHAT, ONEPAY
Optional Parameter for installment
Text (1) (“T”,”F”) Installment service indicator
Number In number of months
Optional Parameter for airline data
Text (1) (“T”,”F”) Airline service indicator
Text (13) Air ticket number
Optional Parameter for billing information
Text(60)
Text(60)
First name of customer
Last name of customer
Text(40)
Text(40)
Text(50)
Text(2)
Text(10)
Text(2)
Address of customer
Address of customer ,only mandatory if address exceed 40
City
Mandatory if customer’s country is USA or Canada
Mandatory if customer’s country is USA or Canada
Eg.HK
PayDollar PayGate Integration Guide (v3.46) Page 32
billingEmail custIPAddress remark
Text(255)
Text(15)
Email address
192.168.180.100
Text
Optional Parameter for connect to our payment interface
An additional remark field that will appear in the confirmation email and transaction detail report to help you to refer the order
secureHash
Text (40)
vbvTransaction
Parameter For 3D Transaction (Need to install MPI Server Software at Merchants’ site)
Text
(“T”,”F”)
3D Transaction (i.e. Verified By VISA, MasterCard SecureCode, J/Secure,
AMEX SafeKey)
“T” – True: The transaction has been gone through the VE/PA process.
“F” – False: Non-3D transaction without go through the VE/PA process
[ No need to send other 3D parameters except vbvTransECI ]
*Note:
Bank’s approval is required for non-3D transactions, please contact us for further details.
vbvCHReturnCode
Number
Secure hash is used to authenticate the integrity of the transaction information and the identity of the merchant. It is calculated by hashing the combination of various transaction parameters and the Secure Hash Secret.
*Applies to merchants who registered this function only. For more information, please refer to section 4.
vbvPAReturnCode
Number
Verify Enrollment Return Code
-
Set to “0” if the enrolled value obtained in MPI VE Response Message is
“Y”
-
Set to “1001” if the enrolled value obtained in MPI VE Response Message is “N”
-
Set to “-1” if the enrolled value is not available in MPI VE Response
Message
Payer Authentication Return Code
-
Set to “0” if the status value obtained in MPI VE Response Message is “Y”
-
Set to “1000” if the status value obtained in MPI VE Response Message is
“A”
-
Set to “1003” if the status value obtained in MPI VE Response Message is
“N”
-
Otherwise, set to “-1”
vbvTransTime
Text in format
(YYYYMMDD
Transaction Time, time, MPI PA Response Message
PayDollar PayGate Integration Guide (v3.46)
vbvTransAuth vbvTransECI vbvCAVVAlgo vbvXID vbvMerchantID vbvAcquirerBin vbvTransStatus mpsMode
Page 33
HH:MM:SS)
Text (28)
Text (2)
Cardholder Authentication Verification Value, CAVV, value in MPI PA Response
Message [ Must be in Base64-Encoded format ]
Electronic Commerce Indicator, ECI, value in MPI PA Response Message
For VISA & JCB card payment:
-
For Enrolled 3D VISA card
[ enrolled = Y ]
- Set it to the value of ECI obtained from MPI PA Response Message
- Set it to “07” if ECI value is not available in MPI PA Response Message
-
For Not an Enrolled 3D VISA card
[ enrolled = N ]
- Set it to “06”
-
Otherwise, set it to “07”
For MasterCard payment:
-
For Enrolled 3D MasterCard
[ enrolled = Y ]
- Set it to the value of ECI obtained from MPI PA Response Message
- Set it to “00” if ECI value is not available in MPI PA Response Message
-
For Not an Enrolled 3D MasterCard
[ enrolled = N ]
- Set it to “01”
-
Otherwise, set it to “00
For Other credit card payment, set it to “07”
Text
Text(20)
Text
Text
Text(1)
CAVV Algorithm, cavvAlgorithm, in MPI PA Response Message
Transaction Identifier, xid, in MPI PA Response Message [ Must contain 20 characters ]
Acquirer-defined Merchant Identifier, merID, in MPI PA Response Message
Acquirer BIN, acqBIN, in MPI PA Response Message
Transaction Status, status, in MPI PA Response Message
-
Set it to the value of status obtained from MPI PA Response Message
-
Set it to “U” if the status value is not available in the MPI PA Response
Message
Text(3)
Optional Parameter for Multi Currency Pricing (MCP)
The Multi-Currency Processing Service (MPS) Mode:
“MCP” – Enable MPS with ‘Multi Currency Pricing’
PayDollar PayGate Integration Guide (v3.46) Page 34
multiRateID mpsExRate foreignCurrCode foreignAmount eWalletService eWalletBrand eWalletInd vcoCallid encryptMode encryptAlgo encryptedTrack1Data encryptedTrack2Data
Text (12)
For merchant who applied MPS function
Unique Rate ID
*Returned from API function “MCPMultiRateEnquiry”
Number (10,4)
Exchange rate between the merchant’s base currency and the foreign currency.
*Returned from API function “MCPMultiRateEnquiry”
Text (3)
Number (12,2)
Foreign currency code
Calculated foreign amount
*The foreign amount should be converted from a base amount with minimum value HKD10 / MOP10 to avoid tolerance check failure.
Optional Parameter for using third party EWallet
Text
(“T”,”F”)
Text (10)
Text
Text
EWallet service indicator
The value of the “eWalletBrand”:
“MP” – MasterPass
“VCO” – VISA Checkout
“ECO” – AMEX ExpressCheckout
Only Text(3) for MasterPass EWallet, The Wallet Indicator is returned by the wallet platform and must be passed to the payment processor/acquirer in the financial authorization transaction.
Value of “callid” returned from VISA Checkout
* Only for “VISA Checkout Direct Integration”
Optional Parameters for card data encryption
Text
Text
Text
Text
Encryption Mode:
“WEB” – For online transaction
“POS” – For POS card present transaction
Encrypted Algorithm:
-“DEsede/CBC/PKCS5Padding” For “POS”
-“AES/CBC/PKCS5Padding” For “WEB”
Encrypted card track 1 data
Format: Initialization vector IV(16) + Encrypted Track 1 Data
Note: The maximum record length for Track1 Data is 79 alphanumeric characters. Sample Track1 Data before encryption in plain text:
“%B4111111111111111^MR TEST C ABCDE
^18091019681143300001 840 ?;”
Encrypted card track 2 data
Format: Initialization vector IV(16) + Encrypted Track 2 Data
PayDollar PayGate Integration Guide (v3.46) Page 35
encryptedEmvData encryptedData
Text
Text
Note: The maximum record length for Track2 Data is 40 alphanumeric characters. Sample Track2 Data before encryption in plain text:
“; 4111111111111111=18091019681143384001?”
Encrypted card EMV data read through a chip on the EMV card
Format: Initialization vector IV(16) + Encrypted EMV Data
Other customized encrypted data (For partner only)
For encrytedMode is "WEB", please follow this format cardNo|expDate|cardHolder|securityCode before encryption
Return Parameter
Return bank host status code
Return bank host status code
Bank Reference Number
The Holder Name of the Payment Account src prc
Ord
Holder successcode
Number
Number
Number
Text
Number
Ref
PayRef
Text
Number
Transaction Status:
0 – Transaction succeeded
1 – Transaction Failure
Merchant‘s Order Reference Number
PayDollar Payment Reference Number
Amt
Cur
AuthId
TxTime
Number (12,2) Transaction Amount
Number (3) Transaction Currency i.e. “344” - HKD
Text
Text
(YYYY-MM-DD
HH:MI:SS.0)
Approval Code
Transaction Time errMsg Text encryptedEmvResponse Text
Error Message
EMV Data Response for EMV transaction only.
Initialization vector IV(16) + Encrypted EMV Response Data
All the return parameters will be concatenated as in html request format by separate with
&.
Sample return string:
successcode=0&Ref=Test&PayRef=4780&Amt=1.0&Cur=344&prc=0&src=0&Ord=6697090&
Holder=edward&AuthId=123456&TxTime=2003-10-07 17:48:02.0&errMsg=Transaction completed
PayDollar PayGate Integration Guide (v3.46) Page 36
Example of Source Code
As different type of programming language have different syntax, so we just propose the method to connect to our payment page. To connect, we suggest you to use server side posting:
Sample code for server post by using java:
// Set up the post data
String postData =
"merchantId=1&orderRef=test&amount=1&currCode=344&pMethod=VISA&epMonth=01&epYear=20
02&cardNo=4123412341234123&cardholder=Edward&remark=test”;
// Post to payment page
strResult = ServerPost.post(postData, https://www.paydollar.com/b2c2/eng/directPay/payComp.jsp );
// Extract the payment status from strResult
...
// Finish
************************************************************************ public class ServerPost
{
static public String post( String ip_postData, String ip_pageUrl)
{
try
{
String strResult = "";
URL url = new URL(ip_pageUrl);
URLConnection con = url.openConnection(); //from secure site
if(con instanceof com.sun.net.ssl.HttpsURLConnection){
((com.sun.net.ssl.HttpsURLConnection)con).setSSLSocketFactory
(SSLSocketFactory)SSLSocketFactory.getDefault());
}
con.setDoOutput(true);
con.setDoInput(true);
// Set request headers for content type and length
con.setRequestProperty(
"Content-type",
"application/x-www-form-urlencoded");
con.setRequestProperty(
"Content-length",
String.valueOf(ip_postData.length()));
// Issue the POST request
OutputStream outStream = con.getOutputStream();
outStream.write(ip_postData.getBytes());
outStream.flush();
// Read the response
PayDollar PayGate Integration Guide (v3.46) Page 37
InputStream inStream = con.getInputStream();
while (true)
{
int c = inStream.read();
if (c == -1)
break;
strResult = strResult + String.valueOf((char)c);
}
inStream.close();
outStream.close();
return strResult;
}
catch (Exception e)
{
System.out.print(e.toString());
return null;
}
}
}
* All the source code in this document are the property of AsiaPay (HK) Limited. Any use, modification and adaptation to the code should be reported to and approved by AsiaPay (HK) Limited. AsiaPay (HK)
Limited do not have any liability in any lose to the party using the source code.
Kick Off
After the integration has been completed, it is ready to launch your e-commerce web to serve your customers. Please copy the following TESTING URL for Direct Connect Server Post method:
https://test.paydollar.com/b2cDemo/eng/directPay/payComp.jsp
Please copy the following PRODUCTION URL for Direct Connect Server Post method:
https://www.paydollar.com/b2c2/eng/directPay/payComp.jsp
PayDollar PayGate Integration Guide (v3.46) Page 38
3 Data Feed handling
To use data feed function, merchant has to create a data feed page and inform PayDollar about the location of your page (e.g. http://www.yourdomain.com/datafeed.jsp). Merchant can enable or disable this function in the merchant administration site.
Definition of Parameters in the output of Data Feed
Parameters Data Type src prc
Ord
Holder successcode
Ref
PayRef
Amt
Cur remark
AuthId eci
Number
Number
Text (40)
Text
Number
Text
Number
Number (12,2)
Text (3)
Text (200)
Text
Text (2)
Descriptions
Data Feed Output
Return bank host status code (secondary). Please refer to Appendix A for detail.
Return bank host status code (primary). Please refer to Appendix A for detail.
Bank Reference Number
The Holder Name of the Payment Account
0- succeeded, 1- failure, Others - error
Merchant‘s Order Reference Number
PayDollar Payment Reference Number
Transaction Amount
Transaction Currency i.e.
“344” – HKD
“156” – CNY (RMB)
“036” – AUD
“124” – CAD
“764” – THB
“410” – KRW
“784” – AED
“356” – INR
“840” – USD
“392” – JPY
“978” – EUR
“446” – MOP
“458” – MYR
“682” – SAR
“096” – BND
“702” – SGD
“901” – TWD
“826” – GBP
“608” – PHP
“360” – IDR
“554” – NZD
“704” – VND
A remark field for you to store additional data that will not show on the transaction web page
Approval Code
ECI value (for 3D enabled Merchants)
ECI Value
05
VISA / JCB / AMEX
Definition
Both cardholder and card issuing bank are
3D enabled. 3D card authentication is
PayDollar PayGate Integration Guide (v3.46)
payerAuth sourceIp ipCountry payMethod cardIssuingCountry channelType
Text (1)
Text (15)
Text (3)
Text (10)
Text (3)
Text (3)
Page 39
06
07
ECI Value
00
01
02 successful
Either cardholder or card issuing bank is not
3D enrolled. 3D card authentication is unsuccessful, in sample situations as:
1. 3D cardholder not enrolled
2. Card issuing bank is not 3-D Secure ready
Authentication is unsuccessful or not attempted. The credit card is either a non-3D card or card issuing bank does not handle it as a 3D transaction
MasterCard
Definition
Authentication is unsuccessful or not attempted. The credit card is either a non-3D card or card issuing bank does not handle it as a 3D transaction
Either cardholder or card issuing bank is not
3D enrolled. 3D card authentication is unsuccessful, in sample situations as:
1. 3D Cardholder not enrolled
2. Card issuing bank is not 3-D Secure ready
Both cardholder and card issuing bank are
3D enabled. 3D card authentication is successful
Remark : Empty String will be sent when the transaction is rejected by
PayDollar PayAlert.
Payer Authentication Status
Y - Card is 3-D secure enrolled and authentication succeeds.
N - Card is 3-D secure enrolled but authentication fails.
P - 3-D Secure check is pending
A - Card is not 3-D secure enrolled yet
U - 3D-secure check is not processed.
IP address of payer
Country of payer ( e.g. HK)
- if country is on high risk country list, an asterisk will be shown (e.g.
MY*)
Payment method (e.g. VISA, Master, Diners, JCB, AMEX)
Card Issuing Country Code ( e.g. HK)
- if country is on high risk country list, an asterisk will be shown (e.g.
MY*)
- if the card issuing country of credit card is undefined,
“- -“ will be shown.
Please refer to Appendix A “List of Country Code” for detail
Channel Type:
SPC – Client Post Through Browser
DPC – Direct Client Side Connection
DPS – Server Side Direct Connection
PayDollar PayGate Integration Guide (v3.46)
secureHash
AlertCode
MerchantId airline_ticketNumber
TxTime expMonth expYear
panFull
panFirst6 panFirst4 panLast4 accountHash accountHashAlgo
Page 40
Text (40)
Text (50)
Text (4)
Text
Text
SCH – Schedule Payment
DPL – Direct Payment Link Connection
MOT – Moto Connection
RTL – RetailPay Connection
BPP – Batch Payment Process
MOB – Mobile Payment Connection
Secure hash is used to authenticate the integrity of the response information and the identity of PayDollar. It is calculated by hashing the combination of various response parameters and the Secure Hash
Secret.
*Applies to merchants who registered this function only. For more information, please refer to section 4.
The Alert Code e.g. R14 –IP Country not match with Issuing Country
R 9 - In high risk country list
The merchant Id of transaction
Air Ticket Number
Transaction time
Number
Text
Text (YYYY-MM-DD
HH:MI:SS.0)
Additional output parameters for card information
Text (MM) Expiry month of the card
Text (YYYY)
*Return to approved merchant only
Expiry year of the card
*Return to approved merchant only
Text
Text (6)
Encrypted PAN with AES256 encryption
*Return to approved merchant only
First 6 digit of card
*Return to approved merchant only
Text (4) First 4 digit of card
*Return to approved merchant only
Last 4 digit of card
*Return to approved merchant only
Hash value of card
*Return to approved merchant only
Hash function of card:
SHA-1
*Return to approved merchant only
PayDollar PayGate Integration Guide (v3.46) Page 41
mpsAmt mpsCur mpsForeignAmt
Additional output parameters for transaction processing with MPS VAS
Number (12,2)
Text (3)
Number (12,2)
MPS Transaction Amount
Remark: For MPS Enabled only.
MPS Transaction Currency
Remark: For MPS Enabled only.
MPS Transaction Foreign Amount
Remark: For MPS Enabled only. mpsForeignCur mpsRate mSchPayId dSchPayId
Text (3)
Number (12,4)
MPS Transaction Foreign Currency
Remark: For MPS Enabled only.
MPS Exchange Rate: (Foreign / Base) e.g. USD / HKD = 7.77
Remark: For MPS Enabled only.
Additional output parameters for transaction processing with SchedulePay VAS
Number The Master Schedule Payment Id
Number
*For Schedule payment transaction only
The Detail Schedule Payment Id
*For Schedule payment transaction only
mpMemberId mpLatestStaticToken
Additional output parameters for transaction processing with MemberPay VAS
Text Member Id if merchant using memberPay
Text Encrypted static token if merchant using static token mode of
isEwallet eWalletBrand eWalletInd promotionCode
memberPay
Additional output parameters for transaction processing through Third Party eWallet
Text(1) “T” –This is a transaction with Ewallet function
Text
Text
ECO - AMEX Express checkout
MP – MasterPass
VCO – VISA Checkout
Only Text(3) for MasterPass EWallet, The Wallet Indicator is returned by the wallet platform and must be passed to the payment processor/acquirer in the financial authorization transaction.
Additional output parameters for transaction processed with Promopay VAS
promotionRuleCode promotionOriginalAmt installment_period
Text(8);
Text(8);
The promotion campaign code of transaction
*For promotion transaction only
The promotion rule code of transaction
*For promotion transaction only
Number (12,2) The original amount of promotion
*For promotion transaction only
Additional output parameters for installment transaction
Number In number of months
PayDollar PayGate Integration Guide (v3.46) Page 42
installment_firstPayAmt netAmtAfterRewards
Number
rewardsRedeemTotalAmt Number(12,2)
rewardsRedeemType
Number(12,2)
Text
The transaction amount for first installment period
* Return only if the installment bank providing this information
installment_eachPayAmt installment_lastPayAmt
Number
Number
The transaction amount for each installment period
* Return only if the installment bank providing this information
The transaction amount for last installment period
* Return only if the installment bank providing this information
Additional output parameters for transaction processed with rewards program (e.g. Hang Seng Cash Dollar)
Total Net Amount after Redeem Rewards Program
Total Rewards Redeem Amount
rewardsRedeemProgram rewardsRedeemCode1
Number
Text
Rewards Redeem Type
“HASE” – Hang Seng Cash Dollar
Number of redeem programs
Return value is 1,2, or 3
First Rewards Program Redeem Program Code
* Return only when rewardsRedeemProgram return value is 1,2 or 3
rewardsRedeemLabel1
Text
rewardsRedeemAmt1 rewardsBalance1 rewardsRedeemCode2 rewardsRedeemLabel2
Number(12,2)
Text
Text
Text
First Rewards Program Redeem Program Label
* Return only when rewardsRedeemProgram return value is 1,2 or 3
First Rewards Program Redeem Amount
* Return only when rewardsRedeemProgram return value is 1,2 or 3
First Rewards Program Balance
Format
Expired Rewards Balance Expired Date – Expired Balance Amount |
Rewards Balance Expired Date- Rewards Balance Amount
Example: 0115-20.00|0120-30.00
* Return only when rewardsRedeemProgram return value is 1,2 or 3
Second Rewards Program Redeem Program Code
* Return only when rewardsRedeemProgram return value is 2 or 3
Second Rewards Program Redeem Program Label
* Return only when rewardsRedeemProgram return value is 2 or 3
rewardsRedeemAmt2 rewardsBalance2 rewardsRedeemCode3
Number (12,2)
Text
Text
Second Rewards Program Redeem Amount
* Return only when rewardsRedeemProgram return value is 2 or 3
Second Rewards Program Balance
Format
Expired Rewards Balance Expired Date – Expired Balance Amount |
Rewards Balance Expired Date- Rewards Balance Amount
Example: 0115-20.00|0120-30.00
* Return only when rewardsRedeemProgram return value is 2 or 3
Third Rewards Program Redeem Program Code
PayDollar PayGate Integration Guide (v3.46) Page 43
rewardsRedeemLabel3 rewardsRedeemAmt3 rewardsBalance3
Text
Number(12,2)
Text
* Return only when rewardsRedeemProgram return value is 3
Third Rewards Program Redeem Program Label
* Return only when rewardsRedeemProgram return value is 3
Third Rewards Program Redeem Amount
* Return only when rewardsRedeemProgram return value is 3
Third Rewards Program Balance
Format
Expired Rewards Balance Expired Date – Expired Balance Amount |
Rewards Balance Expired Date- Rewards Balance Amount
Example: 0115-20.00|0120-30.00
* Return only when rewardsRedeemProgram return value is 3
The data feed page must meet the following requirement:
-
Print ‘OK’ in HTML when data captured (ACK message)
-
Make Sure to Print ‘OK’ for acknowledge to our system first then do the rest of your system process, if something wrong with your system process (i.e. download photo, ring tone problem) you can send a void request to our system, for more details please refer to our
API guide and contact our technical staff.
Please note that the system only supports either port 80 (HTTP) or 443 (HTTPS) for the data feed page location. And make sure the data feed page location is externally accessible, so that our server can call the data feed page.
* Since the system will read from the data feed page for the word ‘OK’ to determine whether the (data feed) message is delivered or not, if this word does not return successfully, the system will assume the data feed is lost.
PayDollar PayGate Integration Guide (v3.46) Page 44
Data Feed Setup
Merchant can enable or disable the data feed function in the merchant administration site > Profile >
Payment Options.
Sample Data Feed Page
The following is a sample data feed page in JSP.
<%@ page language="java" %>
<%
String successCode = request.getParameter("successcode");
String payRef = request.getParameter("PayRef");
String Ref = request.getParameter("Ref");
// Print out 'OK' to notify us you have received the payment result
out.print("OK"); if ( successCode.equals("0") )
{
// Transaction Accepted
// *** Add the Security Control here, to check the currency, amount with the
// *** merchant’s order reference from your database, if the order exist then
// *** accepted otherwise rejected the transaction.
// Update your database for Transaction Accepted and send email or notify your
// customer.
....
{
} else
// In case if your database or your system got problem, you can send a void transaction request. See API guide for more details
}
// Transaction Rejected
// Update your database for Transaction Rejected
.....
%>
PayDollar PayGate Integration Guide (v3.46) Page 45
The following is a sample data feed page in ASP.
<%@ Language = "VBScript" %>
<%
Dim successCode
Dim payRef
Dim Ref successCode = Request.Form("successcode") payRef = Request.Form("PayRef")
Ref = Request.Form("Ref")
' Print out 'OK' to notify us you have received the payment result
Response.write("OK")
If successCode = "0" Then
' Transaction Accepted
' *** Add the Security Control here, to check the currency, amount with the
' *** merchant’s order reference from your database, if the order exist then
' *** accepted otherwise rejected the transaction.
' Update your database for Transaction Accepted and send email or notify your
' customer.
.....
Else
' In case if your database or your system got problem, you can send a void
' transaction request. See API guide for more details
' Transaction Rejected
' Update your database for Transaction Rejected
.....
End If
%>
PayDollar PayGate Integration Guide (v3.46) Page 46
4 Transaction security by Secure Hash
Introduction
The purpose of Secure Hash is to enhance the transaction message communication security between merchant site and PayDollar. By employing this technology, the integrity of the information and the identity of the signatory can be authenticated with industry standard.
Basic flow of Secure Hash
Merchant Site PayDollar
Transaction information
(Merchant Id, Currency
Code, Amount, Secure
Hash Secret, etc)
SHA-1
Message Digest
Verified Transaction information
=?
Y
Message Digest
(Re-calculated)
SHA-1
Message Digest
(Original)
Transaction information
Transaction information
Pass to
PayDollar
Message Digest
1. For all transaction request send from merchant site to PayDollar, secure hash should be calculated and added to the transaction request to authenticate the integrity of the transaction information and the identity of the merchant.
2. The secure hash is calculated by hashing the following parameters using SHA-1, a cryptographic hash function of industry standard.
- Merchant ID
- Merchant Reference Number
- Currency Code
- Amount
- Payment Type
- Secure Hash Secret
– Assigned by PayDollar to merchant.
3. When the transaction request is received, PayDollar verifies the transaction by comparing the secure hash submitted by merchant and the secure hash re-calculated by other input parameters.
PayDollar PayGate Integration Guide (v3.46) Page 47
If both values are the same, existing payment flow will follows. Or else, the payment request will be dropped. PayDollar will send out an email to notify the merchant through the operation contact.
4. After the transaction is completed, PayDollar will send out datafeed to merchant site. A secure hash will also be calculated by hashing the following parameters using SHA-1,
- Src
- Prc
- Success Code
- Merchant Reference Number
- PayDollar Reference Number
- Currency Code
- Amount
- Payer Authentication Status
- Secure Hash Secret
5. After receiving the datafeed, merchant is suggested to verify the information by comparing the secure hash posted by PayDollar and the secure hash re-calculated by other response parameters.
If the values doesn
’t matched, the datafeed may have been tampered within the redirection process and you are suggested to do further investigation before confirmation the order.
Client library provided by PayDollar
Client library is provided by PayDollar to facilitate the secure hash generation and verification process.
It supports common programming language including Java, PHP, ASP, ASP.NET. The following function calls are supported.
Functions Parameters generateSecureHash
Input
verifyDatafeed
Output
-
Payment Type
-
Secure Hash Secret
-
Secure Hash String
Input
-
Merchant ID
-
Merchant Reference Number
-
Currency Code
-
Amount
-
Src
-
Prc
Descriptions
Create a secure hash using the input parameters and Secure Hash Secret.
(The result secure hash should be included in the payment parameter send to PayDollar.)
Verify the parameters passed from
PayDollar using input parameters and
Secure Hash Secret.
PayDollar PayGate Integration Guide (v3.46) Page 48
Output
-
Success Code
-
Merchant Reference Number
-
PayDollar Reference Number
-
Currency Code
-
Amount
-
Payer Authentication Status
-
Secure Hash Secret
-
Secure Hash from PayDollar
-
True/False
(If the result of the output is true, it is verified that the result is sent from
PayDollar and it is safe to trust the result.)
*Please login to PayDollar Merchant Administration Tools and download client library with sample code under Support Developer Corner.
Generating and verifying Secure Hash manually
Merchant may also generate and verify secure hash manually, without using the client library provided by PayDollar. The following diagrams list out the exact algorithm,
Generate Secure Hash
1. Create the signing data string.
Signing data string = Merchant ID + “|” + Merchant Reference + “|” + Currency Code + “|” +
Amount + “|” + Payment Type + “|” + Secure Hash Secret
2. Secure Hash = SHA-1(Signing data string)
*SHA-1 is the original 160-bit hash function.
Example of Secure Hash Secret gMAVIEGVpqHvxoNEqbrZRuBDFT1B0icW
Example of Signing data string
56100908|1280204670187|344|10|N|gMAVIEGVpqHvxoNEqbrZRuBDFT1B0icW
Example of Secure Hash
13068c0ef09139ea711d36bde16785a2d30b9a30
PayDollar PayGate Integration Guide (v3.46) Page 49
Verifying Secure Hash from PayDollar datafeed
1. Create the verify data string.
Verify data string = Src + “|” + Prc + “|” + Success Code + “|” + Merchant Reference Number + “|”
+ PayDollar Referenc e Number + “|” + Currency Code + “|” + Amount + “|” + Payer
Authentication Status + “|” + Secure Hash Secret
2. Verify Secure Hash = SHA-1 (Verify data string)
3. Extract the secure hash from PayDollar datafeed.
4. Compare the output from step 2 and step 3. If they are equals, return True, else return False.
*SHA-1 is the original 160-bit hash function.
Enable Secure Hash function of your merchant account
a) Please contact PayDollar Service Department ( [email protected]
) to enable the Secure
Hash function of your merchant account. b) You may retrieve the Secure Hash Secret of the merchant account by accessing to the Merchant
Administration Interface,
“Profile” “Payment Information”. The Secure Hash Secret must be kept safely for the function to be effective. c) The Secure Hash Secret will be changed every 2 years to enhance the level of security. d) Once this function is enabled, a valid Secure Hash should be included in all transaction requests.
All transaction without valid Secure Hash will be dropped by PayDollar. e) You may download client library with sample code under,
PayDollar Merchant Administration Tools Support Developer Corner.
PayDollar PayGate Integration Guide (v3.46) Page 50
5 Multi-Currency Processing Service
Introduction
PayDollar by Multi-Currency Processing Service (MPS) is an integrated e-payment transaction processing service that allows your online business of any size to securely accept real-time credit card payments from overseas cardholders and offer them the choice to pay for their goods and services in their billing currency, whilst merchants continue to be settled for transactions in their base currency.
Multi-Currency Processing Service (MPS) provides three different modes as below:
Simple Currency Conversion (SCP)
Multi-Currency Pricing (MCP)
Dynamic Currency Conversion (DCC)
Multi-Currency Processing Service (MPS) facilitates merchant to connect to our network with great flexibility. Merchant can choose the following integration method.
-
Client Post through Browser (e.g. Shopping Cart)
Definition:
“Foreign Currency” means those non-based currency for which the Program is available to merchant from time to time supported and advised by AsiaPay.
“Base Currency” means the currency in which the merchant is settled for payment transactions by its acquirer.
“Conversion Rate” means the foreign currency exchange rate derived by a recognized supplier.
PayDollar PayGate Integration Guide (v3.46) Page 51
Simple Currency Conversion (SCP)
Simple Currency Conversion (SCP) is a value added e-payment processing service that allows your online business to securely accept real-time credit card payments from overseas customers with
foreign currencies in pricing while offering them to pay for goods and services in your preferred
currency. And, your business can continue to collect settlement in base currency as usual.
Simple Currency Conversion (SCP) will convert the foreign currency that posted by merchant to the base currency of merchant according to the conversion rate obtained from our exchange rate provider.
After that, the foreign amount, base amount and the exchange rate will be shown on the Paydollar
’s payment input page.
Transaction Flow
Merchant
Merchant website pricing in foreign currency e.g. USD
Merchant
Merchant settle in base currency e.g. RMB
PayDollar (MPS-SCP)
Convert from foreign currency to base currency e.g. USD -> RMB
Acquiring Bank
Process payment to bank in base currency e.g. RMB
Exchange Rate
Provider
Provide the FX rate e.g. USD/RMB
PayDollar PayGate Integration Guide (v3.46)
Simple Currency Conversion (SCP) Sample Transaction Screen
Payment Amount Conversion and Account Input Page:
Page 52
PayDollar PayGate Integration Guide (v3.46)
Payment Result Page:
Page 53
PayDollar PayGate Integration Guide (v3.46) Page 54
Multi Currency Pricing (MCP)
Multi-Currency Pricing (MCP) is a value added e-payment processing service that allows your online business to securely accept real-time credit card payments from overseas customers while offering them the choice to pay for goods and services in merchant base currency or other worldwide
currencies (e.g. USD). And, your business can continue to collect settlement in local currency as usual.
Multi-Currency Pricing (MCP) will translate the base currency that posted by merchant to the worldwide currency according to the conversion rate. After that, customer can select one of the currencies for payment.
Transaction Flow
1. Customers select the preferred currency for shopping e.g.
Base currency: HKD
Selected currency: SGD
Customer
3. Customer Checkout by foreign currency e.g. SGD17.05
Merchant
7. Bank settles transaction to merchant in base currency. e.g. HKD
4. Merchant submit payment e.g.
Base amount: HKD 100
Foreign amount: SGD17.05
Exchange rate:
1 HKD = 0.1705 SGD
Acquiring Bank
5. Process payment in foreign currency e.g. SGD 17.05
PayDollar
(MPS-MCP)
2. Merchant website get foreign exchange rate for the selected currency by
MPS Exchange Rate
Enquiry API and price in foreign currency e.g. 1 HKD = 0.1705 SGD
6. Process payment to card scheme in foreign currency e.g. SGD 17.05
FX by Bank
Card Scheme
PayDollar PayGate Integration Guide (v3.46) Page 55
MCP Calculation
PayDollar will provide an API to merchant to integrate with their web server. This MPS
Exchange Rate Enquiry API is used for enquiry exchange rate and calculation of MCP foreign amount. The calculation of the MCP amounts will be based on the stored rates at PayDollar; the correct minor unit for that currency will provided.
Rounding
Rate response messages contain
a margined foreign exchange rate with four decimal places.
Merchant will use this rate to calculate the MCP amounts. Merchant will take account of the correct minor unit per currency when calculating the MCP amount. Round half up will be used for rounding.
.
-
Example: Two minor unit currencies
For exchange rate 1HKD=0.0960EUR
HKD 376 = EUR 36.10 (Before Rounding, EUR 36.096)
For exchange rate 1HKD=0.1394CAD
HKD 345 = CAD 48.09 (Before Rounding, CAD 48.093)
-
Example: Zero Minor unit currency
For exchange rate 1HKD=132.3400KRW
HKD 100 = KRW 13234
Rates Expiry
Rate response messages contain an expiry time. Rates are only valid prior to this expiry time.
The transaction will be rejected by PayDollar if the MCP rates have expired. Therefore, merchant should make the rate enquiry every time in each new customer browsing session instead of storing the rate locally.
Tolerance Check
PayDollar has a rate tolerance check on every MCP transaction to make sure that all the
MCP transaction only will be processed within an agreed tolerance level with bank of the latest margined exchange rates.The transaction will be rejected by PayDollar if the tolerance check fails.
PayDollar PayGate Integration Guide (v3.46)
Multi-Currency Pricing (MCP) Sample Transaction Screen
Payment Method Selection Page:
Page 56
Payment Account Input Page: Payment Result Page:
PayDollar PayGate Integration Guide (v3.46) Page 57
Dynamic Currency Conversion (DCC)
Dynamic Currency Conversion (DCC) is a value added e-payment processing service that allows your online business to securely accept real-time credit card payments from overseas customers while offering them the choice to pay for goods and services in the merchant base currency or
cardholder’s home currency. This payment process allows the merchant to show the value of the transaction in the cardholder’s home currency.
Dynamic Currency Conversion (DCC) will translate the base currency that posted by merchant to the cardholder
’s home currency according to the conversion rate. After that, customer can select one of the currencies for payment.
Transaction Flow
Merchant
Merchant website price in base currency e.g. RMB
Merchant
Bank settles transaction to merchant in base currency. e.g. RMB
FX by PayDollar
PayDollar (DCC)
Convert from base currency to cardholder’s home currency e.g. RMB -> USD
Exchange Rate
Provider
Provide the FX rate e.g. RMB/USD
Customer requires to select to pay by which supported currencies (RMB or USD) e.g. Customer selects to pay by home currency USD
Acquiring Bank
Process payment to bank in cardholder’s home currency e.g. USD
PayDollar PayGate Integration Guide (v3.46) Page 58
Dynamic Currency Conversion (DCC) Sample Transaction Screen
DCC Selection Page:
Payment Result Page:
PayDollar PayGate Integration Guide (v3.46) Page 59
6 Functions of Merchant API
Introduction of API functions
There are totally four functions provided:-
-
Capture Authorized Payment
-
Void Accepted Payment
-
Request Refund Accepted Payment
-
Query Payment Status
To connect to our system, you need to post the required parameters by HTML form posting to our merchant API web page and then get back the processing result from that page. You can implement it by server-side html post.
-
URL of Testing Platform: https://test.paydollar.com/b2cDemo/eng/merchant/api/orderApi.jsp
- URL of Production Platform: https://www.paydollar.com/b2c2/eng/merchant/api/orderApi.jsp
Beside, a set of API login ID and password will be assigned to your merchant account for accessing this API function. And it can be obtained from us by sending a request email or directly contact us.
PayDollar PayGate Integration Guide (v3.46) Page 60
Capture Authorized Payment
The aim of this function is to capture the authorized payment.
Definition of Parameters in the Integration Page
Input
/Return
Input
Parameters
(Required Fields are in
Bold typeface)
*Case Sensitive
merchantId
Data Type Expected
Value
Number
Descriptions
The merchant ID we provide
Return loginId password actionType payRef
amount resultCode orderStatus ref payRef amt cur
Text (30)
Text (15)
Text (35)
Number
(12,2)
Number
Text(20)
Text
Number
Number
(12,2)
Number (3)
“Capture”
{“0”,”-1”}
The loginId of merchant API
The password of merchant API
The action type
Payment Reference Number
The amount you want to capture (must be less than or equal to the original amount)
0 - Request Successfully
-1 – Request Failed
The new order status after successfully request
Merchant‘s Order Reference Number
PayDollar transaction reference
Transaction Amt errMsg Text
Transaction Currency
“344” – HKD “840” – USD
“156” – CNY (RMB) “392” – JPY
“036” – AUD “978” – EUR
“124” – CAD
“764” – THB
“410” – KRW
“784” – AED
“446” – MOP
“458” – MYR
“682” – SAR
“096” – BND
“356” – INR
“826” – GBP
“608” – PHP
“554” – NZD
“702” – SGD
“901” – TWD
“360” – IDR
“704” – VND
Error Message
PayDollar PayGate Integration Guide (v3.46) Page 61
Additional output parameters for transaction processed with rewards program (e.g. Hang Seng Cash Dollar)
netAmtAfterRewards rewardsRedeemType
Number(12,
2) rewardsRedeemTotalAmt Number(12,
2)
Text
Total Net Amount after Redeem Rewards
Program
Total Rewards Redeem Amount rewardsRedeemProgram rewardsRedeemCode1 rewardsRedeemLabel1 rewardsRedeemAmt1 rewardsBalance1 rewardsRedeemCode2
Number
Text
Text
Number(12,
2)
Text
Text
Rewards Redeem Type
“HASE” – Hang Seng Cash Dollar
Number of redeem programs
Return value is 1,2, or 3
First Rewards Program Redeem Program
Code
* Return only when rewardsRedeemProgram return value is
1,2 or 3
First Rewards Program Redeem Program
Label
* Return only when rewardsRedeemProgram return value is
1,2 or 3
First Rewards Program Redeem Amount
* Return only when rewardsRedeemProgram return value is
1,2 or 3
First Rewards Program Balance
Format
Expired Rewards Balance Expired Date –
Expired Balance Amount | Rewards
Balance Expired Date- Rewards Balance
Amount
Example: 0115-20.00|0120-30.00
* Return only when rewardsRedeemProgram return value is
1,2 or 3
Second Rewards Program Redeem
Program Code
* Return only when rewardsRedeemProgram return value is 2
PayDollar PayGate Integration Guide (v3.46) rewardsRedeemLabel2 Text rewardsRedeemAmt2 rewardsBalance2 rewardsRedeemCode3 rewardsRedeemLabel3 rewardsRedeemAmt3 rewardsBalance3
Number
(12,2)
Text
Text
Text
Number(12,
2)
Text
Page 62 or 3
Second Rewards Program Redeem
Program Label
* Return only when rewardsRedeemProgram return value is 2 or 3
Second Rewards Program Redeem
Amount
* Return only when rewardsRedeemProgram return value is 2 or 3
Second Rewards Program Balance
Format
Expired Rewards Balance Expired Date –
Expired Balance Amount | Rewards
Balance Expired Date- Rewards Balance
Amount
Example: 0115-20.00|0120-30.00
* Return only when rewardsRedeemProgram return value is 2 or 3
Third Rewards Program Redeem Program
Code
* Return only when rewardsRedeemProgram return value is 3
Third Rewards Program Redeem Program
Label
* Return only when rewardsRedeemProgram return value is 3
Third Rewards Program Redeem Amount
* Return only when rewardsRedeemProgram return value is 3
Third Rewards Program Balance
Format
Expired Rewards Balance Expired Date –
Expired Balance Amount | Rewards
Balance Expired Date- Rewards Balance
Amount
PayDollar PayGate Integration Guide (v3.46) Page 63
Example: 0115-20.00|0120-30.00
* Return only when rewardsRedeemProgram return value is 3
All the return parameters will be concatenated as in html request format by separate with &
Sample return string:
resultCode=0&orderStatus=Accepted&ref=Test&payRef=4780&amt=1.0&cur=344&errM sg=Capture Successfully.
Void Accepted Payment
The aim of this function is to void the accepted payment before settlement. It can be done only before our settlement time.
Definition of Parameters in the Integration Page
Input
/Return
Input
Parameters
(Required Fields are in Bold typeface)
*Case Sensitive
merchantId
Data Type
Number
Expected
Value
Descriptions
The merchant ID we provide to you
Return loginId password actionType payRef
resultCode orderStatus
Text (30)
Text (15)
Text (35)
Number
Text(20)
“Void”
{“0”,”-1”}
The loginId of using merchant API
The password of using merchant API
The action type
Payment Reference Number
0 - Request Successfully
-1 – Request Failed
The new order status after successfully request ref payRef amt cur
Text
Number
Number (12,2)
Number (3)
Merchant‘s Order Reference Number
PayDollar transaction reference
Transaction Amt
Transaction Currency
“344” – HKD “840” – USD
“156” – CNY (RMB) “392” – JPY
“036” – AUD “978” – EUR
“124” – CAD
“764” – THB
“410” – KRW
“784” – AED
“356” – INR
“446” – MOP
“458” – MYR
“682” – SAR
“096” – BND
“702” – SGD
PayDollar PayGate Integration Guide (v3.46) Page 64 errMsg Text
“826” – GBP
“608” – PHP
“554” – NZD
Error Message
“901” – TWD
“360” – IDR
“704” – VND
All the return parameters will be concatenated as in html request format by separate with &
Sample return string:
resultCode=0&orderStatus=Voided&ref=Test&payRef=4780&amt=1.0&cur=344&errMsg
=Void Successfully.
Request Refund for Accepted Payment
The aim of this function is to request refund for accepted payment before 14 days.
Definition of Parameters in the Integration Page
Input
/Return
Parameters
(Required
Fields are in
Bold typeface)
*
Case Sensitive
Data Type Expected Value Descriptions
Input merchantId
Number The merchant ID we provide to you
loginId
The loginId of using merchant API
(Optional
Input)
Return password actionType payRef
amount resultCode
Text (30)
Text (15)
Text (35)
Number (12,2)
Number
The password of using merchant API
“RequestRefund” The action type
Payment Reference Number
The amount you want to refund (must be less than or equal to the original amount)
{“0”,”-1”} 0 - Request Successfully
-1 – Request Failed orderStatus ref payRef amt cur
Text(20)
Text
Number
Number (12,2)
Number (3)
The new order status after successfully request
Merchant‘s Order Reference Number
PayDollar transaction reference
Transaction Amt
Transaction Currency
“344” – HKD “840” – USD
“156” – CNY (RMB) “392” – JPY
“036” – AUD “978” – EUR
PayDollar PayGate Integration Guide (v3.46) Page 65
Return
Input
/Return
errMsg Text
“124” – CAD
“764” – THB
“410” – KRW
“784” – AED
“356” – INR
“826” – GBP
“608” – PHP
“554” – NZD
Error Message
“446” – MOP
“458” – MYR
“682” – SAR
“096” – BND
“702” – SGD
“901” – TWD
“360” – IDR
“704” – VND
All the return parameters will be concatenated as in html request format by separate with &
Sample return string:
resultCode=0&orderStatus=RequestRefund&ref=Test&payRef=4780&amt=1.0&cur=344
&errMsg=Request successfully and we will process it later.
Query payment status
The aim of this function is to query the payment status on an order by either Merchant Reference
Number or Payment Reference Number with XML
Definition of Parameters in the Integration Page
Input
Parameters
(Required Fields are in Bold typeface)
*Case Sensitive merchantId loginId password actionType orderRef payRef
orderStatus
Data Type Expect ed
Value
Number
Text (30)
Text (15)
Text (35)
Text (35)
Text(20)
Descriptions
The merchant ID we provide to you
The loginId of using merchant API
The password of using merchant API
“Query” The action type
Merchant Reference Number
Payment Reference Number
The new order status after successfully request ref payRef mpsMode
Text
Number
Text(3)
Merchant‘s Order Reference Number
PayDollar transaction reference
The Multi – Currency Processing Service (MPS) Mode:
“NIL” or not provide – Disable MPS (No currency
PayDollar PayGate Integration Guide (v3.46) amt cur prc src ord holder sourceIp ipCountry payMethod cardIssuingCountry airline_ticketNumber errMsg txTime
Number
(12,2)
Number (3)
Number
Number
Number
Text
Text (15)
Text (3)
Text (10)
Text (3)
Text
Text
Text
Page 66 conversion)
“SCP” – Enable MPS with ‘Simple Currency Conversion’
“DCC” – Enable MPS with ‘Dynamic Currency Conversion’
“MCP” – Enable MPS with ‘Multi Currency Pricing’
Transaction Amt
Transaction Currency i.e.
“344” – HKD “840” – USD
“156” – CNY (RMB) “392” – JPY
“036” – AUD “978” – EUR
“124” – CAD
“764” – THB
“410” – KRW
“784” – AED
“446” – MOP
“458” – MYR
“682” – SAR
“096” – BND
“356” – INR
“826” – GBP
“608” – PHP
“554” – NZD
“702” – SGD
“901” – TWD
“360” – IDR
“704” – VND
Primary response code
Secondary response code
Bank Reference Number
The Holder Name of the Payment Account
IP address of payer
Country of payer ( e.g. HK)
- if country is on high risk country list, an asterisk will be shown (e.g. MY*)
Payment method (e.g. VISA, Master, JCB, AMEX)
Card Issuing Country Code ( e.g. HK)
- if country is on high risk country list, an asterisk will be shown (e.g. MY*)
- if the card issuing country of credit card is undefined,
“- -“ will be shown.
Please refer to Appendix A “List of Country Code” for detail
Air Ticket Number
Error Message transaction time
PayDollar PayGate Integration Guide (v3.46) successcode
(YYYY-MM-
DD
HH:MI:SS.0
)
Number remark authId eci payerAuth
Text (200)
Text
Text (2)
Text (1)
Page 67
0- succeeded, 1- failure, Others – error
*Only return for order status “Accepted”, “Authorized”,
“Rejected”
A remark field for you to store additional data that will not show on the transaction web page
Approval Code
ECI value (for 3D enabled Merchants)
ECI Value
05
06
07
ECI Value
00
01
02
VISA / JCB / AMEX
Definition
Both cardholder and card issuing bank are
3D enabled. 3D card authentication is successful
Either cardholder or card issuing bank is not
3D enrolled. 3D card authentication is unsuccessful, in sample situations as:
1. 3D cardholder not enrolled
2. Card issuing bank is not 3-D Secure ready
Authentication is unsuccessful or not attempted. The credit card is either a non-3D card or card issuing bank does not handle it as a 3D transaction
MasterCard
Definition
Authentication is unsuccessful or not attempted. The credit card is either a non-3D card or card issuing bank does not handle it as a 3D transaction
Either cardholder or card issuing bank is not
3D enrolled. 3D card authentication is unsuccessful, in sample situations as:
1. 3D Cardholder not enrolled
2. Card issuing bank is not 3-D Secure ready
Both cardholder and card issuing bank are
3D enabled. 3D card authentication is successful
Remark: String value “null” will be sent when the transaction is rejected by PayDollar PayAlert or the transaction doesn’t has ECI value.
Payer Authentication Status
Y - Card is 3-D secure enrolled and authentication succeeds.
N - Card is 3-D secure enrolled but authentication fails.
P - 3-D Secure check is pending
A - Card is not 3-D secure enrolled yet
PayDollar PayGate Integration Guide (v3.46) Page 68 channelType
MerchantId alertCode
Text (3)
U - 3D-secure check is not processed.
Channel Type:
SPC – Client Post Through Browser
DPC – Direct Client Side Connection
DPS – Server Side Direct Connection
SCH – Schedule Payment
DPL – Direct Payment Link Connection
MOT – Moto Connection
RTL – RetailPay Connection
BPP – Batch Payment Process
MOB – Mobile Payment Connection
The merchant Id of transaction Number
Text (50) The Alert Code e.g. R14 –IP Country not match with Issuing Country
R 9 - In high risk country list
Additional output parameters for card information
expMonth expYear panFirst6 panFull
Text (MM)
Text (YYYY)
Text (6)
Text
Expiry month of the card
*Return to approved merchant only
Expiry year of the card
*Return to approved merchant only
First 6 digit of card
*Return to approved merchant only
Encrypted PAN with AES256 encryption
*Return to approved merchant only panFirst6 panFirst4 panLast4 accountHash
Text (6)
Text (4)
Text (4)
Text
First 6 digit of card
*Return to approved merchant only
First 4 digit of card
*Return to approved merchant only
Last 4 digit of card
*Return to approved merchant only
Hash value of card
*Return to approved merchant only accountHashAlgo Text Hash function of card
*Return to approved merchant only
Additional output parameters for transaction processed with MPS VAS
mpsAmt Number
(12,2)
MPS Transaction Amount
Remark: For MPS Enable only.
PayDollar PayGate Integration Guide (v3.46) Page 69 mpsCur mpsForeignAmt
Text (3)
Number
(12,2)
Text (3)
MPS Transaction Currency
Remark: For MPS Enable only.
MPS Transaction Foreign Amount
Remark: For MPS Enable only.
mpsForeignCur MPS Transaction Foreign Currency
Remark: For MPS Enable only.
mpsRate Number
(12,4)
MPS Exchange Rate: (Foreign / Base) e.g. USD / HKD = 7.77
Remark: For MPS Enable only.
Additional output parameters for transaction processed with SchedulePay VAS
mSchPayId Number The Master Schedule Payment Id
*For Schedule payment transaction only dSchPayId Number The Detail Schedule Payment Id
*For Schedule payment transaction only
Additional output parameters for transaction processed with MemberPay VAS
mpMemberId Text Member Id if merchant using memberPay
Additional output parameters for transaction processed with Third Party eWallet
isEwallet Text(1) “T” –This is a transaction with Ewallet function eWalletBrand Text ECO - AMEX Express checkout
MP – MasterPass
VCO – VISA Checkout
Additional output parameters for transaction processed with Promopay VAS
promotionCode promotionRuleCode promotionOriginalAmt
Text(8);
Text(8);
Number
(12,2)
The promotion campaign code of transaction
*For promotion transaction only
The promotion rule code of transaction
*For promotion transaction only
The original amount of promotion
*For promotion transaction only
Additional output parameters for transaction processed with Installment
installment_period installment_firstPayAmt installment_eachPayAmt
Number
Number
Number
In number of months
The transaction amount for first installment period
* Return only if the installment bank providing this information
The transaction amount for each installment period
* Return only if the installment bank providing this information
PayDollar PayGate Integration Guide (v3.46) Page 70 installment_lastPayAmt Number The transaction amount for last installment period
* Return only if the installment bank providing this information
Additional output parameters for transaction processed with rewards program (e.g. Hang Seng Cash Dollar)
netAmtAfterRewards Total Net Amount after Redeem Rewards Program rewardsRedeemTotalAmt rewardsRedeemType
Number(12,
2)
Number(12,
2)
Text
Total Rewards Redeem Amount rewardsRedeemProgram rewardsRedeemCode1 rewardsRedeemLabel1 rewardsRedeemAmt1 rewardsBalance1 rewardsRedeemCode2 rewardsRedeemLabel2 rewardsRedeemAmt2
Number
Text
Text
Number(12,
2)
Text
Text
Text
Number
(12,2)
Rewards Redeem Type
“HASE” – Hang Seng Cash Dollar
Number of redeem programs
Return value is 1,2, or 3
First Rewards Program Redeem Program Code
* Return only when rewardsRedeemProgram return value is
1,2 or 3
First Rewards Program Redeem Program Label
* Return only when rewardsRedeemProgram return value is
1,2 or 3
First Rewards Program Redeem Amount
* Return only when rewardsRedeemProgram return value is
1,2 or 3
First Rewards Program Balance
Format
Expired Rewards Balance Expired Date – Expired Balance
Amount | Rewards Balance Expired Date- Rewards Balance
Amount
Example: 0115-20.00|0120-30.00
* Return only when rewardsRedeemProgram return value is
1,2 or 3
Second Rewards Program Redeem Program Code
* Return only when rewardsRedeemProgram return value is
2 or 3
Second Rewards Program Redeem Program Label
* Return only when rewardsRedeemProgram return value is
2 or 3
Second Rewards Program Redeem Amount
* Return only when rewardsRedeemProgram return value is
2 or 3
PayDollar PayGate Integration Guide (v3.46) Page 71 rewardsBalance2 rewardsRedeemCode3 rewardsRedeemLabel3 rewardsRedeemAmt3 rewardsBalance3
Text
Text
Text
Number(12,
2)
Text
All the return parameters will be in XML format
Sample return XML file:
<records>
<record>
<orderStatus>Accepted</orderStatus>
<ref>Test</ref>
<payRef>1390545</payRef>
<mpsMode>NIL</mpsMode>
<amt>1</amt>
<cur>344</cur>
<prc>0</prc>
<src>0</src>
Second Rewards Program Balance
Format
Expired Rewards Balance Expired Date – Expired Balance
Amount | Rewards Balance Expired Date- Rewards Balance
Amount
Example: 0115-20.00|0120-30.00
* Return only when rewardsRedeemProgram return value is
2 or 3
Third Rewards Program Redeem Program Code
* Return only when rewardsRedeemProgram return value is
3
Third Rewards Program Redeem Program Label
* Return only when rewardsRedeemProgram return value is
3
Third Rewards Program Redeem Amount
* Return only when rewardsRedeemProgram return value is
3
Third Rewards Program Balance
Format
Expired Rewards Balance Expired Date – Expired Balance
Amount | Rewards Balance Expired Date- Rewards Balance
Amount
Example: 0115-20.00|0120-30.00
* Return only when rewardsRedeemProgram return value is
3
PayDollar PayGate Integration Guide (v3.46)
<ord>00004295104</ord>
<holder>Holder Name</holder>
<authId>123456</authId>
<alertCode>R14</alertCode>
<remark>Test</remark>
<eci>05</eci>
<payerAuth>Y</payerAuth>
<sourceIp>202.65.133.23</sourceIp>
<ipCountry>HK</ipCountry>
<payMethod>VISA</payMethod>
<panFull>4918914107195005</panFull> or
<panFirst4>4918</panFirst4>
<panLast4>5005</panLast4>
<expMonth>07</expMonth>
<expYear>2015</expYear>
<cardIssuingCountry>HK</cardIssuingCountry>
<channelType>SPN</channelType>
<txTime>2014-07-01 00:00:00.0</txTime>
<accountHash></accountHash>
<accountHashAlgo></accountHashAlgo>
<mpsAmt></mpsAmt>
<mpsCur></mpsCur>
<mpsForeignAmt></mpsForeignAmt>
<mpsForeignCur></mpsForeignCur>
<mpsRate></mpsRate>
<installment_period></installment_period>
<installment_firstPayAmt></installment_firstPayAmt>
<installment_eachPayAmt></installment_eachPayAmt>
<installment_lastPayAmt></installment_lastPayAmt>
<airline_ticketNumber></airline_ticketNumber>
<successcode>0</successcode>
<mSchPayId></mSchPayId>
<dSchPayId></dSchPayId>
<MerchantId>123456</MerchantId>
<promotionCode></promotionCode>
<promotionRuleCode></promotionRuleCode>
<promotionOriginalAmt></promotionOriginalAmt>
<mpMemberId></mpMemberId>
Page 72
PayDollar PayGate Integration Guide (v3.46)
<isEWallet>T</isEWallet>
<eWalletBrand>EOC</eWalletBrand>
<panFirst6></panFirst6>
<errMsg>Query Successfully</errMsg>
<!-- more records … … … -->
</records>
</record>
Page 73
PayDollar PayGate Integration Guide (v3.46) Page 74
Query Request Log
The aim of this function is to query the payment request log.
Definition of Parameters in the Integration Page
Input
/Return
Input
Parameters
(Required Fields are in Bold typeface)
*Case Sensitive merchantId loginId password actionType
Data Type
Number
Text (30)
Text (15)
orderRef
Text (35)
Expected
Value
“QueryRequ estLog”
(Optional
Input)
(Optional
Input)
periodType
Text (1)
(Optional
Input)
queryDate
requestDate
Number(8)
Date
Descriptions
The merchant ID we provide to you
The loginId of using merchant API
The password of using merchant API
The action type
Merchant Reference Number
Period Type:
M – Query by month
D – Query by Day
Query date format:
MMYYYY - periodType is M
DDMMYYYY - periodType is D
The request date of transaction
Return
sessionId ref cur
Number
Number(15)
Number (3)
The sessionID of transaction
Merchant Reference Number
Transaction Currency i.e.
“344” – HKD “840” – USD
“156” – CNY (RMB) “392” – JPY
“036” – AUD “978” – EUR
“124” – CAD
“764” – THB
“410” – KRW
“784” – AED
“446” – MOP
“458” – MYR
“682” – SAR
“096” – BND
“356” – INR
“826” – GBP
“608” – PHP
“554” – NZD
“702” – SGD
“901” – TWD
“360” – IDR
“704” – VND
PayDollar PayGate Integration Guide (v3.46) Page 75 amt payerIp ipCountry deviceBrowser deviceOS deviceMoblie channelType pageCode
Number (12,2)
Text(15)
Text(3)
Text(50)
Text(50)
Text(1)
Text(5)
Text(10)
All the return parameters will be in XML format
Sample return XML file:
<records>
<record>
<requestDate>2016-01-20 10:17:19</requestDate>
<sessionId>1135335</sessionId>
<ref>Test</ref>
<cur>344</cur>
<amt>1</amt>
<payerIp>192.168.77.28</payerIp>
<ipCountry/>
<deviceBrowser>Chrome</deviceBrowser>
Transaction Amount
IP address of payer
Country of payer ( e.g. HK)
- if country is on high risk country list, an asterisk will be shown (e.g. MY*)
Device Browser
Device Operation System
Device Mobile
Channel Type
SPN - Client post through browser
SPV - Client post through browser
DPS - Direct Server Side
DPC - Direct Client Side pageCode of payment page
CPV - 3D Verify Page
CPVT - 3D Verify Page
CPVR - 3D Verification Result Page
CPVRT - 3D Verification Result Page
CPC - Result Page
DPC - Payment Processing
DPR - Result Redirect Page
CPFD - DCC Selection Page
PayDollar PayGate Integration Guide (v3.46)
<deviceOS/>
<deviceMoblie>F</deviceMoblie>
<channelType>SPC</channelType>
<pageCode>CPF</pageCode>
</record>
<!-- more records … … … -->
</records>
Page 76
PayDollar PayGate Integration Guide (v3.46) Page 77
Settlement report request
The aim of this function is to generate settlement report.
Definition of Parameters in the Integration Page
Input
/Return
Input
Parameters
(Required Fields are in Bold typeface)
*Case Sensitive merchantId loginId password startDate
Data Type
Number
Text (30)
Text (15)
Number(14)
Expected
Value
(Optional
Input)
endDate queryType
Number(14)
Text(1)
DDMMYYYY hhmmss
DDMMYYYY hhmmss
O/S
Return
authdate capturedate batchid settledate payref merref authid cur amt orderstatus terminal bankmid
Number(14)
Number(14)
Number(15)
Number(14)
Number (14)
Text(30)
Text(6)
Number
Number(12,2)
Text
Text(100)
Text(100)
Descriptions
The merchant ID we provide to you
The loginId of using merchant API
The password of using merchant API
Report Start Date
Report End Date
Report Type:
O - Use date/time of the authorization or sales transaction to generate report
(default)
S - Use date/time of the settlement transaction to generate report and only query transactions that settleflag is T
The date/time of the authorization or sales transaction
The date/time of the captured (after authorize) transaction
Settlement batch ID
The date/time of the settlement transaction
Unique number in Payment platform
Merchant order reference number
Approval code
Bank Return Status code 2
Transaction Amount
The Holder Name of the Payment Account
Bank Terminal id
Bank Merchant id
PayDollar PayGate Integration Guide (v3.46) Page 78 settleflag src prc bank bankref traceno currency remark errMsg
Text
Text
Text
Text
Text boolean
Text
Text
Text
{“T”,”F”}
URL of Testing Platform:
https://test.paydollar.com/b2cDemo/GenTxnXML
URL of Production Platform:
https://www.paydollar.com/b2c2/GenTxnXML
All the return parameters will be in XML format
Sample return XML file:
<?xml version=”1.0” encoding=’UTF-8”?>
<reports>
<report>
<authdate>24092005223000</authdate>
<capturedate>24092005230000</capturedate>
<batchid>123456</batchid>
<!-- more parameter … … … -->
</report>
<!-- more reports … … … -->
</reports>
Settled or not
Secondary response code
Primary response code
Eg.CITIBANK,PPS
Bank reference number
System trace number
Order currency
Order Remark
Error Message
PayDollar PayGate Integration Guide (v3.46) Page 79
Sample source code of HTML server-side posting on Java
As different type of programming language have different syntax, so we just propose one method to connect to our merchant API page. To connect, we suggest you to use server side posting:
Sample code for serverpost by using java:
// SET UP THE POST DATA
String postData =
"merchantId=1&loginId=testing&password=pwd&payRef=123456&actionType=Capture&amount=
1&”;
// POST TO PAYMENT PAGE
strResult = ServerPost.post(postData, http://test.paydollar.com:8080/b2cDemo/eng/merchant/api/orderApi.jsp );
// EXTRACT THE PAYMENT STATUS FROM STRRESULT
………
// FINISH
************************************************************************ public class ServerPost
{
static public String post( String ip_postData, String ip_pageUrl)
{
try
{
String strResult = "";
URL url = new URL(ip_pageUrl);
URLConnection con = url.openConnection(); //from secure site
if(con instanceof com.sun.net.ssl.HttpsURLConnection){
((com.sun.net.ssl.HttpsURLConnection)con).setSSLSocketFactory
((SSLSocketFactory)SSLSocketFactory.getDefault());
}
con.setDoOutput(true);
con.setDoInput(true);
// Set request headers for content type and length
con.setRequestProperty(
"Content-type",
"application/x-www-form-urlencoded");
PayDollar PayGate Integration Guide (v3.46) Page 80
con.setRequestProperty(
"Content-length",
String.valueOf(ip_postData.length()));
// Issue the POST request
OutputStream outStream = con.getOutputStream();
outStream.write(ip_postData.getBytes());
outStream.flush();
// Read the response
InputStream inStream = con.getInputStream();
while (true)
{
int c = inStream.read();
if (c == -1)
break;
strResult = strResult + String.valueOf((char)c);
}
inStream.close();
outStream.close();
return strResult;
}
catch (Exception e)
{
System.out.print(e.toString());
return null;
}
}
}
All the source code in this document are the property of AsiaPay (HK) Limited. Any use, modification and adaptation to the code should be reported to and approved by AsiaPay
(HK) Limited. AsiaPay (HK) Limited do not have any liability in any lose to the party using the source code.
PayDollar PayGate Integration Guide (v3.46) Page 81
7 Exceptional Transaction Handling
This section explains various scenarios of transactions, other than good and successful transactions that may occur.
A) Unsuccessful data feed
This may occur if
1. Data feed URL is wrongly set up; or
2. Connection between PayDollar and merchant server is lost; or
3. Server of either side cannot process data feed correctly.
Since the bank has already determined the transaction status, the transaction is completed. Merchant can confirm the status by
1. Log on to Merchant Administration and retrieve the corresponding transactions in Transaction
Details Report; or
2. Query the transaction status by using Merchant API.
B) Unsuccessful redirection to successUrl / failUrl / cancelUrl
This may occur if
1. Wrong / invalid returned URLs are set in the integration; or
2. Connection between the customer and merchant server is lost; or
3. Customer’s computer hangs / restarts / loses power.
Since the bank has already determined the transaction status, the transaction is completed. Merchants should educate the customer to contact the merchant and confirm the transaction status with them when such case happens.
C) Incomplete 3D authentication transactions by customer
This may occur if
1. The customer closes the browser when he / she is required to enter 3D authentication information at issuer bank webpage; or
2. The customer cannot access 3D authentication page of issuer bank due to various reasons, e.g. disabled cookies.
PayDollar PayGate Integration Guide (v3.46) Page 82
The transaction status remains “Pending_3D”, and payer authentication status remains “P”. In
PayDollar production, a schedule job is set up to change the status from “Pending_3D” to “Rejected” from time to time. The PRC / SRC pair is also updated to 3 / 9999. Data feed is also sent out in the schedule job for these unsuccessful transactions.
Sometimes customers may return to PayDollar payment page / merchant site by pressing the ‘Back’ button of the browser and try again. The same merchant reference number is used for these retry transactions. Thus merchants may receive multiple data feeds regarding transactions with the same merchant reference number, with one success transaction followed by failed transactions. Merchants can choose to ignore the fail transactions with the same merchant reference once a successful transaction has been processed.
D) Incomplete 99BILL / ALIPAY / CHINAPAY / PPS / TENPAY / SCB / BAY / KTB /
UOB / TMB / BBL iBanking / UPOP / M2U / CIMBCLICK / WECHAT transactions by customer
This may occur if
1. The customer closes the browser when he / she is required to enter 99BILL / ALIPAY / CHINAPAY
/ PPS / TENPAY / WECHAT account information at respective site; or
2. The customer cannot access 99BILL / ALIPAY / CHINAPAY / PPS / TENPAY / WECHAT / SCB /
BAY / KTB / UOB / TMB / BBL iBanking / UPOP page due to various reasons, e.g. disabled cookies or 99BILL / ALIPAY / CHINAPAY / PPS / TENPAY / SCB / BAY / KTB / UOB / TMB / BBL iBanking / UPOP host is down.
The transaction status remains “Pending”. In production environment a schedule job is set up in our servers to change the status from “Pending” to “Rejected” from time to time. Data feed is also sent out in the schedule job for these unsuccessful transactions.
Sometimes customers may return to PayDollar payment page by pressing the ‘Back’ button of the browser and try again. The same merchant reference number is used for these retry transactions.
Thus merchants may receive multiple data feeds regarding transactions with the same merchant reference number, with one success transaction followed by failed transactions. Merchants can choose to ignore the fail transactions with the same merchant reference once a successful transaction has been processed.
PayDollar PayGate Integration Guide (v3.46) Page 83
8 Frequently Asked Questions
System Setup
1. What programming languages are supported in the Integration?
HTML, ASP, PHP, JSP / Servlet, and any other server side scripting languages that support
HTTP protocol.
2.
Is there any consideration on firewall issues on Merchants side?
Merchants have to open HTTP port for data feed handling, i.e. port 80(HTTP) / port 443(HTTPS).
3.
Does PayDollar PayGate support any shopping cart software?
Technically yes. You are however required to know how to deploy the shopping cart software to work for your requirements. Samples include OSCommerce .
Common Problems
4.
During the integration I encounter the error message “Your payment service is not active.”
Make sure you are using the corresponding pair of merchant ID and integration URL.
If you are using the TESTING URL (test.paydollar.com), the TESTING merchant ID, a 6-digits number, should be used. If you are using the PRODUCTION URL ( www.paydollar.com
),
PRODUCTION merchant ID should be used, which is 4-digits number or 8-digits number.
5.
During the integration I encounter the error message “CurrCode is incorrect.”
One PayDollar merchant ID only allows one currency. Make sure you are using the corresponding currency for the merchant ID in the HTML form. To apply multi-currencies, please contact our salespersons to open additional merchant accounts.
6.
Can I make use of the calling of successUrl / failUrl / cancelUrl solely to determine the transaction status?
Customer may call the successUrl / failUrl / cancelUrl (with the merchant reference appended) in the browser and pretend the transaction is completed. Thus we recommend merchants to use data feed to determine the transaction status. Since PayDollar and the merchant are the only parties with the knowledge of the data feed URL, it is safe to determine the status by using the data feed.
7.
What is the difference between the parameters: Ref (orderRef), PayRef and Ord?
Ref (orderRef) is merchant’s own order reference number. This comes from merchant’s database or invoices.
PayRef is PayDollar order reference number. It is unique among all orders from different merchants in PayDollar system.
Ord is bank reference number. It is generated by acquiring banks.
To seek help on transactions, please provide PayRef (preferred) or Ref to us.
PayDollar PayGate Integration Guide (v3.46) Page 84
Data Feed
8. How do I make use of the data feed?
You may make use of the data passed from PayDollar in the data feed to update your database records regarding the transaction. Since merchant reference can be retrieved from data feed, you can make use of this key to update the corresponding transaction records of your system(s).
9.
How to set up data feed in my merchant account?
You can enable or disable the data feed function in the merchant administration site > Profile >
Payment Options.
10. How do I know if the data feed is set up properly?
You may go to transaction details in the merchant administration site, select output columns
“Data Feed Ind.” and “Data Feed Return” and view the transaction records. If the data feed indicator is “T”, the data feed is set up properly. However, if the indicator is “F”, you may look at the “Data Feed Return” column and see what the error is. You may ask our technical team to assist when it relates to data feed setup.
In addition, you can enable “Data Feed Failure Alert by Email” in the merchant administration site
> Profile > Payment Options. When it is enabled, and if there is any failure on calling Merchant’s data feed, an email will be sent to Merchant’s technical contact email account.
11. What programming languages can be used in writing data feed page?
Any programming languages that can handle HTTP Post request parameters can be used.
12. How do I write the data feed page? Should the data feed page display anything on the
screen?
The data feed page contains 3 parts, receive HTTP parameters, print ‘OK’ and your own backend processing (e.g. update database, send email to customer, etc.).
The data feed page is called in the back end. It should not display anything, i.e. no HTML code.
However it should respond with the word ‘OK’ to let our server know that you have successfully received the data feed.
13. How do I know for sure the data feed is calling from PayDollar?
You may check if the data feed HTTP request is calling from these IP ranges.
Testing: 58.64.198.68
– 58.64.198.94
Production: 203.105.16.160
– 203.105.16.191
14. There is data feed error return
“javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:
No trusted certificate found”
Our server cannot recognize your SSL certificate provider. Please contact our I.T. team to resolve the issues. When necessary you will be asked to provide your CA root certificate.
PayDollar PayGate Integration Guide (v3.46) Page 85
15. Auto retry failed datafeed
(Applicable for merchants who have registered the datafeed link and retry function)
Sometimes, you may not be able to receive the datafeed response due to reasons like internet connection issue, incorrect datafeed URL being used, etc.
After enabling th e “Auto retry failed data feed”, datafeed will be resent:
(1) immediately after the original attempt is failed, and
(2) 15 minutes after if (1) is also failed
3-D Secure Authentication
16. Can I use FRAMES in designing our website?
Some card issuing banks require Cookies when entering their 3D authentication page. Full page
(i.e. no FRAMES) is required in this situation.
Furthermore, the SSL indicator should be displayed somewhere on the browser window to let customers know that the site is secure enough to enter sensitive information such as credit card number. When FRAMES is used, the SSL indicator may not appear if the page required SSL is inside the frame window.
Therefore, it is suggested not to use FRAMES after the HTML form is submitted to PayDollar.
You may consider opening another browser window to handle payment transactions.
17. Can I ask for disabling 3-D Secure authentication for my transactions?
This is sub ject to bank’s sole decision. You may be asked for providing business information in order to help the bank risk management team to evaluate your company profile before special approval. Nonetheless, you should be well aware the serious consequences of fraudulent non-3D transactions.
Data Security
18. Can I store the credit card information of my customers?
We recommend our merchants NOT to store credit card information, especially credit card number, expiry date and CVV2 / CVC2. Even if absolute necessary, please ensure to encrypt the data compliant to Visa A.I.S. (Account Information Security) program. You may refer to the following webpage:
http://www.visa-asia.com/ap/sea/merchants/riskmgmt/ais_what.shtml
.
Credit card information stored in PayDollar complies with Visa A.I.S. and MasterCard SDP programs.
Support
19. Who should we contact in case we encounter problems during testing and in production?
You can contact our I.T. team by either of the following ways. a. Email: [email protected]
b. Technical hotline: (852)
– 82267981 (852) – 31731990
PayDollar PayGate Integration Guide (v3.46) Page 86
APPENDIX A
PayDollar Payment Response Code
PayDollar Payment Response Code is composed of the following items:
1. Primary Response Code (PRC)
The primary response code is the main response code used for identifying the authorization status of a payment transaction.
The following table provides a summary of all the response codes which may be returned:
-2
-8
-9
PRC
0
1
3
-1
Description
Success
Rejected by Payment Bank
Rejected due to Payer Authentication Failure (3D)
Rejected due to Input Parameters Incorrect
Rejected due to Server Access Error
Rejected due to PayDollar Internal/Fraud Prevention Checking
Rejected by Host Access Error
PayDollar PayGate Integration Guide (v3.46) Page 87
2. Secondary Response Code (SRC)
The secondary response code provides the detail description corresponding to the primary response code.
List of Response Code
Bank’s Response Code
PRC
1
1
SRC
01
02
Bank Decline
Bank Decline
Description
Input Error
Other
Other
Other
Other
Other
Other
Other
Other
Other
Other
Other
Other
Other
Other
Other
Bank Decline
Other
Other
Input Error
Other
Other
Other
Other
Lost / Stolen Card
Lost / Stolen Card
Bank Decline
78
80
89
91
94
95
54
55
58
76
77
96
99
2000
14
19
25
30
31
41
43
51
03
04
05
12
13
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
PayDollar PayGate Integration Guide (v3.46)
Response Code From PayDollar
PRC S
PRC
-8
-8
-8
-8
-8
-8
-8
-8
-8
-8
-8
-8
-8
-8
-8
-8
SRC
999
1000
2000
2001
2002
2003
2004
2005
2006
2007
2008
2011
2012
2013
2014
2016
-8
-8
-8
-8
-8
-8
-8
-8
-8
-8
RC Description
-8
2017
2018
2019
2020
2021
2022
2023
2099
2031
2032
2033
Page 88
Description
Other
Skipped transaction
Blacklist error
Blacklist card by system
Blacklist card by merchant
Black IP by system
Black IP by merchant
Invalid cardholder name
Same card used more than 6 times a day
Duplicate merchant reference no.
Empty merchant reference no.
Other
Card verification failed
Card already registered
High risk country
Same payer IP attempted more than pre-defined no. a day.
Invalid card number
Multi-card attempt
Issuing Bank not match
Single transaction limit exceeded
Daily transaction limit exceeded
Monthly transaction limit exceeded
Invalid channel type
Non testing card
System rejected(TN)
System rejected(TA)
System rejected(TR)
PayDollar PayGate Integration Guide (v3.46)
Other Response Code
PRC
0
3
SRC
0 Success
Description
Any Number Payer Authentication Fail
-1
-2
-9
-1
-2
-9
Input Parameter Error
Server Access Error
Host Access Error
List of Country Code
This list shows the country names and risk level of individual country code.
Country Code
A2
AD
AE
AF
AN
AO
AP
AQ
AR
AS
AG
AI
AL
AM
AT
AU
AW
AZ
BA
BB
BD
BE
Satellite Provider
Andorra
Country Name
United Arab Emirates
Afghanistan
Antigua and Barbuda
Anguilla
Albania
Armenia
Netherlands Antilles
Angola
Asia/Pacific Region
Antarctica
Argentina
American Samoa
Austria
Australia
Aruba
Azerbaijan
Bosnia and Herzegovina
Barbados
Bangladesh
Belgium
Page 89
High risk
PayDollar PayGate Integration Guide (v3.46)
CK
CL
CM
CN
CO
CR
CU
CV
CY
CZ
DE
DJ
DK
DM
DO
DZ
CF
CG
CH
CI
BY
BZ
CA
CD
BN
BO
BR
BS
BT
BV
BW
BF
BG
BH
BI
BJ
BM
Burkina Faso
Bulgaria
Bahrain
Burundi
Benin
Bermuda
Brunei Darussalam
Bolivia
Brazil
Bahamas
Bhutan
Bouvet Island
Botswana
Belarus
Belize
Canada
Congo
Central African Republic
Congo
Switzerland
Cote D'Ivoire
Cook Islands
Chile
Cameroon
China
Colombia
Costa Rica
Cuba
Cape Verde
Cyprus
Czech Republic
Germany
Djibouti
Denmark
Dominica
Dominican Republic
Algeria
Page 90
**
**
PayDollar PayGate Integration Guide (v3.46)
GM
GN
GP
GQ
GR
GT
GU
GW
GY
HK
HM
HN
HR
HT
HU
ID
GF
GH
GI
GL
GA
GB
GD
GE
EU
FI
FJ
FK
FM
FO
FR
EC
EE
EG
ER
ES
ET
Ecuador
Estonia
Egypt
Eritrea
Spain
Ethiopia
Europe
Finland
Fiji
Falkland Islands (Malvinas)
Micronesia
Faroe Islands
France
Gabon
United Kingdom
Grenada
Georgia
French Guiana
Ghana
Gibraltar
Greenland
Gambia
Guinea
Guadeloupe
Equatorial Guinea
Greece
Guatemala
Guam
Guinea-Bissau
Guyana
Hong Kong
Heard Island and McDonald Islands
Honduras
Croatia
Haiti
Hungary
Indonesia
Page 91
**
**
**
**
PayDollar PayGate Integration Guide (v3.46)
LI
LK
LR
LS
KZ
LA
LB
LC
LT
LU
LV
LY
MA
MC
MD
MG
KH
KI
KM
KN
KP
KR
KW
KY
IS
IT
JM
JO
JP
KE
KG
IE
IL
IN
IO
IQ
IR
Ireland
Israel
India
British Indian Ocean Territory
Iraq
Iran
Iceland
Italy
Jamaica
Jordan
Japan
Kenya
Kyrgyzstan
Cambodia
Kiribati
Comoros
Saint Kitts and Nevis
Korea
Korea
Kuwait
Cayman Islands
Kazakstan
Lao People's Democratic Republic
Lebanon
Saint Lucia
Liechtenstein
Sri Lanka
Liberia
Lesotho
Lithuania
Luxembourg
Latvia
Libyan Arab Jamahiriya
Morocco
Monaco
Moldova
Madagascar
Page 92
**
**
**
**
PayDollar PayGate Integration Guide (v3.46)
NG
NI
NL
NO
NP
NR
NZ
OM
PA
PE
PF
PG
PH
PK
PL
PR
MW
MX
MY
MZ
NA
NC
NE
NF
MP
MQ
MR
MS
MT
MU
MV
MH
MK
ML
MM
MN
MO
Marshall Islands
Macedonia
Mali
Myanmar
Mongolia
Macau
Northern Mariana Islands
Martinique
Mauritania
Montserrat
Malta
Mauritius
Maldives
Malawi
Mexico
Malaysia
Mozambique
Namibia
New Caledonia
Niger
Norfolk Island
Nigeria
Nicaragua
Netherlands
Norway
Nepal
Nauru
New Zealand
Oman
Panama
Peru
French Polynesia
Papua New Guinea
Philippines
Pakistan
Poland
Puerto Rico
Page 93
**
**
**
PayDollar PayGate Integration Guide (v3.46)
SZ
TC
TD
TF
SR
ST
SV
SY
TG
TH
TJ
TK
TM
TN
TO
TR
SL
SM
SN
SO
SE
SG
SI
SK
RO
RU
RW
SA
SB
SC
SD
PS
PT
PW
PY
QA
RE
Palestinian Territory
Portugal
Palau
Paraguay
Qatar
Reunion
Romania
Russian Federation
Rwanda
Saudi Arabia
Solomon Islands
Seychelles
Sudan
Sweden
Singapore
Slovenia
Slovakia
Sierra Leone
San Marino
Senegal
Somalia
Suriname
Sao Tome and Principe
El Salvador
Syrian Arab Republic
Swaziland
Turks and Caicos Islands
Chad
French Southern Territories
Togo
Thailand
Tajikistan
Tokelau
Turkmenistan
Tunisia
Tonga
Turkey
Page 94
**
**
**
PayDollar PayGate Integration Guide (v3.46)
VG
VI
VN
VU
WF
WS
YE
YT
YU
ZA
ZM
ZW
UM
US
UY
UZ
VA
VC
VE
TT
TV
TW
TZ
UA
UG
Trinidad and Tobago
Tuvalu
Taiwan
Tanzania
Ukraine
Uganda
United States Minor Outlying Islands
United States
Uruguay
Uzbekistan
Holy See (Vatican City State)
Saint Vincent and the Grenadines
Venezuela
Virgin Islands
Virgin Islands
Vietnam
Vanuatu
Wallis and Futuna
Samoa
Yemen
Mayotte
Yugoslavia
South Africa
Zambia
Zimbabwe
- The End -
Page 95
**
**
**
Preuzimanje
Oglas