1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
action.php
См. документацию.
1<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();?><?
2// Input:
3// $SALE_INPUT_PARAMS - Array of payment parameters
4// $INPUT_CARD_TYPE - Type of credit card
5// $INPUT_CARD_NUM - Number of credit card
6// $INPUT_CARD_EXP_MONTH - Expiration month of credit card
7// $INPUT_CARD_EXP_YEAR - Expiration year of credit card
8// $INPUT_CARD_CODE - CVC2 of credit card
9// $INPUT_SUM - Payment sum
10// $INPUT_CURRENCY - Currency of payment sum
11
12// Output:
13// $OUTPUT_ERROR_MESSAGE - Error message
14// $OUTPUT_STATUS - Payment status
15// $OUTPUT_STATUS_CODE - Payment status code
16// $OUTPUT_STATUS_DESCRIPTION - Payment status description
17// $OUTPUT_STATUS_MESSAGE - Payment system message
18// $OUTPUT_SUM - Paid sum
19// $OUTPUT_CURRENCY - Currency of paid sum
20// $OUTPUT_RESPONSE_DATE - Date
21
22include(dirname(__FILE__)."/common.php");
23
25
33
34$ORDER_ID = IntVal($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ID"]);
35
37if (!isset($INPUT_CARD_NUM) || strlen($INPUT_CARD_NUM) <= 0)
38 $strErrorMessage .= "Please enter valid credit card number".". ";
39
40$INPUT_CARD_NUM = preg_replace("/[\D]+/", "", $INPUT_CARD_NUM);
41if (strlen($INPUT_CARD_NUM) <= 0)
42 $strErrorMessage .= "Please enter valid credit card number".". ";
43
45if (!isset($INPUT_CARD_CODE) || strlen($INPUT_CARD_CODE) <= 0)
46 $strErrorMessage .= "Please enter valid credit card CVC2".". ";
47
50 $strErrorMessage .= "Please enter valid credit card expiration month".". ";
51elseif (strlen($INPUT_CARD_EXP_MONTH) < 2)
53
56 $strErrorMessage .= "Please enter valid credit card expiration year".". ";
57else
59
60$INPUT_SUM = str_replace(",", ".", $INPUT_SUM);
61$INPUT_SUM = DoubleVal($INPUT_SUM);
62if ($INPUT_SUM <= 0)
63 $strErrorMessage .= "Please enter valid sum. ";
64
66if (strlen($INPUT_CURRENCY) <= 0)
67 $strErrorMessage .= "Please enter valid currency. ";
68
70
71if (strlen($strErrorMessage) <= 0)
72{
73 $ret_var = "";
74
75 if ($INPUT_CURRENCY != "USD")
76 {
78
79 $additor = 1;
80 for ($i = 0; $i < SALE_VALUE_PRECISION; $i++)
81 $additor = $additor / 10;
82
83 $INPUT_SUM_tmp = round($INPUT_SUM, SALE_VALUE_PRECISION);
84 while ($INPUT_SUM_tmp < $INPUT_SUM)
85 $INPUT_SUM_tmp = round($INPUT_SUM_tmp + $additor, SALE_VALUE_PRECISION);
86
87 $INPUT_SUM = $INPUT_SUM_tmp;
88 }
89
90 $parms = "ACCT=".urlencode($INPUT_CARD_NUM); // Credit card number
91 $parms .= "&CVV2=".urlencode($INPUT_CARD_CODE); // CVV2
92 $parms .= "&AMT=".urlencode($INPUT_SUM); // Amount (US Dollars)
93 $parms .= "&EXPDATE=".urlencode($INPUT_CARD_EXP_MONTH.$INPUT_CARD_EXP_YEAR); // Expiration date
94 $parms .= "&PARTNER=".urlencode($PF_PARTNER); // Partner
95 $parms .= "&PWD=".urlencode($PF_PWD); // Password
96 $parms .= "&TENDER=C"; // ...
97 $parms .= "&TRXTYPE=S"; // Kind of transaction: Sale
98 $parms .= "&USER=".urlencode($PF_USER); // Login ID
99 $parms .= "&VENDOR=".urlencode($PF_USER); // Vendor ID
100 $parms .= "&COMMENT1=".urlencode($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ID"]);
101 $parms .= "&COMMENT2=".urlencode($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DATE_INSERT"]);
102
103 $ret_com = "$strExePath $PF_HOST $PF_PORT \"$parms\" 30";
104
105 putenv("PFPRO_CERT_PATH=".$PFPRO_CERT_PATH);
106
107 exec($ret_com, $arOutput, $ret_var);
108
109 $strOutput = $arOutput[0];
110 parse_str($strOutput, $arResult);
111
112 if (is_array($arResult) && strlen($arResult["RESULT"])>0)
113 {
114 $OUTPUT_STATUS = (($arResult["RESULT"] == 0) ? "Y" : "N");
115 $OUTPUT_STATUS_CODE = $arResult["RESULT"];
116 $OUTPUT_STATUS_DESCRIPTION = $arResult["RESPMSG"]." - ".$arResult["PREFPSMSG"];
117 $OUTPUT_STATUS_MESSAGE = $arResult["PNREF"];
118 $OUTPUT_SUM = $INPUT_SUM;
119 $OUTPUT_CURRENCY = "USD";
120 $OUTPUT_RESPONSE_DATE = Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL", SITE_ID)));
121
122 $arResult["RESULT"] = IntVal($arResult["RESULT"]);
123 if ($arResult["RESULT"] != 0)
124 {
125 if ($arResult["RESULT"] < 0)
126 $OUTPUT_STATUS_MESSAGE .= "Communication Error: [".$arResult["RESULT"]."] ".$arResult["RESPMSG"]." - ".$arResult["PREFPSMSG"].". ";
127 elseif ($arPaySysRes_tmp["RESULT"] == 125)
128 $OUTPUT_STATUS_MESSAGE .= "Your payment is declined by Fraud Service. Please contact us to make payment".". ";
129 elseif ($arResult["RESULT"] == 126)
130 $OUTPUT_STATUS_MESSAGE .= "Your payment is under review by Fraud Service. We contact you in 48 hours to get more specific information".". ";
132 $OUTPUT_STATUS_MESSAGE .= $arErrorCodes[$arResult["RESULT"]].". ";
133 else
134 $OUTPUT_STATUS_MESSAGE .= "Unknown error".". ";
135 }
136 }
137 else
138 $OUTPUT_STATUS_MESSAGE .= "Response error".". ";
139
140/*
141
142 $OUTPUT_STATUS = "Y";
143 $OUTPUT_STATUS_CODE = "44FRT";
144 $OUTPUT_STATUS_DESCRIPTION = "Good test";
145 $OUTPUT_STATUS_MESSAGE = "Yes";
146 $OUTPUT_SUM = $INPUT_SUM;
147 $OUTPUT_CURRENCY = "USD";
148 $OUTPUT_RESPONSE_DATE = Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL", SITE_ID)));
149 $OUTPUT_STATUS_MESSAGE = "";
150*/
151}
152?>
$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
if(preg_match('/^ else[a-z0-9_]{2}$/i', $siteID)===1)
Определения cron_frame.php:23
is_set($a, $k=false)
Определения tools.php:2133
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
die
Определения quickway.php:367
$i
Определения factura.php:643
$ORDER_ID
Определения html.php:2
const SALE_VALUE_PRECISION
Определения include.php:46
$INPUT_CURRENCY
Определения action.php:48
$strErrorMessage
Определения action.php:25
$INPUT_CARD_EXP_MONTH
Определения action.php:33
$INPUT_CARD_CODE
Определения action.php:31
$INPUT_CARD_EXP_YEAR
Определения action.php:39
$OUTPUT_ERROR_MESSAGE
Определения action.php:52
$INPUT_SUM
Определения action.php:43
$INPUT_CARD_NUM
Определения action.php:27
$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