It looks like I've got a working script that posts to to authorize.net (with some help from a friend) but I'm not sure how to get back a confirmation number and/or transaction number to put in my database.
Here's the script as it stands now. ( In the AIM.class.php, the form is verfied and the array of values to send, are set)
<?php
require("AIM.class.php");
$aim = new AIM("xxxxxxx", "xxxxxxxxxxxxxxx");
// If you want to send test transactions, use the setTesting method to
// tell the class to talk to the certification server
//$aim->setTesting(1);
$expfull = $_REQUEST['expmonth'] . $_REQUEST['expyear'];
$nameoncard = $_REQUEST['cc_name'];
$final_total = $_REQUEST['final_total'];
if (!$aim->setCard($nameoncard, $_REQUEST['ccnumber'], $_REQUEST['expmonth'], $_REQUEST['expyear'], $_REQUEST['cc_code']))
die("The credit card is invalid: " . print_r($aim->errorStack, 1));
// Sets the customer's billing information
$aim->setBuyer($_REQUEST['bfname'], $_REQUEST['blname'], $_REQUEST['badd1'], $_REQUEST['bcity'], $_REQUEST['bstate'], $_REQUEST['bzip'], $_REQUEST['phone']);
// Attempt to process the card and set $approval to the approval code
if (!$approval = $aim->processCard("Workshops for Youth", $final_total)){
echo "<strong>Oops!</strong><br>Error proccessing credit card: " . print_r($aim->errorStack,1);
$appcodedesc = "Error processing credit card.";
$approval = 0;
}else{
// If we made it this far, the card was successfully charged
echo "<strong>Payment Approved</strong><br>Successfully charged the credit card. Please print for your records."; // Approval code: " . $approval;
$approval = 1;
$appcodedesc = "Payment Approved";
}
03-05-2012 06:38 AM
This is a simple version of the code I use, layered on top of an unmodified version of the PHP SDK:
$authorize = new AuthorizeNetAIM(
$GLOBALS['_authorize_id'], $GLOBALS['_authorize_key']);
$authorize->setSandbox(false);
$fields = array(
'first_name' => $_POST['first'],
'last_name' => $_POST['last'],
'company' => $_POST['company'],
'address' => $_POST['address'],
'city' => $_POST['city'],
'state' => $_POST['state'],
'zip' => $_POST['zip'],
'country' => 'US',
'phone' => $_POST['phone'],
'email' => $_POST['email'],
'customer_ip' => $_SERVER['REMOTE_ADDR'],
'description' => 'removed for privacy reasons - insert yours',
'amount' => $_POST['initial_payment'],
'card_num' => $_POST['card_number'],
'exp_date' => sprintf('%02d%02d', $_POST['card_exp_month'], ($_POST['card_exp_year'] % 1000)),
'card_code' => $_POST['card_ccv']
);
$authorize->setFields($fields);
$result = $authorize->authorizeAndCapture();
if ($result->{'response_code'} != 1)
$errors[] = "Failure - {$result->response_reason_text}";
else
// Do something with $result->transaction_idNote that I do validate the fields before putting them into the transaction, and some are inserted into $_POST by me, but specific application is left up to you.
03-05-2012 09:39 AM