Avoid Authorize.Net like the plague. Horrifically bad XML API that will make you want to claw your eyes out.
my $post_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"
};
my $useragent = LWP::UserAgent->new( protocols_allowed => ["https"] );
my $request = POST( $post_url, $post_values );
my $response = $useragent->request( $request );
That's just a straightforward form post to a CGI. Result is a line of CSV data. No XML in sight.Does the non-AIM option (I forget what it is called) use XML?
http://www.authorize.net/support/AIM_guide_XML.pdf
We also used XML through their CIM to manage customer profiles. To be fair, this was all in PHP, and the code was inherited so I'm not sure if there was a better way to deal with Auth.net's API.
I do know that their dashboards were thoroughly unpleasant to deal with and I felt the API was obtuse in many different locations.
That's the one we use. I didn't even know they had an XML option--and now I'm going to try to forget it! :-)
Good to know for future projects =)
Don't get me wrong. I hate Authorize.net and don't plan on using them for anything in the future. I'd rather refactor code than write comma separated string code once knowing it will work forever.
It also feels now like I should be vaulting cards with multiple vendors to avoid a single point of failure. As mentioned I went with Stripe, who are similarly green. I'm in the process of moving my merchant account over to Braintree. Also looking at WePay and Dwolla. Who else?