1<?
if (!defined(
"B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !==
true)
die();?><?
23include(dirname(__FILE__).
"/common.php");
57 $strPostQueryString =
"x_version=3.1";
60 $strPostQueryString .=
"&x_test_request=".(CSalePaySystemAction::GetParamValue(
"TEST_TRANSACTION") ?
"TRUE" :
"FALSE").
"";
63 $strPostQueryString .=
"&x_delim_data=True";
64 $strPostQueryString .=
"&x_relay_response=False";
65 $strPostQueryString .=
"&x_delim_char=,";
66 $strPostQueryString .=
"&x_encap_char=|";
68 $arTmp =
array(
"x_first_name" =>
"FIRST_NAME",
"x_last_name" =>
"LAST_NAME",
69 "x_company" =>
"COMPANY",
"x_address" =>
"ADDRESS",
"x_city" =>
"CITY",
70 "x_state" =>
"STATE",
"x_zip" =>
"ZIP",
"x_country" =>
"COUNTRY",
71 "x_phone" =>
"PHONE",
"x_fax" =>
"FAX"
76 $strPostQueryString .=
"&".$key.
"=".urlencode(
$val);
80 $strPostQueryString .=
"&x_cust_id=".urlencode(
$GLOBALS[
"SALE_INPUT_PARAMS"][
"ORDER"][
"USER_ID"]);
82 $strPostQueryString .=
"&x_customer_ip=".urlencode(
$val);
86 $strPostQueryString .=
"&x_email=".urlencode(
$val);
88 $strPostQueryString .=
"&x_email_customer=FALSE";
89 $strPostQueryString .=
"&x_merchant_email=".urlencode(COption::GetOptionString(
"sale",
"order_email",
""));
92 $strPostQueryString .=
"&x_invoice_num=".urlencode(
$GLOBALS[
"SALE_INPUT_PARAMS"][
"ORDER"][
"ID"]);
93 $strPostQueryString .=
"&x_description=".urlencode(
$GLOBALS[
"SALE_INPUT_PARAMS"][
"ORDER"][
"DATE_INSERT"]);
96 $arTmp =
array(
"x_ship_to_first_name" =>
"SHIP_FIRST_NAME",
97 "x_ship_to_last_name" =>
"SHIP_LAST_NAME",
"x_ship_to_company" =>
"SHIP_COMPANY",
98 "x_ship_to_address" =>
"SHIP_ADDRESS",
"x_ship_to_city" =>
"SHIP_CITY",
99 "x_ship_to_state" =>
"SHIP_STATE",
"x_ship_to_zip" =>
"SHIP_ZIP",
100 "x_ship_to_country" =>
"SHIP_COUNTRY"
105 $strPostQueryString .=
"&".$key.
"=".urlencode(
$val);
109 $strPostQueryString .=
"&x_amount=".$INPUT_SUM;
110 $strPostQueryString .=
"&x_currency_code=".$INPUT_CURRENCY;
111 $strPostQueryString .=
"&x_method=CC";
112 $strPostQueryString .=
"&x_type=AUTH_CAPTURE";
113 $strPostQueryString .=
"&x_recurring_billing=NO";
118 $strResult =
QueryGetData(
"secure.authorize.net", 443,
"/gateway/transact.dll", $strPostQueryString, $errno, $errstr,
"POST",
"ssl://");
120 $mass = explode(
"\|,\|",
"|,".$strResult);
123 if ($hashValue <>
'')
125 if (md5($hashValue.(CSalePaySystemAction::GetParamValue(
"PS_LOGIN")).$mass[7].$INPUT_SUM) != mb_strtolower($mass[38]))
129 $mass[4] =
"MD5 transaction signature is incorrect!";
135 $OUTPUT_STATUS = ((intval($mass[1])==1) ?
"Y" :
"N");
136 $OUTPUT_STATUS_CODE = $mass[3];
138 if ($OUTPUT_STATUS==
"Y")
139 $OUTPUT_STATUS_DESCRIPTION =
"Approval Code: ".$mass[5].(!empty($mass[7]) ?
"; Transaction ID: ".$mass[7] :
"");
141 $OUTPUT_STATUS_DESCRIPTION = (intval($mass[1])==2 ?
"Declined" :
"Error").
": ".$mass[4].
" (Reason Code ".$mass[3].
" / Sub ".$mass[2].
")";
143 $OUTPUT_STATUS_MESSAGE =
"";
144 if (!empty($mass[6]))
145 $OUTPUT_STATUS_MESSAGE .=
"\nAVS Result: [".$mass[6].
"] ".
$arAVSErr[$mass[6]].
";";
147 if (!empty($mass[39]))
148 $OUTPUT_STATUS_MESSAGE .=
"\nCard Code Result: [".$mass[39].
"] ".
$arCVVErr[$mass[39]].
";";
150 if (!empty($mass[40]))
151 $OUTPUT_STATUS_MESSAGE .=
"\nCAVV: [".$mass[40].
"] ".
$arCAVVErr[$mass[40]].
";";
153 $OUTPUT_SUM = $mass[10];
155 $OUTPUT_RESPONSE_DATE = Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat(
"FULL", LANG)));
static GetParamValue($key, $defaultValue=null)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
QueryGetData($SITE, $PORT, $PATH, $QUERY_STR, &$errno, &$errstr, $sMethod="GET", $sProto="", $sContentType='N')
GetMessage($name, $aReplace=null)
GetLangFileName($before, $after, $lang=false)
if(intval($iTestTransaction) > 0) $arTmp
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
if(empty($signedUserToken)) $key
$GLOBALS['_____370096793']