0

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

// By default, this sample code is designed to post to our test server for
// developer accounts: [url]https://test.authorize.net/gateway/transact.dll[/url]
// for real accounts (even in test mode), please make sure that you are
// posting to: [url]https://secure.authorize.net/gateway/transact.dll[/url]
$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: [url]http://developer.authorize.net[/url]
   );

   // 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 [url]http://www.php.net/curl_setopt[/url]
    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";
     // individual elements of the array could be accessed to read certain response
     // fields.  For example, response_array[0] would return the Response Code,
     // response_array[2] would return the Response Reason Code.
     // for a list of response fields, please review the AIM Implementation Guide

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

Thanks in Advance.

2
Contributors
1
Reply
2
Views
6 Years
Discussion Span
Last Post by HITMANOF44th
0
// By default, this sample code is designed to post to our test server for
    // developer accounts: <a rel="nofollow" href="https://test.authorize.net/gateway/transact.dll" target="_blank">https://test.authorize.net/gateway/transact.dll</a>
    // for real accounts (even in test mode), please make sure that you are
    // posting to: <a rel="nofollow" href="https://secure.authorize.net/gateway/transact.dll" target="_blank">https://secure.authorize.net/gateway/transact.dll</a>
    $post_url = "https://test.authorize.net/gateway/transact.dll";
     
    
	
	$items .= "item1<|>$item_name<|>$item_desc, $item_color<|>$item_qty<|>$item_price<|>Y,"
	
	$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"
    "x_line_item" => "$items"
    // 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";
    // individual elements of the array could be accessed to read certain response
    // fields. For example, response_array[0] would return the Response Code,
    // response_array[2] would return the Response Reason Code.
    // for a list of response fields, please review the AIM Implementation Guide
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.