DEVPROCB DEVPROCB - 4 months ago 52
PHP Question

How to use authorize.net without framework

I am having problems just getting authorize.net to work. I feel Like I am missing something, but not sure what it is. I follow this guide here on the website: http://developer.authorize.net/hello_world/ I have composer setup correctly I believe, but when I run the sample code I get an error


Fatal error: Class 'Goetas\Xsd\XsdToPhp\Jms\Handler\BaseTypesHandler' not found in /home/admin/web/*****/public_html/pricing/vendor/authorizenet/authorizenet/lib/net/authorize/api/controller/base/ApiOperationBase.php on line 82


Note: The stars in the location after "/web/" were to hide the domain that was listed for security reasons.

Any clue how I can get this to work?

Does anyone have a step by step guide to integrate authorize.net into a custom built platform? We are just trying to send the basic information needed to charge a card and receive a response back.

Answer

To anyone running into issues with Trying to quickly integrate authorize.net into their pay system or website. Below is the code I used to built/customized to get this to work. The framework is not needed unless you are creating a fully integrated system, which is not clearly indicated on the site. You are obviously going to have to expand on this code further, but this should be what anyone needs to integrate into authorize quickly.

$params = array(

'x_invoice_num' => 'test',
'x_amount' => '5',
'x_exp_date' => '1202',
'x_address' => 'test',
'x_zip' => '12345',
'x_first_name' => 'test',
'x_last_name' => 'test',
'x_relay_response' => false,
'x_type' => 'AUTH_CAPTURE',
'x_method' => 'CC',
'x_login' => 'yourlogin code goes here',
'x_tran_key' => 'your trans key goes here',
'x_card_num' => '4111111111111111',
'x_card_code' => '143',
'x_delim_data' => true,
'x_delim_char' => '|',
'x_relay_response' => false
 );

 $postString = '';
 foreach ($params as $key => $value)
 $postString .= $key.'='.urlencode($value).'&';
 $postString = trim($postString, '&');
 $url = 'https://secure.authorize.net/gateway/transact.dll';

 $request = curl_init($url);
 curl_setopt($request, CURLOPT_HEADER, 0);
 curl_setopt($request, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($request, CURLOPT_POSTFIELDS, $postString);
 curl_setopt($request, CURLOPT_SSL_VERIFYPEER, false);
 curl_setopt($request, CURLOPT_SSL_VERIFYHOST, false);
 $postResponse = curl_exec($request);
 curl_close($request);
 print_r($postResponse);

 $response = explode('|', $postResponse);
 if (!isset($response[7]) || !isset($response[3]) ||            !isset($response[9]))
{
 $msg = 'Authorize.net returned a malformed response for cart';
 if (isset($response[7]))
 $msg .= ' '.(int)$response[7];
 die('Authorize.net returned a malformed response, aborted.');
 }

$message = $response[3];

switch ($response[0]) // Response code
{
case 1: // Payment accepted
print_r($response[1]);
break ;

case 4: // Hold for review
print_r($response[4]);
break ;

default:
echo $message;

exit;
}
Comments