Pages

Thursday, January 12, 2012

Authorize.NET AIM with Multiple Items/Products using PHP

Authorize.NET AIM with Multiple Items/Products using PHP


Hi I'm developing a web application and needs to Integrate it with Authorize.NET AIM. I have tested the code provided by Authorize.NET it works fine for Single product. This code has an option to use for line items and is commented by default. I uncommented it and then used it but it only shows a single product processing no line items processing.





Please see the Authorize.NET AIM Sample Code



$post_url = "https://test.authorize.net/gateway/transact.dll";
 
$post_values = array(
 
// the API Login ID and Transaction Key must be replaced with valid values
"x_login"           => "API_LOGIN_ID",
"x_tran_key"        => "TRANSACTION_KEY",
 
"x_version"         => "3.1",
"x_delim_data"      => "TRUE",
"x_delim_char"      => "|",
"x_relay_response"  => "FALSE",
 
"x_type"            => "AUTH_CAPTURE",
"x_method"          => "CC",
"x_card_num"        => "4111111111111111",
"x_exp_date"        => "0115",
 
"x_amount"          => "19.99",
"x_description"     => "Sample Transaction",
 
"x_first_name"      => "John",
"x_last_name"       => "Doe",
"x_address"         => "1234 Street",
"x_state"           => "WA",
"x_zip"             => "98004"
// Additional fields can be added here as outlined in the AIM integration
// guide at: <a rel="nofollow" href="http://developer.authorize.net" target="_blank">http://developer.authorize.net</a>
   );
 
   // This section takes the input fields and converts them to the proper format
   // for an http post.  For example: "x_login=username&x_tran_key=a1B2c3D4"
   $post_string = "";
   foreach( $post_values as $key => $value )
   { $post_string .= "$key=" . urlencode( $value ) . "&"; }
   $post_string = rtrim( $post_string, "& " );
 
   // The following section provides an example of how to add line item details to
   // the post string.  Because line items may consist of multiple values with the
   // same key/name, they cannot be simply added into the above array.
   //
   // This section is commented out by default.
 
   $line_items = array(
   "item1<|>golf balls<|><|>2<|>18.95<|>Y",
   "item2<|>golf bag<|>Wilson golf carry bag, red<|>1<|>39.99<|>Y",
   "item3<|>book<|>Golf for Dummies<|>1<|>21.99<|>Y");
 
   foreach( $line_items as $value )
    { $post_string .= "&x_line_item=" . urlencode( $value ); }
 
 
   // This sample code uses the CURL library for php to establish a connection,
   // submit the post, and record the response.
   // If you receive an error, you may want to ensure that you have the curl
   // library enabled in your php configuration
   $request = curl_init($post_url); // initiate curl object
    curl_setopt($request, CURLOPT_HEADER, 0); // set to 0 to eliminate header info from    response
 curl_setopt($request, CURLOPT_RETURNTRANSFER, 1); // Returns response data instead of TRUE(1)
 curl_setopt($request, CURLOPT_POSTFIELDS, $post_string); // use HTTP POST to send form data
 curl_setopt($request, CURLOPT_SSL_VERIFYPEER, FALSE); // uncomment this line if you get no gateway response.
 $post_response = curl_exec($request); // execute curl post and store results in $post_response
 // additional options may be required depending upon your server configuration
 // you can find documentation on curl options at <a rel="nofollow" href="http://www.php.net/curl_setopt" target="_blank">http://www.php.net/curl_setopt</a>
    curl_close ($request); // close curl object
 
    // This line takes the response and breaks it into an array using the specified        delimiting character
    $response_array = explode($post_values["x_delim_char"],$post_response);
 
    // The results are output to the screen in the form of an html numbered list.
    echo "<OL>\n";
    foreach ($response_array as $value)
    {
      echo "<LI>" . $value . "&nbsp;</LI>\n";
      $i++;
    }
    echo "</OL>\n";



Please help to post mutiple items with Authorize.NET AIM.

No comments:

Post a Comment