1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
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
9$year = date('Y');
10if ($_REQUEST["pay_this_order"] == "Y")
11{
12 $bCanProcess = True;
13
14 $INPUT_CARD_NUM = Trim($_REQUEST["ccard_num"]);
15 if (!isset($INPUT_CARD_NUM) || $INPUT_CARD_NUM == '')
16 $strErrorMessage .= GetMessage("AN_CC_NUM")." ";
17
18 $INPUT_CARD_NUM = preg_replace("/[\D]+/", "", $INPUT_CARD_NUM);
19 if ($INPUT_CARD_NUM == '')
20 $strErrorMessage .= GetMessage("AN_CC_NUM")." ";
21
22 $INPUT_CARD_EXP_MONTH = intval($_REQUEST["ccard_date1"]);
24 $strErrorMessage .= GetMessage("AN_CC_MONTH")." ";
25 elseif (mb_strlen($INPUT_CARD_EXP_MONTH) < 2)
27
28 $INPUT_CARD_EXP_YEAR = intval($_REQUEST["ccard_date2"]);
30 $strErrorMessage .= GetMessage("AN_CC_YEAR")." ";
31
32 $INPUT_CARD_CODE = Trim($_REQUEST["ccard_code"]);
33
34 if ($strErrorMessage <> '')
35 $bCanProcess = False;
36}
37
38$ORDER_ID = intval($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ID"]);
39
40if ($bCanProcess)
41{
42 // Merchant Account Information
43 $strPostQueryString = "x_version=3.1";
44 $strPostQueryString .= "&x_login=".urlencode(CSalePaySystemAction::GetParamValue("PS_LOGIN"));
45 $strPostQueryString .= "&x_tran_key=".urlencode(CSalePaySystemAction::GetParamValue("PS_TRANSACTION_KEY"));
46 $strPostQueryString .= "&x_test_request=".(CSalePaySystemAction::GetParamValue("TEST_TRANSACTION") ? "TRUE" : "FALSE")."";
47
48 // Gateway Response Configuration
49 $strPostQueryString .= "&x_delim_data=True";
50 $strPostQueryString .= "&x_relay_response=False";
51 $strPostQueryString .= "&x_delim_char=,";
52 $strPostQueryString .= "&x_encap_char=|";
53
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"
58 );
59 foreach ($arTmp as $key => $value)
60 {
61 if (($val = CSalePaySystemAction::GetParamValue($value)) !== False)
62 $strPostQueryString .= "&".$key."=".urlencode($val);
63 }
64
65 // Additional Customer Data
66 $strPostQueryString .= "&x_cust_id=".urlencode($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["USER_ID"]);
67 $strPostQueryString .= "&x_customer_ip=".urlencode($_SERVER["REMOTE_ADDR"]);
68
69 // Email Settings
70 if (($val = CSalePaySystemAction::GetParamValue("EMAIL")) !== False)
71 $strPostQueryString .= "&x_email=".urlencode($val);
72
73 $strPostQueryString .= "&x_email_customer=FALSE";
74 $strPostQueryString .= "&x_merchant_email=".urlencode(COption::GetOptionString("sale", "order_email", ""));
75
76 // Invoice Information
77 $strPostQueryString .= "&x_invoice_num=".urlencode($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ID"]);
78 $strPostQueryString .= "&x_description=".urlencode($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DATE_INSERT"]);
79
80 // Customer Shipping Address
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"
86 );
87 foreach ($arTmp as $key => $value)
88 {
89 if (($val = CSalePaySystemAction::GetParamValue($value)) !== False)
90 $strPostQueryString .= "&".$key."=".urlencode($val);
91 }
92
93 // Transaction Data
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";
99 $strPostQueryString .= "&x_card_num=".urlencode($INPUT_CARD_NUM);
100 $strPostQueryString .= "&x_exp_date=".urlencode($INPUT_CARD_EXP_MONTH.$INPUT_CARD_EXP_YEAR); // MMYYYY
101 $strPostQueryString .= "&x_card_code=".urlencode($INPUT_CARD_CODE);
102
103 // Level 2 Data
104 $strPostQueryString .= "&x_tax=".urlencode($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["TAX_VALUE"]);
105 $strPostQueryString .= "&x_freight=".urlencode($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PRICE_DELIVERY"]);
106
107 $strResult = QueryGetData("secure.authorize.net", 443, "/gateway/transact.dll", $strPostQueryString, $errno, $errstr, "POST", "ssl://");
108
109 $mass = explode("|,|", "|,".$strResult);
110
111 $strHashValue = CSalePaySystemAction::GetParamValue("HASH_VALUE");
112 if ($strHashValue <> '')
113 {
114 if (md5($strHashValue.(CSalePaySystemAction::GetParamValue("PS_LOGIN")).$mass[7].sprintf("%.2f", $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SHOULD_PAY"])) != mb_strtolower($mass[38]))
115 {
116 $mass = array();
117 $mass[1] = 3;
118 $mass[4] = "MD5 transaction signature is incorrect!";
119 $mass[3] = 0;
120 $mass[2] = 0;
121 }
122 }
123
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] : "");
128 else
129 {
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].")";
132 }
133
134 $strPS_STATUS_MESSAGE = "";
135 if (!empty($mass[6]))
136 $strPS_STATUS_MESSAGE .= "\nAVS Result: [".$mass[6]."] ".$arAVSErr[$mass[6]].";";
137
138 if (!empty($mass[39]))
139 $strPS_STATUS_MESSAGE .= "\nCard Code Result: [".$mass[39]."] ".$arCVVErr[$mass[39]].";";
140
141 if (!empty($mass[40]))
142 $strPS_STATUS_MESSAGE .= "\nCAVV: [".$mass[40]."] ".$arCAVVErr[$mass[40]].";";
143
144 $strPS_SUM = $mass[10];
145
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)))
154 );
155
156 if (CSalePaySystemAction::GetParamValue("AUTO_PAY") === 'Y')
157 {
158 $arOrder = CSaleOrder::GetByID($ORDER_ID);
159 if ($arOrder["PRICE"] == $arFields["PS_SUM"] && $arFields["PS_STATUS"] == "Y")
160 {
161 CSaleOrder::PayOrder($arOrder["ID"], "Y");
162 }
163 }
164
166
167 if ($strErrorMessage == '')
168 $bSuccessProcess = True;
169}
170
172{
173 ?><div class="alert alert-success" role="alert"><?=GetMessage("AN_SUCC")?></div><?
174}
175else
176{
177 if ($strErrorMessage <> '')
178 {
179 ?><div class="alert alert-danger" role="alert"><?= $strErrorMessage ?></div><?
180 }
181 ?>
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">
187 </div>
188 </div>
189
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">
194 <?for ($i = 1; $i <= 12; $i++):?>
195 <option value="<?= $i ?>"<?= (($i==$_REQUEST["ccard_date1"]) ? "selected" : "") ?>><?= $i ?></option>
197 </select>
198 </div>
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>
204 <?endfor;?>
205 </select>
206 </div>
207 </div>
208
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">
213 </div>
214 </div>
215
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">
223 </div>
224 </div>
225 </form>
226 <?
227}
228?>
return select
Определения access_edit.php:440
static GetParamValue($key, $defaultValue=null)
Определения pay_system_action.php:76
static Update($ID, $arFields, $bDateUpdate=true)
Определения order.php:140
$arFields
Определения dblapprove.php:5
</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
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
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
$bSuccessProcess
Определения payment.php:8
$bCanProcess
Определения payment.php:7
$strErrorMessage
Определения payment.php:5
$year
Определения payment.php:9
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
$val
Определения options.php:1793
$strErrorMessage
Определения action.php:25
$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
$GLOBALS['_____370096793']
Определения update_client.php:1