This is adapted from the anacom curl script for Authorize.net. I am runnung this on a secure page:
$curl = "/usr/local/bin/curl";
$authnet_url = "https://secure.authorize.net/gateway/transact.dll";
$data = "x_ADC_Delim_Data=TRUE&";
$data .= "x_ADC_URL=FALSE&";
$data .= "x_Login=*ACCOUNT_ID*&";
$data .= "x_Password=*PASSWORD*&";
$data .= "x_Version=3.1&";
$data .= "x_Invoice_Num=$incart[0]&";
$data .= "x_Amount=$amount&";
$data .= "x_Method=CC&";
$data .= "x_Card_Num=$cardnum&";
$data .= "x_Exp_Date=$expdate&";
$data .= "x_Email_Customer=TRUE&";
$data .= "x_Email=$dest[email]";
$encodeddata = urlencode($data);
exec("$curl -d \"$encodeddata\" $authnet_url", $return_string);
for($i=0;$i<count($return_string);$i++)
{
echo "$return_string[$i]";
}
$auth_status = explode(",", $return_string[0]);
if($mode == "simple")
{
// get the status of the credit card and
// assign it to the variable card_status
if($auth_status[0] == "2")
{
$card_status = "Declined: $auth_status[3]";
}
elseif($auth_status[0] == "1")
{
$card_status = "Approved: $auth_status[3]";
}
elseif($auth_status[0] == "3")
{
$card_status = "Error: $auth_status[3]";
}
}
elseif($mode == "verbose")
{
$card_status = $return_string[0];
}
// return the card status
return $card_status;
I've checked on the passed variables and the encoded data string and they look OK but I get no return string at all and the transaction doesn't register. What's the deal? Do I need to use OpenSSL or something?