1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
pre_payment.php
См. документацию.
1<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();?><?
2include(dirname(__FILE__)."/common.php");
3
5
6if ($bDoPayAction)
7{
11 $PF_PWD = CSalePaySystemAction::GetParamValue("PAYFLOW_PASSWORD");
15
16 $ORDER_ID = IntVal($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ID"]);
17
18 $cardnum = Trim($_REQUEST["cardnum"]);
19 if (!isset($cardnum) || strlen($cardnum) <= 0)
20 $strPaySysError .= "Please enter valid credit card number".". ";
21
22 $cardnum = preg_replace("/[\D]+/", "", $cardnum);
23 if (strlen($cardnum) <= 0)
24 $strPaySysError .= "Please enter valid credit card number".". ";
25
26 $cvv2 = Trim($_REQUEST["cvv2"]);
27 if (!isset($cvv2) || strlen($cvv2) <= 0)
28 $strPaySysError .= "Please enter valid credit card CVC2".". ";
29
30 $cardexp1 = IntVal($_REQUEST["cardexp1"]);
31 if ($cardexp1 < 1 || $cardexp1 > 12)
32 $strPaySysError .= "Please enter valid credit card expiration month".". ";
33 elseif (strlen($cardexp1) < 2)
34 $cardexp1 = "0".$cardexp1;
35
36 $cardexp2 = IntVal($_REQUEST["cardexp2"]);
37 if ($cardexp2 < 5 || $cardexp2 > 50)
38 $strPaySysError .= "Please enter valid credit card expiration year".". ";
39 elseif (strlen($cardexp2) < 2)
40 $cardexp2 = "0".$cardexp2;
41
42 $noc = Trim($_REQUEST["noc"]);
43 if (strlen($noc) <= 0)
44 $strPaySysError.= "Please enter valid cardholder name".". ";
45
46 $address1 = Trim($_REQUEST["address1"]);
47 if (strlen($address1) <= 0)
48 $strPaySysError.= "Please enter valid cardholder address".". ";
49
50 $zipcode = Trim($_REQUEST["zipcode"]);
51 if (strlen($zipcode) <= 0)
52 $strPaySysError.= "Please enter valid cardholder zip".". ";
53
54 if (strlen($strPaySysError) <= 0)
55 {
56 $ret_var = "";
57
58 $AMT = $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SHOULD_PAY"];
59 if ($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"] != "USD")
60 {
61 $AMT = CCurrencyRates::ConvertCurrency($AMT, $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"], "USD");
62
63 $additor = 1;
64 for ($i = 0; $i < SALE_VALUE_PRECISION; $i++)
65 $additor = $additor / 10;
66
67 $AMT_tmp = round($AMT, SALE_VALUE_PRECISION);
68 while ($AMT_tmp < $AMT)
69 $AMT_tmp = round($AMT_tmp + $additor, SALE_VALUE_PRECISION);
70
71 $AMT = $AMT_tmp;
72 }
73
74 $AMT = str_replace(",", ".", $AMT);
75 $cardExp = $cardexp1.$cardexp2;
76
77 $parms = "ACCT=".urlencode($cardnum); // Credit card number
78 $parms .= "&CVV2=".urlencode($cvv2); // CVV2
79 $parms .= "&AMT=".urlencode($AMT); // Amount (US Dollars)
80 $parms .= "&EXPDATE=".urlencode($cardExp); // Expiration date
81 $parms .= "&PARTNER=".urlencode($PF_PARTNER); // Partner
82 $parms .= "&PWD=".urlencode($PF_PWD); // Password
83 $parms .= "&TENDER=C"; // ...
84 $parms .= "&TRXTYPE=S"; // Kind of transaction: Sale
85 $parms .= "&USER=".urlencode($PF_USER); // Login ID
86 $parms .= "&VENDOR=".urlencode($PF_USER); // Vendor ID
87 $parms .= "&ZIP=".urlencode($zipcode); // Zip
88 $parms .= "&STREET=".urlencode($address1); // Address
89 $parms .= "&COMMENT1=".$ORDER_ID;
90 $parms .= "&COMMENT2=".urlencode($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DATE_INSERT"]);
91
92 $ret_com = "$strExePath $PF_HOST $PF_PORT \"$parms\" 30";
93
94 putenv("PFPRO_CERT_PATH=".$PFPRO_CERT_PATH);
95
96 exec($ret_com, $arOutput, $ret_var);
97
98 $strOutput = $arOutput[0];
99 parse_str($strOutput, $arResult);
100
101 if (is_array($arResult) && strlen($arResult["RESULT"])>0)
102 {
103 $arPaySysResult = array(
104 "PS_STATUS" => (($arResult["RESULT"] == 0) ? "Y" : "N"),
105 "PS_STATUS_CODE" => $arResult["RESULT"],
106 "PS_STATUS_DESCRIPTION" => $arResult["RESPMSG"]." - ".$arResult["PREFPSMSG"],
107 "PS_STATUS_MESSAGE" => $arResult["PNREF"],
108 "PS_SUM" => $AMT,
109 "PS_CURRENCY" => "USD",
110 "PS_RESPONSE_DATE" => Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL", SITE_ID))),
111 "USER_CARD_TYPE" => false,
112 "USER_CARD_NUM" => $cardnum,
113 "USER_CARD_EXP_MONTH" => $cardexp1,
114 "USER_CARD_EXP_YEAR" => "20".$cardexp2,
115 "USER_CARD_CODE" => $cvv2
116 );
117
118 $arResult["RESULT"] = IntVal($arResult["RESULT"]);
119 if ($arResult["RESULT"] != 0)
120 {
121 if ($arResult["RESULT"] < 0)
122 $strPaySysError .= "Communication Error: [".$arResult["RESULT"]."] ".$arResult["RESPMSG"]." - ".$arResult["PREFPSMSG"].". ";
123 elseif ($arPaySysRes_tmp["RESULT"] == 125)
124 $strPaySysError .= "Your payment is declined by Fraud Service. Please contact us to make payment".". ";
125 elseif ($arResult["RESULT"] == 126)
126 $strPaySysWarning .= "Your payment is under review by Fraud Service. We contact you in 48 hours to get more specific information".". ";
128 $strPaySysError .= $arErrorCodes[$arResult["RESULT"]].". ";
129 else
130 $strPaySysError .= "Unknown error".". ";
131 }
132 }
133 else
134 $strPaySysError .= "Response error".". ";
135
136/*
137 $arPaySysResult = array(
138 "PS_STATUS" => "Y",
139 "PS_STATUS_CODE" => "AA35",
140 "PS_STATUS_DESCRIPTION" => "Good test",
141 "PS_STATUS_MESSAGE" => "Yes!!!",
142 "PS_SUM" => $AMT,
143 "PS_CURRENCY" => "USD",
144 "PS_RESPONSE_DATE" => Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL", SITE_ID))),
145 "USER_CARD_TYPE" => false,
146 "USER_CARD_NUM" => $cardnum,
147 "USER_CARD_EXP_MONTH" => $cardexp1,
148 "USER_CARD_EXP_YEAR" => "20".$cardexp2,
149 "USER_CARD_CODE" => $cvv2
150 );
151 $strPaySysError = "";
152*/
153 }
154}
155else
156{
160 ?>
161 <table border="0" width="100%" cellpadding="2" cellspacing="2">
162 <tr>
163 <td align="right" class="tablebody" width="40%">
164 <font class="tablebodytext">Credit Card Number</font>
165 </td>
166 <td class="tablebody" width="60%">
167 <input class="inputtext" type="text" name="cardnum" value="<?= htmlspecialcharsbx($_REQUEST["cardnum"]) ?>" size="35">
168 </td>
169 </tr>
170 <tr>
171 <td align="right" class="tablebody" width="40%">
172 <font class="tablebodytext">CVV2</font>
173 </td>
174 <td class="tablebody" width="60%">
175 <input type="text" class="inputtext" name="cvv2" value="<?= htmlspecialcharsbx($_REQUEST["cvv2"]) ?>" size="5">
176 </td>
177 </tr>
178 <tr>
179 <td align="right" class="tablebody" width="40%">
180 <font class="tablebodytext">Expiration Date&nbsp;&nbsp;(MM/YY)</font>
181 </td>
182 <td class="tablebody" width="60%">
183 <select name="cardexp1" class="inputselect">
184 <option value=""> </option>
185 <?
186 for ($i = 1; $i <= 12; $i++)
187 {
188 $val = (($i < 10) ? "0" : "").$i;
189 ?>
190 <option value="<?= $val ?>" <?if ($_REQUEST["cardexp1"] == $val) echo "selected";?>><?= $val ?></option>
191 <?
192 }
193 ?>
194 </select>
195 <select name="cardexp2" class="inputselect">
196 <option value=""> </option>
197 <?
198 for ($i = 4; $i <= 11; $i++)
199 {
200 $val = (($i < 10) ? "0" : "").$i;
201 ?>
202 <option value="<?= $val ?>" <?if ($_REQUEST["cardexp2"] == $val) echo "selected";?>><?= $val ?></option>
203 <?
204 }
205 ?>
206 </SELECT>
207 </td>
208 </tr>
209 <tr>
210 <td align="right" class="tablebody" width="40%">
211 <font class="tablebodytext">Cardholder</font>
212 </td>
213 <td class="tablebody" width="60%">
214 <input type="text" class="inputtext" size="40" name="noc" value="<?= (strlen($_REQUEST["noc"]) > 0) ? htmlspecialcharsbx($_REQUEST["noc"]) : $noc_def ?>">
215 </td>
216 </tr>
217 <tr>
218 <td align="right" class="tablebody" width="40%">
219 <font class="tablebodytext">Address</font>
220 </td>
221 <td class="tablebody" width="60%">
222 <input type="text" class="inputtext" size="40" name="address1" value="<?= (strlen($_REQUEST["address1"]) > 0) ? htmlspecialcharsbx($_REQUEST["address1"]) : $address1_def ?>">
223 </td>
224 </tr>
225 <tr>
226 <td align="right" class="tablebody" width="40%">
227 <font class="tablebodytext">Zip</font>
228 </td>
229 <td class="tablebody" width="60%">
230 <input type="text" class="inputtext" size="7" name="zipcode" value="<?= (strlen($_REQUEST["zipcode"]) > 0) ? htmlspecialcharsbx($_REQUEST["zipcode"]) : $zipcode_def ?>">
231 </td>
232 </tr>
233 </table>
234 <?
235}
236?>
return select
Определения access_edit.php:440
$strPaySysError
Определения pre_payment.php:5
$arResult
Определения generate_coupon.php:16
static ConvertCurrency($valSum, $curFrom, $curTo, $valDate="")
Определения currency_rate.php:393
static GetParamValue($key, $defaultValue=null)
Определения pay_system_action.php:76
& nbsp
Определения epilog_main_admin.php:38
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
is_set($a, $k=false)
Определения tools.php:2133
$noc_def
Определения payment.php:172
$zipcode_def
Определения payment.php:174
$address1_def
Определения payment.php:173
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
die
Определения quickway.php:367
$i
Определения factura.php:643
font size
Определения invoice.php:442
$ORDER_ID
Определения html.php:2
text align
Определения template.php:556
const SALE_VALUE_PRECISION
Определения include.php:46
$val
Определения options.php:1793
$strExePath
Определения action.php:31
$PF_USER
Определения action.php:28
$PF_PARTNER
Определения action.php:30
$PFPRO_CERT_PATH
Определения action.php:32
$PF_PORT
Определения action.php:27
$PF_HOST
Определения action.php:26
$PF_PWD
Определения action.php:29
$arErrorCodes
Определения common.php:2
const SITE_ID
Определения sonet_set_content_view.php:12
$GLOBALS['_____370096793']
Определения update_client.php:1