Knowledge Base » Suppliers »

What are the New Cart Purchase Parameters?

Announcement

The new cart purchase parameter descriptions have been integrated into the parameter set articles they are required for. Please review the “Product Identification parameters” section of the 3rd party cart parameter article or the Authorize.net parameter article to find information on these parameters. If you would like to test your integration of these parameters, try using our developers.2Checkout area. The information below is provided for historical reference only.


It has become necessary for 2CO to know the specific product that is being sold at the time of sale and for that product’s description to be stored in our database for reference. This change is required both by 2CO and by our banking partners to better mitigate risk and to monitor items being sold. Because of this requirement, we are asking cart makers and/or users to make changes to their cart or programs so that additional information about the items being sold is passed to 2CO.It is very important to note that:
  1. All previous parameters remain supported and should continue to be passed in (2CO, Authorize.net),
  2. The parameter total (or the authorize.net parameter : x_amount) passed in for the order will continue to be the amount billed for the sale,
  3. The paramaters cart_order_id and sid (or the authorize.net parameters: x_invoice_num and x_login) are still manditory with this parameter set.

REQUIRED PARAMETERS
These parameters are required to identify cart products being purchased and should be supplied ASAP.

For some clients it may make sense to create 1 or multiple generic products in the 2CO db, like “Premium Hosting”, “Super Saver Hosting” and pass in a total for the sale as generated on their site. If this option works for you please make the product name reasonably descriptive, (i.e. “website design services” would be a good description, “web services” a poor one for the same item ).

  • c_prod or c_prod_[:digit] : This parameter will contain either the assigned_product_id given to the product upon creation in the 2CO system or a vendor specified id. It may, optionally, also contain the id followed by a ‘,’ (ASCII comma) followed by an integer which will represent the quantity. This parameter should not be autogenerated with each individual sale but should be tied to a specific product. The c_prod value should match whatever external vendor id is recorded in the 2CO system. The external vendor id may be a cart assigned product id or the vendors own internal product id as long as the value matches the value stored in the 2Co system. Examples of valid values:
    • 1
    • my_product_17
    • product_5,3
  • id_type This parameter will contain an integer value representing the type
    or classification of the ids used in the c_prod parameter(s). This value will
    apply universally per transaction. That is to say c_prod parameters must contain
    only assigned_product_id values or only vendor_product_id values. Current
    valid values for this parameter are defined as follows.
    • 1 is defined as vendor_product_id
    • 2 is defined as assigned_product_id
    • 3 – 0 are reserved for future use.

OPTIONAL PARAMETERS
These parameters are intended for carts that retain no product database or as a transition method of populating the 2CO database. Although it is desirable to receive as many parameters as possible with the purchase the option of creating products on the fly should only be used when no other options exist.

  • sh_cost (optional) : This parameter will contain shipping and handling cost, if any. The sh_cost parameter is completely optional. This parameter has the same format rules as the parameter containing the total (total or x_amount) that you are currently using. This value received is assumed to be in the selected currency of your 2CO account.
    Examples of valid values: 0.50, 5.00, 10
  • c_name or c_name_[:digit] : This parameter is required for product information to be displayed at checkout. The value of this parameter should contain the name of the product to be created. It is limited to 128 characters including spaces and punctuation. If the value is too long it will be cut off at 128 characters.
  • c_description or c_description_[:digit] : This parameter is required for product information to be displayed at checkout. The value of this parameter should contain a short description of the product to be sold. It is limited to 255 characters including spaces and punctuation. If the value is too long this value will be stored as the long description instead. The long description will not show on the checkout pages but it will be saved in the 2Co product database.
  • c_price or c_price_[:digit] : This parameter is required for product information to be displayed at checkout. This value should reflect the price of the product in your 2CO account selected currency. This parameter has the follow format restrictions
    • Numbers and decimal point only.
    • Max value: 999999.99
  • c_tangible or c_tangible_[:digit] (optional) : This parameter is optional. If you do not provide a value for it a default value of Y will be used. This field indicates if the product is a physical product or an e-good/service.
    This parameter has the following format restrictions: Valid values: y Y n N

NEW PARAMETERS IN PRACTICE
Below you will find an example form that shows how these new parameters might be implemented:

<form action="https://www.2checkout.com/checkout/purchase" method="post">

	<input type="hidden" name="id_type" value="1">
	<input type="hidden" name="c_prod_1" value="QAWSZX0678,3">
	<input type="hidden" name="c_name_1" value="Sample 	Product">
	<input type="hidden" name="c_description_1" value="Sample Product Description">
	<input type="hidden" name="c_price_1" value="5.00">
	<input type="hidden" name="c_tangible_1" value="N">

	<input type="hidden" name="c_prod_2" value="CABLE0029,1">
	<input type="hidden" name="c_name_2" value="A Second Sample Product">
	<input type="hidden" name="c_description_2" value="This Products Description">
	<input type="hidden" name="c_price_2" value="10.00">
	<input type="hidden" name="c_tangible_2" value="N">

	<input type="hidden" name="sid" value="XXXXXX">
	<input type="hidden" name="cart_order_id" value="050304-102658-3874">
	<input type="hidden" name="total" value="25.00">

	<input type="submit">
</form>

Please note that you will need to replace the sample values with your own.

Can you give me more information about the MD5 Hash?

This parameter is used to verify the passbacks for you. Depending on what parameter set you are using, this will either appear as ‘key’ or ‘x_MD5_Hash‘. The MD5 hash is also provided to help you verify the authenticity of INS posts. On INS posts the hash is returned in the md5_hash parameter.

One of the Md5 hash components involves a secret word that can be set by you. To set it, follow these directions:

Setting Your Secret Word:

  1. Login to your account.
  2. Click on “Look and Feel” found on your account homepage.
  3. Enter your secret word into the data field labeled, “Your Secret Word (16 Character Limit)”. As labeled, the only limit is that it must be 16 characters or less.
  4. Click “Save Changes” when you are finished.

Please read the related article below for more information about the MD5 Specifications.
How do I use the MD5 Hash?

Where do I set up the Secret Word?

To set up the secret word please log in to your 2CO account, click on the “Account” tab, then click on “Site Management” subcategory. On the “Site Management” page you will enter the Secret Word in the field provided under Direct Return. After you have entered your Secret Word click the blue “Save Changes” button at the bottom of the page.

The secret word is used by those wishing to check the MD5 hash passback, with a routine on their site. It is also needed by those using a program like the membership or download client. The secret word is also used to calculate the MD5 hash which is sent to verify the authenticity of INS posts.

The secret word should be a single or compound word or group of letters and numbers with no spaces. Examples: Monkey1mouse, 4smal3phone, gooblyWbubze.

Related Articles:

How do I use the MD5 Hash?

The MD5 hash is provided to help you verify the authenticity of a sale. This is especially useful for vendors that sell downloadable products, or e-goods, as it can be used to verify whether sale actually came from 2Checkout and was a legitimate live sale. We intentionally break the hash code for demo orders so that you can compare the hash we provide with what it should be to determine whether or not to provide the customer with your goods.

To calculate the MD5 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. Below is an example:

md5 ( secret word + vendor number + order number + 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.

Demonstration:

Secret Word => tango
Vendor Number => 123456
Order Number => 9999999
Total => 5.99

md5hash = md5( tango12345699999995.99 )

It is important to note that the MD5 hash must also be converted to upper case letters for a clean comparison. How this is done depends on the scripting language that you use. Below are some examples of how to compute the MD5 hash using PHP. This should illustrate how this process works.

The following code would be applicable to orders placed using our Plug and Play cart and our proprietary third party set of parameters.

$string_to_hash = “tango123456″ . $_POST["order_number"]
.
$_POST["total"];
$check_key = strtoupper(md5($string_to_hash));

echo (”Returned MD5 Hash : ” . $_POST["key"]
. “<BR>”);
echo (”Should be : ” . $check_key . “<BR>”);

if($check_key == $_POST["key"]){
// At this point the expected key and the returned key match, so the customer should be given access to the download
// This is where you would want to put the code or page for the download
echo (”<center>They match!</center>”); }
else {
// At this point the keys do not match, so either the attempt was fraudulent or a demo order
// This is where you would put the code or page for an unsuccessful attempt
echo (”<center>They do NOT match! Was this a demo order?</center>”);}

The following code would then be applicable to orders placed using the Authorize.net
parameter set.

$string_to_hash = “tango123456″ . $_POST["x_trans_id"]
.
$_POST["x_amount"];
$check_key = strtoupper(md5($string_to_hash));

echo (”Returned MD5 Hash : ” . $_POST["x_MD5_Hash"]
. “<BR>”);
echo (”Should be : ” . $check_key . “<BR>”);

if($check_key == $_POST["x_MD5_Hash"]){
// At this point the expected key and the returned key match, so the customer
should be given access to the download
// This is where you would want to put the code or page for the download
echo (”<center>They match!</center>”); }
else {
// At this point the keys do not match, so either the attempt was fraudulent
or a demo order
// This is where you would put the code or page for an unsuccessful attempt echo (”<center>They do NOT match! Was this a demo order?</center>”);}

The MD5 hash is also provided to help you verify the authenticity of INS posts. The MD5 hash that is sent with INS posts is a hash of sale_id + vendor_id + invoice_id + secret word in the md5_hash parameter.


Demonstration:

sale_id => 9999999999
vendor_id => 123456
invoice_id => 1111111111
Secret Word => tango
md5hash = md5( 99999999991234561111111111tango )

The following code would be applicable to orders placed using our Plug and Play cart and our proprietary third party set of parameters.

$string_to_hash = $_POST[“sale_id”] . “123456” . $_POST[“invoice_id”] . “tango”;
$check_key = strtoupper(md5($string_to_hash));
echo (“Returned MD5 Hash : ” . $_POST[“md5_hash”]
. “
”);
echo (“Should be : ” . $check_key . “
”);
if($check_key == strtoupper($_POST[“md5_hash”])){
// If the expected key and the returned key match the authenticity of the message has been validated.
echo (”They match!”); }
else {
// At this point the keys do not match.
// This is where you would put the code for an unsuccessful attempt.
echo (“They do NOT match!”);}

Please note that help with implementing the MD5 hash into your return script is beyond the realm of 2Checkout.com’s support. This document is provided merely as a reference document to help point you in the right direction. How the MD5 hash is computed is dependent upon the scripting language that you use. Implementation of any MD5 hash checking is solely on your end or your server. 2Checkout.com can not provide you with support in implementing this or troubleshooting your implementation. We provide you with the hashes as a convenience to help you protect your digital goods.

The following links may be of interest to you if you are looking for more information on the MD5 algorithm and its use.

http://userpages.umbc.edu/~mabzug1/cs/md5/md5.html
http://en.wikipedia.org/wiki/MD5
http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemSecurityPolicyHashClassMD5Topic.asp

We have also intentionally designed the MD5 hash not to work for demo sales as was explained earlier. If the sale is in demo mode, the order number used to create the hash will be forced to a one, which will cause the hashes to be different when you compare them. If you wish to test the hashes, you’ll have to place a live test order using a real credit card number.

What is the Buyer’s Verified By Visa (VbV) password?

Most issues must be taken up with the Buyer’s bank. If the buyer does not know their password, then they will have to go through the “Forgot Password” process or contact the issuing bank. We can not offer a solution to bypass this step.

The buyer can skip the password, but this is done by using a different card to make payment. There is a link that says to click here to use a different card, which will return to the payment page to enter a different credit card.

Almost every issue with the Verified by Visa will be related to the verification. There should be a “Help” link on almost every bank’s VbV page. This “Help” link explains VbV, solutions to common issues and how to contact the appropriate bank.

How do sales authorizations work?

When an order is initially placed, 2checkout.com will gain an authorization from the customer’s bank to guarantee that the funds will be available. The length of time these authorizations are valid varies depending upon the bank.

If you mark an order as shipped before the authorization expires, there will be no need to gain a reauthorization. However, if the authorization expires before you provide the shipping details, the order will be moved to the reauthorization section of your mark shipping page and you will need to click the button to reauthorize the card before you will be able to mark the order as shipped. The fee for each reauthorization attempt, whether it is successful or not, is $0.25 USD.

If a reauthorization is successful, you will receive a confirmation and the order will be moved back to the regular area of your Mark Shipping screen so that you can enter the tracking details.

In some cases, the reauthorization will fail to process at the customer’s bank. This will often happen if the funds are no longer available or if the customer’s card has recently expired. When the reauthorization fails you have 3 options for proceeding with the sale.

1. You can simply wait until the next day and attempt the authorization again (you can only attempt to reauthorize an order once a day).

2. You can send an email to your customer advising them that their bank is now declining the transaction. They can simply contact their bank to have them remove any blocks.

3. You can send the customer a request for payment for the missing amount. To send a request for payment you can simply click on the ‘Create Invoice’ button from your Account Homepage. This will allow the customer to provide updated billing and credit card information.

Please note, however, that the request for payment will actually create a brand new sale number in the system. You will want to make sure that you cancel the original order for your own records.

My order’s time does not match the notification email timeframe. Why?

There are a few reasons why this may happen. The timeframe on a notification email is an estimate of when sales are received. Orders placed near the beginning or end of that time frame may arrive in a notification batch that is prior to, or subsequent to, the timeframe on the notification email in question.

If there is a large difference in the time scale, the sale in question was probably placed in an ON HOLD status previously and we received additional information during the time frame indicated in the email.

Alternatively, you may want to consider time zone differences for the discrepancy.

What Do I Need to Know About Fraud?

Internet fraud, credit card fraud, and identify theft are on the rise. 2CO combines a number of industry-leading external and internal resources to identify potentially fraudulent orders. These, in combination with your own diligence and familiarity with your consumers will go a long way toward reducing the number of fraudulent orders and charge backs experienced.

Downloadable goods experience higher rates of fraudulent activity due to the almost instantaneous access to the product purchased. Some downloadable products (such as software) experience even higher levels of fraud.

We recommend the that following actions are a part of your sales process:

  • Tangible products should not be shipped until you receive an automatic sales email notification that states the sale is PASSED.
  • Look for IPs from high-fraud countries.
  • Contact 2CO’s Fraud Dept (FRAUD@2Co.com) with any concerns or to request a representative manually review an order.
  • Be familiar with 2CO’s refund return policy and charge back procedures.
  • Link to the 2Co privacy policy.

Privacy Policy: https://www.2checkout.com/documentation/privacy.htm

Operating Regulations: https://www.2checkout.com/documentation/operating.html

What Kind of Fraud Protection Do You Offer?

As a part of our service, all orders placed by a consumer are subjected to an
automated fraud screening routine. This routine automatically examines each and every order placed. Suspect orders are reviewed by a trained member of our loss prevention team. These orders are canceled if they are fraudulent. Orders that are not obviously fraudulent but are suspect are put in an “On Hold” status and are reviewed further.

How can I help to reduce the number of customer disputes?

  • Be sure that customers are completely familiar with your delivery process. If you are shipping expensive items, use a package service that provides proof of delivery. There will always be some customers out there who falsely claim that a package was not received (and occasionally there will be packages that truly are lost or stolen). Since you bear the responsibility for those losses, you should take care not to put large amounts of money at risk.
  • Respond to 2Checkout.com’s requests for information promptly.
  • Make customers aware that 2Checkout.com is your authorized reseller. A link to our ticket system or a list of the phone number for our customer care center can be posted on your website.
  • Thoroughly describe your offering, show photos, and disclose any important limitations. Ensuring the customer’s expectations match what arrives in the mail will save you and the customer time, money and aggravation.
  • Respond to customer requests for assistance promptly. If an issue can not be resolved to the customer’s satisfaction offer them a partial or full refund.
  • Manually review all incoming orders for fraud. If you have any suspicions about an order, please contact our Fraud Department at fraud@2co.com for assistance.
  • To ensure that they wanted to place multiple orders, contact all customers placing more than one order within a short amount of time.
  • If you are selling a product/service that entails multiple billings, make sure that the customer is fully aware of the future billings and your cancellation policy.
Page 29 of 30« First...«2627282930»

Recent Posts from the Community:

Get Payments

posted by: dspzaman

Referring URL

posted by: hipdev

SPP suggestion

posted by: brakkar

API Beta

posted by: cliff

session destroy

posted by: rojan
More from the community »

Spotlight Supplier

Spotlight Supplier

Feng Shui Products


Popular Tags