1<?
if (!defined(
"B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !==
true)
die();?><?
3include(dirname(__FILE__).
"/common.php");
43 $strPostQueryString =
"x_version=3.1";
46 $strPostQueryString .=
"&x_test_request=".(CSalePaySystemAction::GetParamValue(
"TEST_TRANSACTION") ?
"TRUE" :
"FALSE").
"";
49 $strPostQueryString .=
"&x_delim_data=True";
50 $strPostQueryString .=
"&x_relay_response=False";
51 $strPostQueryString .=
"&x_delim_char=,";
52 $strPostQueryString .=
"&x_encap_char=|";
54 $arTmp =
array(
"x_first_name" =>
"FIRST_NAME",
"x_last_name" =>
"LAST_NAME",
55 "x_company" =>
"COMPANY",
"x_address" =>
"ADDRESS",
"x_city" =>
"CITY",
56 "x_state" =>
"STATE",
"x_zip" =>
"ZIP",
"x_country" =>
"COUNTRY",
57 "x_phone" =>
"PHONE",
"x_fax" =>
"FAX"
62 $strPostQueryString .=
"&".$key.
"=".urlencode(
$val);
66 $strPostQueryString .=
"&x_cust_id=".urlencode(
$GLOBALS[
"SALE_INPUT_PARAMS"][
"ORDER"][
"USER_ID"]);
67 $strPostQueryString .=
"&x_customer_ip=".urlencode(
$_SERVER[
"REMOTE_ADDR"]);
71 $strPostQueryString .=
"&x_email=".urlencode(
$val);
73 $strPostQueryString .=
"&x_email_customer=FALSE";
74 $strPostQueryString .=
"&x_merchant_email=".urlencode(COption::GetOptionString(
"sale",
"order_email",
""));
77 $strPostQueryString .=
"&x_invoice_num=".urlencode(
$GLOBALS[
"SALE_INPUT_PARAMS"][
"ORDER"][
"ID"]);
78 $strPostQueryString .=
"&x_description=".urlencode(
$GLOBALS[
"SALE_INPUT_PARAMS"][
"ORDER"][
"DATE_INSERT"]);
81 $arTmp =
array(
"x_ship_to_first_name" =>
"SHIP_FIRST_NAME",
82 "x_ship_to_last_name" =>
"SHIP_LAST_NAME",
"x_ship_to_company" =>
"SHIP_COMPANY",
83 "x_ship_to_address" =>
"SHIP_ADDRESS",
"x_ship_to_city" =>
"SHIP_CITY",
84 "x_ship_to_state" =>
"SHIP_STATE",
"x_ship_to_zip" =>
"SHIP_ZIP",
85 "x_ship_to_country" =>
"SHIP_COUNTRY"
90 $strPostQueryString .=
"&".$key.
"=".urlencode(
$val);
94 $strPostQueryString .=
"&x_amount=".urlencode(
$GLOBALS[
"SALE_INPUT_PARAMS"][
"ORDER"][
"SHOULD_PAY"]);
95 $strPostQueryString .=
"&x_currency_code=".urlencode(
$GLOBALS[
"SALE_INPUT_PARAMS"][
"ORDER"][
"CURRENCY"]);
96 $strPostQueryString .=
"&x_method=CC";
97 $strPostQueryString .=
"&x_type=AUTH_CAPTURE";
98 $strPostQueryString .=
"&x_recurring_billing=NO";
104 $strPostQueryString .=
"&x_tax=".urlencode(
$GLOBALS[
"SALE_INPUT_PARAMS"][
"ORDER"][
"TAX_VALUE"]);
105 $strPostQueryString .=
"&x_freight=".urlencode(
$GLOBALS[
"SALE_INPUT_PARAMS"][
"ORDER"][
"PRICE_DELIVERY"]);
107 $strResult =
QueryGetData(
"secure.authorize.net", 443,
"/gateway/transact.dll", $strPostQueryString, $errno, $errstr,
"POST",
"ssl://");
109 $mass = explode(
"|,|",
"|,".$strResult);
112 if ($strHashValue <>
'')
114 if (md5($strHashValue.(CSalePaySystemAction::GetParamValue(
"PS_LOGIN")).$mass[7].sprintf(
"%.2f",
$GLOBALS[
"SALE_INPUT_PARAMS"][
"ORDER"][
"SHOULD_PAY"])) != mb_strtolower($mass[38]))
118 $mass[4] =
"MD5 transaction signature is incorrect!";
124 $strPS_STATUS = ((intval($mass[1])==1) ?
"Y" :
"N");
125 $strPS_STATUS_CODE = $mass[3];
126 if ($strPS_STATUS==
"Y")
127 $strPS_STATUS_DESCRIPTION =
"Approval Code: ".$mass[5].(!empty($mass[7]) ?
"; Transaction ID: ".$mass[7] :
"");
130 $strPS_STATUS_DESCRIPTION = (intval($mass[1])==2 ?
"Declined" :
"Error").
": ".$mass[4].
" (Reason Code ".$mass[3].
" / Sub ".$mass[2].
")";
131 $strErrorMessage .= (intval($mass[1])==2 ?
"Transaction was declined" :
"Error while processing transaction").
": ".$mass[4].
" (".$mass[3].
"/".$mass[2].
")";
134 $strPS_STATUS_MESSAGE =
"";
135 if (!empty($mass[6]))
136 $strPS_STATUS_MESSAGE .=
"\nAVS Result: [".$mass[6].
"] ".
$arAVSErr[$mass[6]].
";";
138 if (!empty($mass[39]))
139 $strPS_STATUS_MESSAGE .=
"\nCard Code Result: [".$mass[39].
"] ".
$arCVVErr[$mass[39]].
";";
141 if (!empty($mass[40]))
142 $strPS_STATUS_MESSAGE .=
"\nCAVV: [".$mass[40].
"] ".
$arCAVVErr[$mass[40]].
";";
144 $strPS_SUM = $mass[10];
147 "PS_STATUS" => $strPS_STATUS,
148 "PS_STATUS_CODE" => $strPS_STATUS_CODE,
149 "PS_STATUS_DESCRIPTION" => $strPS_STATUS_DESCRIPTION,
150 "PS_STATUS_MESSAGE" => $strPS_STATUS_MESSAGE,
151 "PS_SUM" => $strPS_SUM,
152 "PS_CURRENCY" =>
$GLOBALS[
"SALE_INPUT_PARAMS"][
"ORDER"][
"CURRENCY"],
153 "PS_RESPONSE_DATE" => Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat(
"FULL", LANG)))
158 $arOrder = CSaleOrder::GetByID(
$ORDER_ID);
161 CSaleOrder::PayOrder($arOrder[
"ID"],
"Y");
173 ?><div
class=
"alert alert-success" role=
"alert"><?=
GetMessage(
"AN_SUCC")?></div><?
179 ?><div
class=
"alert alert-danger" role=
"alert"><?=
$strErrorMessage ?></div><?
182 <form action=
"" method=
"post">
183 <div
class=
"form-group row">
184 <label
for=
"ccardNumber" class=
"col-sm-6 col-form-label text-sm-right"><?=
GetMessage(
"AN_CC")?></label>
185 <div
class=
"col-sm-6">
186 <input type=
"text" id=
"ccardNumber" name=
"ccard_num" size=
"30" value=
"<?= htmlspecialcharsbx($_REQUEST["ccard_num
"]) ?>" class=
"form-control inputtext">
190 <div
class=
"form-group row">
191 <label
for=
"ccardDate1" class=
"col-sm-6 col-form-label text-sm-right"><?=
GetMessage(
"AN_CC_DATE")?></label>
192 <div
class=
"col-auto">
193 <
select name=
"ccard_date1" class=
"inputselect form-control" id=
"ccardDate1">
195 <option value=
"<?= $i ?>"<?= ((
$i==
$_REQUEST[
"ccard_date1"]) ?
"selected" :
"") ?>><?=
$i ?></option>
199 <div
class=
"col-auto col-form-label">/</div>
200 <div
class=
"col-auto">
201 <
select name=
"ccard_date2" class=
"inputselect form-control">
203 <option value=
"<?= $i ?>"<?= ((
$i==
$_REQUEST[
"ccard_date2"]) ?
"selected" :
"") ?>><?=
$i ?></option>
209 <div
class=
"form-group row">
210 <label
for=
"ccardCode" class=
"col-sm-6 col-form-label text-sm-right"><?=
GetMessage(
"AN_CC_CVV2")?></label>
211 <div
class=
"col-auto">
212 <input type=
"text" id=
"ccardCode" name=
"ccard_code" size=
"5" value=
"<?= htmlspecialcharsbx($_REQUEST["ccard_code
"]) ?>" class=
"inputtext form-control">
216 <div
class=
"form-group row">
217 <div
class=
"col-sm-6 col-form-label text-sm-right"></div>
218 <div
class=
"col-auto">
219 <input type=
"hidden" name=
"CurrentStep" value=
"<?= intval($GLOBALS["CurrentStep
"]) ?>">
220 <input type=
"hidden" name=
"ORDER_ID" value=
"<?= $ORDER_ID ?>">
221 <input type=
"hidden" name=
"pay_this_order" value=
"Y">
222 <input type=
"submit" value=
"<?=GetMessage("AN_CC_BUTTON
")?>" class=
"inputbutton btn btn-primary">
static GetParamValue($key, $defaultValue=null)
static Update($ID, $arFields, $bDateUpdate=true)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
$_SERVER["DOCUMENT_ROOT"]
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']