Standard Checkout

Our Standard Checkout option provides a complete checkout solution that can handle every part of the buyer’s checkout process on a single page. 


Checkout URL

Live URL    : https://www.flospay.com/checkout/purchase

When testing in our sandbox, you will need to use our sandbox checkout

Sandbox URL : https://sandbox.flospay.com/checkout/purchase

-============ 2 ===========--


Hosted Checkout Parameters

These parameters can be used to dynamically pass in tangible/intangible products and recurring/non-recurring services.

Required Parameters

Parameter

 

Required

Description

 format

sid

 

Required

Your Flospay account number.

12 number

mode

 

Required

Defines the parameter set. Values are  “standard” , “inline”.

 

li_#_type

 

Required

The type of line item that is being passed in. (Always Lower Case, ‘product’, ‘shipping’, ‘tax’ or ‘coupon’, defaults to ‘product’)

 

li_#_name

 

Required

Name of the item passed in with the corresponding li_#_type. (,cannot use ‘<' or '>’, defaults to capitalized version of ‘type’.)

128 characters max

li_#_quantity

 

Required

Quantity of the item passed in with the corresponding li_#_type. ( defaults to 1 if not passed in.)

0-999

li_#_price

 

Required

Price of the line item., defaults to 0 if a value isn’t passed in, no negatives (use positive values for coupons), leading 0 & decimal are optional. Important note: If the li_#_price parameter isn’t used to pass in line item pricing, the pricing for the corresponding item will default to 0.00.

Format: 0.00-99999999.99

li_#_tangible

 

Required

Specifies if the corresponding li_#_type is a tangible or intangible. ( Must be Upper Case, ‘Y’ or ‘N’, if li_#_type is ‘shipping’ forced to ‘Y’.)

 


You can use these parameters to pass in multiple products as well. To do so you will need to append a digit to each parameter. For example, li_0_type, li_0_quantity, li_0_name, li_0_price, li_0_product_id, li_0_description, li_0_tangible will describe the first product, then to describe the second product you would increment so the parameters will read li_1_type, li_1_quantity, and so on. Please Note: With this parameter set # may be represented by 0-999 and aren’t required to be consecutive.


Additional Parameters

Lineitem Product Parameters:  li_# is number of product item

Parameter

Description

li_#_product_id

Id that you use to identify the product. 64 characters max, cannot use ‘<' or '>’.

li_#_description

Description you use for the product. 255 characters max, cannot use ‘<' or '>’.

li_#_recurrence

Sets billing frequency. Ex. ‘1 Week’ to bill order once a week. (Can use # Week, # Month, or # Year)

li_#_duration

Sets how long to continue billing. Ex. ‘1 Year’, to continue billing based on li_#_recurrence for 1 year. (Forever or # Week, # Month, # Year)

li_#_startup_fee

Any start up fees for the product or service. Can be negative to provide discounted first installment pricing, but cannot equal or surpass the product price.

li_#_option_#_name

Name of product option. Ex. Size (64 characters max – cannot include ‘<' or '>’)

li_#_option_#_value

Option selected. Ex. Small (64 characters max, cannot include ‘<' or '>’)

li_#_option_#_surcharge

Option price in seller currency. (0.00 for no cost options)

demo

Y to enable demo mode. Do not pass for live sales. Can also be controlled within the account.

currency_code

AFN, ALL, DZD, ARS, AUD, AZN, BSD, BDT, BBD, BZD, BMD, BOB, BWP, BRL, GBP, BND, BGN, CAD, CLP, CNY, COP, CRC, HRK, CZK, DKK, DOP, XCD, EGP, EUR, FJD, GTQ, HKD, HNL, HUF, INR, IDR, ILS, JMD, JPY, KZT, KES, LAK, MMK, LBP, LRD, MOP, MYR, MVR, MRO, MUR, MXN, MAD, NPR, TWD, NZD, NIO, NOK, PKR, PGK, PEN, PHP, PLN, QAR, RON, RUB, WST, SAR, SCR, SGD, SBD, ZAR, KRW, LKR, SEK, CHF, SYP, THB, TOP, TTD, TRY, UAH, AED, USD, VUV, VND, XOF, YER. Use to specify the currency for the sale.

lang

Chinese – zh, Danish – da, Dutch – nl, French – fr, German – gr, Greek – el, Italian – it, Japanese – jp, Norwegian – no, Portuguese – pt, Slovenian – sl, Spanish

merchant_order_id

Specify your order number with this parameter. It will also be included in the confirmation emails to yourself and the customer. (50 characters max)

purchase_step

Sets the purchase step that the buyer will land on when being directed to the checkout page. Possible values are ‘review-cart’, ‘shipping-information’, ‘shipping-method’, ‘billing-information’ and ‘payment-method’. Please Note: To skip a purchase step, all required fields must be pre-populated with the parameters that are passed in with the sale. If a required field is not pre-populated, the buyer will revert back to the step that needs to be completed.

x_receipt_link_url

Used to specify an approved URL on-the-fly, but is limited to the same domain that is used for your  Flospay account, otherwise it will fail. This parameter will over-ride any URL set on the Site Management page. (no limit)

coupon

Specify a Flospay created coupon code. If applicable, the coupon will be automatically applied to the sale.


Billing Address Parameters: To pre populate the billing information page you may pass in:

Parameter

Description

card_holder_name

Card holder’s name (128 characters max). The card holder’s name can also be populated using the first_name, middle_initial, and last_name  parameters. IMPORTANT: If you use these three parameters, the data will be combined into and returned as card_holder_name to your Approved URL script.

street_address

Card holder’s street address(64 characters max)

street_address2

The second line for the street address, typically suburb or apartment number information (64 characters max). Required if “country” value is: CHN, JPN, RUS - Optional for all other “country” values.

city

Card holder’s city (64 characters max)

state

Card holder’s state (64 characters max). Required if “country” value is ARG, AUS, BGR, CAN, CHN, CYP, EGY, FRA, IND, IDN, ITA, JPN, MYS, MEX, NLD, PAN, PHL, POL, ROU, RUS, SRB, SGP, ZAF, ESP, SWE, THA, TUR, GBR, USA - Optional for all other “country” values.

zip

Card holder’s zip code/post code. Required if “country” value is ARG, AUS, BGR, CAN, CHN, CYP, EGY, FRA, IND, IDN, ITA, JPN, MYS, MEX, NLD, PAN, PHL, POL, ROU, RUS, SRB, SGP, ZAF, ESP, SWE, THA, TUR, GBR, USA - Optional for all other “country” values. (16 characters max)

country

Card holder’s country (64 characters max)

email

Card holder’s email (64 characters max)

phone

Card holder’s phone (16 characters max)

phone_extension

Card holder’s phone extension (9 characters max)


Shipping Address Parameters: To pre populate the shipping information page you may pass in:

Parameter

Description

ship_name

Recipient Name

ship_street_address

Recipient Address 1

ship_street_address2

Recipient Address 2. Required if “ship_country” value is: CHN, JPN, RUS - Optional for all other “ship_country” values.

ship_city

Recipient City

ship_state

Recipient State. Required if “ship_country” value is ARG, AUS, BGR, CAN, CHN, CYP, EGY, FRA, IND, IDN, ITA, JPN, MYS, MEX, NLD, PAN, PHL, POL, ROU, RUS, SRB, SGP, ZAF, ESP, SWE, THA, TUR, GBR, USA - Optional for all other “ship_country” values.

ship_zip

Recipient Zip Code/Post Code. Required if “ship_country” value is ARG, AUS, BGR, CAN, CHN, CYP, EGY, FRA, IND, IDN, ITA, JPN, MYS, MEX, NLD, PAN, PHL, POL, ROU, RUS, SRB, SGP, ZAF, ESP, SWE, THA, TUR, GBR, USA - Optional for all other “ship_country” values.

ship_country

Recipient Country


The billing information page will also be populated with the information from the shipping page if the shipping information is collected on that sale and the billing information is not passed in.

Custom Parameters

You may pass in any additional parameters that you may need and they will be returned to you at the end of the sale. The only restrictions on custom parameters are that they can not share the name of ANY parameter that our system uses, even from the other sets. Please note that you WILL need a return script set up on the Site Management page to receive any of these parameters back as they are not included in the confirmation emails.

-============ 2 ===========--


Integration Example

Standard Checkout can be utilized by passing the required hosted checkout parameters to our checkout URL as shown in the examples below.

Multiple Line item Example

This sale includes 1 product with a quantity of 2, a coupon deduction and both shipping and tax surcharges. The form also passes in all the billing and shipping information.

Example Checkout Form - Intangible Product and Services

 

Example Checkout Form - Tangible Product

-============ 2 ===========--


Skipping Checkout Steps

You can use the ‘purchase_step’ parameter to set the purchase step that the buyer will land on when being directed to the checkout page. Possible values are ‘review-cart’, ‘shipping-information’, ‘shipping-method’, ‘billing-information’ and ‘payment-method’. Please Note: To skip a purchase step, all required fields must be pre-populated with the parameters that are passed in with the sale. If a required field is not pre-populated, the buyer will revert back to the step that needs to be completed.

Example form, Skipping Checkout Steps

-============ 2 ===========--

<form action='https://www.floospay.net/checkout/purchase' method='post'>

<input type='hidden' name='sid' value='1303908' >

<input type='hidden' name='mode' value='standard' >

<input type='hidden' name='li_0_type' value='product' >

<input type='hidden' name='li_0_name' value='Example Product Name' >

<input type='hidden' name='li_0_product_id' value='Example Product ID' >

<input type='hidden' name='li_0__description' value='Example Product Description' >

<input type='hidden' name='li_0_price' value='10.00' >

<input type='hidden' name='li_0_quantity' value='2' >

<input type='hidden' name='li_0_tangible' value='N' >

<input type='hidden' name='card_holder_name' value='Checkout Shopper' >

<input type='hidden' name='street_address' value='123 Test St' >

<input type='hidden' name='street_address2' value='Suite 200' >

<input type='hidden' name='city' value='Columbus' >

<input type='hidden' name='state' value='OH' >

<input type='hidden' name='zip' value='43228' >

<input type='hidden' name='country' value='US' >

<input type='hidden' name='email' value='example@2co.com' >

<input type='hidden' name='phone' value='614-921-2450' >

<input type='hidden' name='phone_extension' value='197' >

<input type='hidden' name='purchase_step' value='payment-method' >

<input name='submit' type='submit' value='Checkout' >

</form>                 

Return Process

Parameters Returned

You will receive back all of the parameters that were passed in as well as the following parameters:

Parameter

Description

order_number

floospay order number

invoice_id

floospay invoice id

credit_card_processed

Y if successful (Approved).

total

the total amount of the purchase

key

the MD5 hash used to verify that the sale came from one of our servers

 

Validation

The MD5 hash is provided to help you verify the authenticity of the passback to your approved URL. The hash is computed using the secret word on the Site Management page and is returned using the key parameter. To validate against the hash, you need to make a string that contains the information described below and pass it in as the value to your scripting languages MD5 function. The MD5 hash is created the same way for a production Floospay account and a Sandbox Floospay account.

UPPERCASE(MD5_ENCRYPTED(Secret Word + Seller ID + order_number + Sale Total)) 

The secret word is set by yourself on the Site Managment page. The vendor number is your numerical vendor/seller ID number. The order number is the order number for the sale. The total is the numerical value for the total amount of the sale.Each of our community supported libraries provides a binding to validate the hash on a notification message.

 

Example

Below is an example PHP script that validates the hash.

<?php
$hashSecretWord = 'tango'; // Floospay Secret Word
$hashSid = 1303908; // Floospay account number
$hashTotal = '1.00'; //Sale total to validate against
$hashOrder = $_REQUEST['order _number']; // Floospay Order Number
$StringToHash = strtoupper(md5($hashSecretWord . $hashSid . $hashOrder . $hashTotal));
                              
if ($StringToHash != $_REQUEST['key']) {
        $result = 'Fail - Hash Mismatch'; 
        } else {                    
        $result = 'Success - Hash Matched';
}
 
echo $result;

-============ 2 ===========--