Payment Page Integration
This is the traditional integration method which will send the buyer information to the payment gateway hosted payment page. You may want to explore seamless integration, Direct Server API, mobile xdk or supported shopping cart payment modules for better user experience beside this hosted payment page integration on github repositories. Recurring API is also available for card payment and DirectDebit.
Request Parameters
These parameters can be passed using either POST or GET method, or mixed of these methods. Please use UTF-8 encoding for all values.
Variable / Parameter | Type Format / Max Length | Description / Example | |||
---|---|---|---|---|---|
merchant_id | optional, alphanumeric | Merchant ID provided and it is on the request URL, otherwise need to pass this as parameter | |||
amount | mandatory, integer or up to 2 decimal points numeric value | The total amount to be paid in one purchase order. Configurable to lock this field (Read-only). E.g. 500, 168.99, comma(,) is not allowed | |||
orderid | mandatory, alphanumeric up to 40 characters | Invoice or order number from merchant system. Can be set to Read-only field. E.g BH2018-09rev | |||
bill_name | mandatory, alphanumeric, 128 chars | Buyer's full name. (Please do not pass in dummy data if you want to use the saved cards feature, as this info will be used to identify the ownership of the card's token. If you need to use dummy data kindly refer to guest_checkout.) | |||
bill_email | mandatory, email, 128 chars | Buyer's email address. Must be a valid email. (Please do not pass in dummy data if you want to use the saved cards feature as this info will be used identify the ownership of the card's token. If you need use dummy data kindly refer guest_checkout.) | |||
bill_mobile | mandatory, alphanumeric, 32 chars | Buyer's mobile number or contact number. Must be a valid mobile number.(Please do not pass in dummy data if you want use saved cards feature as this info will used identify ownership of card's token.If need use dummy data kindly refer guest_checkout.) | |||
guest_checkout | conditional ,0 or 1 | Used indicate that checkout does not belong registered user.Equal default and merchant does hold customer's bill_name,bill_email,bill_mobile.Saved payment disabled set1. | |||
bill_desc | Mandatory ,alphanumeric ,64KB | Purchase itemized list order description.To avoid special characters so payment request blocked web application firewall.For Taiwan channels please refer Guideline Taiwan channels. | |||
b_addr1 | Optional ,mandatory specific channel | Billing address line1 | |||
b_addr2 | optional, mandatory for specific channel | Billing address line 2 | |||
b_zipcode | optional, mandatory for specific channel | Billing address zipcode or postcode | |||
b_city | optional, mandatory for specific channel | Billing address city | |||
b_state | optional, mandatory for specific channel | Billing address state | |||
country | optional, 2 chars of ISO-3166 country code (Alpha-2) | Buyer’s country E.g. MY for Malaysia. | |||
vcode | conditional if accept open amount or order payment, such as virtual terminal is optional otherwise is mandatory. 32 chars hexadecimal string | This is the data integrity protection hash string. Refer vcode section for details. | |||
currency | mandatory, 3 chars ISO-4217 currency code | Default payment currency from merchant site. E.g. MYR, USD, EUR, AUD, SGD, CNY, IDR | |||
channel | optional predefined string | Refer to the channel column in the Channel Lists Default payment page will be displayed without channel specified. | |||
language | optional predefined string | Currently only en for English & sg for Simplified Chinese Default language i.e., English will be displayed without the language specified. | |||
returnurl | optional URL | For selected merchants only Used for multiple return URLs This will slow down your payment request Note: If the domain differs from the company’s website domain it must be registered to ensure proper functionality.(for security & data integrity) | |||
callbackurl | optional URL | Used for both multiple callback URL and Notification URL Note: If the domain differs from the company’s website domain it must be registered to ensure proper functionality.(for security & data integrity) | |||
cancelurl | optional URL | Buyer will redirect to this URL if the buyer clicks the “Cancel” button to abandon payment before proceeding No transaction will be created Note: If the domain differs from the company’s website domain it must be registered to ensure proper functionality.(for security and data integrity) | |||
s_name | optional mandatory for specific channel | Receiver name | |||
s_addr1 | optional mandatory for specific channel | Delivery address line 1 | |||
s_addr2 | optional mandatory for specific channel | Delivery address line 2 | |||
s_zipcode | optional mandatory for specific channel | Delivery destination zipcode | |||
s_city | Optional Mandatory For Specific Channel | Delivery Destination City | |||
S_State | Optional Mandatory For Specific Channel | Delivery Destination State | |||
S_Country | Optional Mandatory For Specific Channel | Delivery Destination Country | |||
s_merchantID | conditional for partner | Partner's sub-merchant MID | |||
s_merchantURL | conditional for partner | Partner's sub-merchant URL | |||
s_merchantMCC | conditional for partner | Partner's sub-merchant MCC | |||
is_escrow | optional, for escrow payment | Set the value to 1 to indicate this is an escrow payment. Escrow transactions also can be set after the transaction has been created using escrow API. | |||
non_3DS | conditional for partner, 0 or 1 | Applicable for card processing via specific processor using specific processor for pre-approved partners only. Equal to 0 by default and 1 for non-3DS transaction. | |||
txnType | optional, for card type transaction | Available values are: SALS = Capture Transaction (Default), AUTH = Authorize Transaction (Please inform PG before starting using pre-auth) | |||
token_status | optional | Default value will be 0. If the value is 1, the save card checkbox will be checked as default and can uncheck. If the value is 2, the save card checkbox will be checked as default and cannot uncheck. | |||
local | optional | Default value will be 0. If the value is 1, then the card input form will not list out associated saved card. | |||
installmentMonth | optional, mandatory for installment payment | Total month of installment. E.g.: 0,3,6,12,24 | |||
cash_waittime | optional integer | To overwrite allowed waiting time cash payment in hour(s), values greater than "Payment Expiry Time" in merchant profile will be capped. | |||
split_info | optional alphanumeric with pipe ( | ) as data delimiter and comma (,) as recipient separator | Used For "Alipay Split Payment". Format as below without "<"and">": <subuser_ID> | <amount>,<subuser_ID> | <amount> |
AppDeepLink | Optional URL | Mobile deeplink/universal link that allows e-wallet In-App payment. | |||
waittime | Optional integer | A countdown timer displayed on buyer's browser. It defines when payment page will expired in seconds() and redirect to canceled after timeout | |||
PaymentExpirationTime | optional, integer | For non-cash payment only. A timestamp (ISO 8601) that determines when the payment will expire, in UTC. Expired payment will be auto updated to failure. Any approved payment after the timeframe will be auto refunded to the buyer. Example: "2023-12-31T23:59:59Z" | |||
metadata | optional, JSON, 64kb | Merchants are allowed to pass metadata for each transaction in JSON format only. Metadata that were passed via payment request will be returned in extraP parameters without any alteration in all of 3 endpoints so that merchants will be able to do the corresponding transaction mapping on their end. | |||
locMemberId | optional, alphanumeric | Unique ID for Taiwan ESUN channels. Merchant will be able to retrieve it from the extraP parameter in the payment response. |
Examples
Using PHP to generate a GET payment request
<?PHP
echo “<a href=https://pay.fiuu.com/RMS/pay/{merchantID}/?”;
echo “amount=”.$amount.”&”;
echo “orderid=”.urlencode($oid).”&”;
echo “bill_name=”.urlencode($name).”&”;
echo “bill_email=”.urlencode($email).”&”;
echo “bill_mobile=”.urlencode($mobile).”&”;
echo “bill_desc=”.urlencode($description).”&”;
echo “country=”.$country.”&”;
echo “vcode=”.$vcode.”> Pay Now </a>”;
?>
Using PHP to generate a POST form payment request
<?PHP
echo “<form action=’https://pay.fiuu.com/RMS/pay/{merchantID}/’ method=POST >”;
echo “<input type=hidden name=amount value=’$amount’>”;
echo “<input type=hidden name=orderid value=’$oid’>”;
echo “<input type=hidden name=bill_name value=’$name’>”;
echo “<input type=hidden name=bill_email value=’$email’>”;
echo “<input type=hidden name=bill_mobile value=’$mobile’>;
echo “<input type=hidden name=bill_desc value=’$description’>”;
echo “<input type=hidden name=country value=’$country’>”;
echo “<input type=hidden name=vcode value=’$vcode’>”;
echo “<input type=submit value=’ PAY NOW ’>”;
echo “</form>”;
?>
Using ASP to generate a GET payment request
<%
dim amount, orderid, name, email, mobile, desc, country, vcode
amount = ”18.99”
orderid= ”DG873MH370”
name = ”Mr Albert Anderson”
email = ”[email protected]”
mobile = ”016-2341234”
desc = ”DIGI Reload Coupon RM20 with discount”
country= ”MY”
vcode = md5(amount & merchantID & orderid & xxxxxxxxxxxx )
// REPLACE xxxxxxxxxxxx with Verify Key
response.write("<a href=https://pay.fiuu.com/RMS/pay/{merchantID}/?")
response.write("amount=” & amount)
response.write("&orderid=” & orderid)
response.write("&bill_name=” & name)
response.write("&bill_email=” & email)
response.write("&bill_mobile=” & mobile)
response.write("&bill_desc=” & desc)
response.write("&country=” & country)
response.write("&vcode=” & vcode)
response.write("’> Pay Now </a>”)
%>
Using ASP to generate a POST form payment request
<%
dim amount, orderid, name, email, mobile, desc, country, vcode
amount = ”28.99”
orderid= ”DG873MH37o”
name = ”Mr Samuel Lim”
email = ”[email protected]”
mobile = ”86-232389872”
desc = ”Facebook Prepaid Reload Coupon RM30 with discount”
country= ”CN”
vcode = md5(amount & merchantID & orderid & xxxxxxxxxxxx )
// REPLACE xxxxxxxxxxxx with Verify Key
response.write(“<form action=’https://pay.fiuu.com/RMS/pay/{merchantID}/’ method=POST >)
response.write(“<input type=hidden name=amount value=”&amount&”>)
response.write(“<input type=hidden name=orderid value=”&orderid& ”>)
response.write(“<input type=hidden name=bill_name value=”&name& ”>)
response.write(“<input type=hidden name=bill_email value=”&email&”>)
response.write(“<input type=hidden name=bill_mobile value=”&mobile&”>)
response.write(“<input type=hidden name=bill_desc value=”&desc&”>)
response.write(“<input type=hidden name=country value=”&country&”>)
response.write(“<input type=hidden name=vcode value=”&vcode&”>)
response.write(“<input type=submit value=’ PAY NOW ’ ”>)
response.write(“</form>”)
%>
Updated 29 days ago