1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
pre_payment.php
См. документацию.
1<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();?><?
2include_once(GetLangFileName(dirname(__FILE__)."/", "/payment.php"));
3include(dirname(__FILE__)."/common.php");
4
6
7if ($bDoPayAction)
8{
9 $INPUT_CARD_NUM = Trim($_REQUEST["ccard_num"]);
10 if (!isset($INPUT_CARD_NUM) || $INPUT_CARD_NUM == '')
11 $strPaySysError .= GetMessage("AN_CC_NUM")."<br />";
12
13 $INPUT_CARD_NUM = preg_replace("/[\D]+/", "", $INPUT_CARD_NUM);
14 if ($INPUT_CARD_NUM == '')
15 $strPaySysError .= GetMessage("AN_CC_NUM")."<br />";
16
17 $INPUT_CARD_EXP_MONTH = intval($_REQUEST["ccard_date1"]);
19 $strPaySysError .= GetMessage("AN_CC_MONTH")."<br />";
20 elseif (mb_strlen($INPUT_CARD_EXP_MONTH) < 2)
21 $INPUT_CARD_EXP_MONTH = "0".$INPUT_CARD_EXP_MONTH;
22
23 $INPUT_CARD_EXP_YEAR = intval($_REQUEST["ccard_date2"]);
24 if ($INPUT_CARD_EXP_YEAR < 2005)
25 $strPaySysError .= GetMessage("AN_CC_YEAR")."<br />";
26
27 $INPUT_CARD_CODE = Trim($_REQUEST["ccard_code"]);
28
29 if ($strPaySysError == '')
30 {
31 $ORDER_ID = intval($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ID"]);
32
33 // Merchant Account Information
34 $strPostQueryString = "x_version=3.1";
35 $strPostQueryString .= "&x_login=".urlencode(CSalePaySystemAction::GetParamValue("PS_LOGIN"));
36 $strPostQueryString .= "&x_tran_key=".urlencode(CSalePaySystemAction::GetParamValue("PS_TRANSACTION_KEY"));
37 $strPostQueryString .= "&x_test_request=".(CSalePaySystemAction::GetParamValue("TEST_TRANSACTION") ? "TRUE" : "FALSE")."";
38
39 // Gateway Response Configuration
40 $strPostQueryString .= "&x_delim_data=True";
41 $strPostQueryString .= "&x_relay_response=False";
42 $strPostQueryString .= "&x_delim_char=,";
43 $strPostQueryString .= "&x_encap_char=|";
44
45 $arTmp = array("x_first_name" => "FIRST_NAME", "x_last_name" => "LAST_NAME",
46 "x_company" => "COMPANY", "x_address" => "ADDRESS", "x_city" => "CITY",
47 "x_state" => "STATE", "x_zip" => "ZIP", "x_country" => "COUNTRY",
48 "x_phone" => "PHONE", "x_fax" => "FAX"
49 );
50 foreach ($arTmp as $key => $value)
51 {
52 if (($val = CSalePaySystemAction::GetParamValue($value)) !== False)
53 $strPostQueryString .= "&".$key."=".urlencode($val);
54 }
55
56 // Additional Customer Data
57 $strPostQueryString .= "&x_cust_id=".urlencode($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["USER_ID"]);
58 if (($val = CSalePaySystemAction::GetParamValue("REMOTE_ADDR")) !== False)
59 $strPostQueryString .= "&x_customer_ip=".urlencode($val);
60
61 // Email Settings
62 if (($val = CSalePaySystemAction::GetParamValue("EMAIL")) !== False)
63 $strPostQueryString .= "&x_email=".urlencode($val);
64
65 $strPostQueryString .= "&x_email_customer=FALSE";
66 $strPostQueryString .= "&x_merchant_email=".urlencode(COption::GetOptionString("sale", "order_email", ""));
67
68 // Invoice Information
69 $strPostQueryString .= "&x_invoice_num=".urlencode($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ID"]);
70 $strPostQueryString .= "&x_description=".urlencode($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DATE_INSERT"]);
71
72 // Customer Shipping Address
73 $arTmp = array("x_ship_to_first_name" => "SHIP_FIRST_NAME",
74 "x_ship_to_last_name" => "SHIP_LAST_NAME", "x_ship_to_company" => "SHIP_COMPANY",
75 "x_ship_to_address" => "SHIP_ADDRESS", "x_ship_to_city" => "SHIP_CITY",
76 "x_ship_to_state" => "SHIP_STATE", "x_ship_to_zip" => "SHIP_ZIP",
77 "x_ship_to_country" => "SHIP_COUNTRY"
78 );
79 foreach ($arTmp as $key => $value)
80 {
81 if (($val = CSalePaySystemAction::GetParamValue($value)) !== False)
82 $strPostQueryString .= "&".$key."=".urlencode($val);
83 }
84
85 // Transaction Data
86 $strPostQueryString .= "&x_amount=".urlencode($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SHOULD_PAY"]);
87 $strPostQueryString .= "&x_currency_code=".urlencode($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"]);
88 $strPostQueryString .= "&x_method=CC";
89 $strPostQueryString .= "&x_type=AUTH_CAPTURE";
90 $strPostQueryString .= "&x_recurring_billing=NO";
91 $strPostQueryString .= "&x_card_num=".urlencode($INPUT_CARD_NUM);
92 $strPostQueryString .= "&x_exp_date=".urlencode($INPUT_CARD_EXP_MONTH.$INPUT_CARD_EXP_YEAR); // MMYYYY
93 $strPostQueryString .= "&x_card_code=".urlencode($INPUT_CARD_CODE);
94
95 // Level 2 Data
96 $strPostQueryString .= "&x_tax=".urlencode($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["TAX_VALUE"]);
97 $strPostQueryString .= "&x_freight=".urlencode($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PRICE_DELIVERY"]);
98 //echo $strPostQueryString;
99
100 $strResult = QueryGetData("secure.authorize.net", 443, "/gateway/transact.dll", $strPostQueryString, $errno, $errstr, "POST", "ssl://");
101
102 $mass = explode("|,|", "|,".$strResult);
103
104 $strHashValue = CSalePaySystemAction::GetParamValue("HASH_VALUE");
105 if ($strHashValue <> '')
106 {
107 if (md5($strHashValue.(CSalePaySystemAction::GetParamValue("PS_LOGIN")).$mass[7].sprintf("%.2f", $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SHOULD_PAY"])) != mb_strtolower($mass[38]))
108 {
109 $mass = array();
110 $mass[1] = 3;
111 $mass[4] = "MD5 transaction signature is incorrect!";
112 $mass[3] = 0;
113 $mass[2] = 0;
114 }
115 }
116
117 $strPS_STATUS = ((intval($mass[1])==1) ? "Y" : "N");
118 $strPS_STATUS_CODE = $mass[3];
119 if ($strPS_STATUS == "Y")
120 $strPS_STATUS_DESCRIPTION = "Approval Code: ".$mass[5].(!empty($mass[7]) ? "; Transaction ID: ".$mass[7] : "");
121 else
122 {
123 $strPS_STATUS_DESCRIPTION = (intval($mass[1])==2 ? "Declined" : "Error").": ".$mass[4]." (Reason Code ".$mass[3]." / Sub ".$mass[2].")";
124 $strPaySysError .= (intval($mass[1])==2 ? "Transaction was declined" : "Error while processing transaction").": ".$mass[4]." (".$mass[3]."/".$mass[2].")";
125 }
126
127 $strPS_STATUS_MESSAGE = "";
128 if (!empty($mass[6]))
129 $strPS_STATUS_MESSAGE .= "\nAVS Result: [".$mass[6]."] ".$arAVSErr[$mass[6]].";";
130
131 if (!empty($mass[39]))
132 $strPS_STATUS_MESSAGE .= "\nCard Code Result: [".$mass[39]."] ".$arCVVErr[$mass[39]].";";
133
134 if (!empty($mass[40]))
135 $strPS_STATUS_MESSAGE .= "\nCAVV: [".$mass[40]."] ".$arCAVVErr[$mass[40]].";";
136
137 $strPS_SUM = $mass[10];
138
139 $arPaySysResult = array(
140 "PS_STATUS" => $strPS_STATUS,
141 "PS_STATUS_CODE" => $strPS_STATUS_CODE,
142 "PS_STATUS_DESCRIPTION" => $strPS_STATUS_DESCRIPTION,
143 "PS_STATUS_MESSAGE" => $strPS_STATUS_MESSAGE,
144 "PS_SUM" => $strPS_SUM,
145 "PS_CURRENCY" => $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"],
146 "PS_RESPONSE_DATE" => Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL", SITE_ID))),
147 "USER_CARD_TYPE" => false,
148 "USER_CARD_NUM" => $INPUT_CARD_NUM,
149 "USER_CARD_EXP_MONTH" => $INPUT_CARD_EXP_MONTH,
150 "USER_CARD_EXP_YEAR" => $INPUT_CARD_EXP_YEAR,
151 "USER_CARD_CODE" => $INPUT_CARD_CODE
152 );
153 }
154}
155else
156{
157 ?>
158 <table border="0" cellpadding="3" cellspacing="0" width="100%">
159 <tr>
160 <td align="right" width="40%" class="tablebody">
161 <font class="tablebodytext">
162 <?=GetMessage("AN_CC")?>
163 </font>
164 </td>
165 <td class="tablebody" width="60%">
166 <input type="text" class="inputtext" name="ccard_num" size="30" value="<?= htmlspecialcharsbx($_REQUEST["ccard_num"]) ?>">
167 </td>
168 </tr>
169 <tr>
170 <td align="right" class="tablebody" width="40%">
171 <font class="tablebodytext">
172 <?=GetMessage("AN_CC_DATE")?>
173 </font>
174 </td>
175 <td class="tablebody" width="60%">
176 <select name="ccard_date1" class="inputselect">
177 <?for ($i = 1; $i <= 12; $i++):?>
178 <option value="<?= $i ?>"<?= (($i==$_REQUEST["ccard_date1"]) ? "selected" : "") ?>><?= $i ?></option>
180 </select>
181 /
182 <select name="ccard_date2" class="inputselect">
183 <?for ($i = 2005; $i <= 2010; $i++):?>
184 <option value="<?= $i ?>"<?= (($i==$_REQUEST["ccard_date2"]) ? "selected" : "") ?>><?= $i ?></option>
185 <?endfor;?>
186 </select>
187 </td>
188 </tr>
189 <tr>
190 <td align="right" class="tablebody" width="40%">
191 <font class="tablebodytext">
192 <?=GetMessage("AN_CC_CVV2")?>
193 </font>
194 </td>
195 <td class="tablebody" width="60%">
196 <input type="text" class="inputtext" name="ccard_code" size="5" value="<?= htmlspecialcharsbx($_REQUEST["ccard_code"]) ?>">
197 </td>
198 </tr>
199 </table>
200 <?
201}
202?>
return select
Определения access_edit.php:440
$strPaySysError
Определения pre_payment.php:5
static GetParamValue($key, $defaultValue=null)
Определения pay_system_action.php:76
bx popup label bx width30 PAGE_NEW_MENU_NAME text width
Определения file_new.php:677
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$_REQUEST["admin_mnu_menu_id"]
Определения get_menu.php:8
QueryGetData($SITE, $PORT, $PATH, $QUERY_STR, &$errno, &$errstr, $sMethod="GET", $sProto="", $sContentType='N')
Определения tools.php:4287
GetMessage($name, $aReplace=null)
Определения tools.php:3397
GetLangFileName($before, $after, $lang=false)
Определения tools.php:3428
if(intval($iTestTransaction) > 0) $arTmp
Определения payment.php:22
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
if(empty($signedUserToken)) $key
Определения quickway.php:257
die
Определения quickway.php:367
$i
Определения factura.php:643
font size
Определения invoice.php:442
$ORDER_ID
Определения html.php:2
endfor
Определения template.php:569
text align
Определения template.php:556
$val
Определения options.php:1793
$INPUT_CARD_EXP_MONTH
Определения action.php:33
$INPUT_CARD_CODE
Определения action.php:31
$INPUT_CARD_EXP_YEAR
Определения action.php:39
$INPUT_CARD_NUM
Определения action.php:27
$arCVVErr
Определения common.php:17
$arAVSErr
Определения common.php:3
$arCAVVErr
Определения common.php:25
const SITE_ID
Определения sonet_set_content_view.php:12
$GLOBALS['_____370096793']
Определения update_client.php:1