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
22
include(dirname(__FILE__).
"/common.php"
);
23
24
$strErrorMessage
=
""
;
25
26
$PF_HOST
=
CSalePaySystemAction::GetParamValue
(
"PAYFLOW_URL"
);
27
$PF_PORT
=
CSalePaySystemAction::GetParamValue
(
"PAYFLOW_PORT"
);
28
$PF_USER
=
CSalePaySystemAction::GetParamValue
(
"PAYFLOW_USER"
);
29
$PF_PWD
=
CSalePaySystemAction::GetParamValue
(
"PAYFLOW_PASSWORD"
);
30
$PF_PARTNER
=
CSalePaySystemAction::GetParamValue
(
"PAYFLOW_PARTNER"
);
31
$strExePath
=
CSalePaySystemAction::GetParamValue
(
"PAYFLOW_EXE_PATH"
);
32
$PFPRO_CERT_PATH
=
CSalePaySystemAction::GetParamValue
(
"PAYFLOW_CERT_PATH"
);
33
34
$ORDER_ID
= IntVal(
$GLOBALS
[
"SALE_INPUT_PARAMS"
][
"ORDER"
][
"ID"
]);
35
36
$INPUT_CARD_NUM
= Trim(
$INPUT_CARD_NUM
);
37
if
(!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
);
41
if
(strlen(
$INPUT_CARD_NUM
) <= 0)
42
$strErrorMessage
.=
"Please enter valid credit card number"
.
". "
;
43
44
$INPUT_CARD_CODE
= Trim(
$INPUT_CARD_CODE
);
45
if
(!isset(
$INPUT_CARD_CODE
) || strlen(
$INPUT_CARD_CODE
) <= 0)
46
$strErrorMessage
.=
"Please enter valid credit card CVC2"
.
". "
;
47
48
$INPUT_CARD_EXP_MONTH
= IntVal(
$INPUT_CARD_EXP_MONTH
);
49
if
(
$INPUT_CARD_EXP_MONTH < 1 || $INPUT_CARD_EXP_MONTH >
12)
50
$strErrorMessage
.=
"Please enter valid credit card expiration month"
.
". "
;
51
elseif
(strlen(
$INPUT_CARD_EXP_MONTH
) < 2)
52
$INPUT_CARD_EXP_MONTH
=
"0"
.
$INPUT_CARD_EXP_MONTH
;
53
54
$INPUT_CARD_EXP_YEAR
= IntVal(
$INPUT_CARD_EXP_YEAR
);
55
if (
$INPUT_CARD_EXP_YEAR
< 2005 ||
$INPUT_CARD_EXP_YEAR
> 2099)
56
$strErrorMessage
.=
"Please enter valid credit card expiration year"
.
". "
;
57
else
58
$INPUT_CARD_EXP_YEAR
= IntVal(
$INPUT_CARD_EXP_YEAR
- 2000);
59
60
$INPUT_SUM
= str_replace(
","
,
"."
,
$INPUT_SUM
);
61
$INPUT_SUM
= DoubleVal(
$INPUT_SUM
);
62
if (
$INPUT_SUM
<= 0)
63
$strErrorMessage
.=
"Please enter valid sum. "
;
64
65
$INPUT_CURRENCY
= Trim(
$INPUT_CURRENCY
);
66
if (strlen(
$INPUT_CURRENCY
) <= 0)
67
$strErrorMessage
.=
"Please enter valid currency. "
;
68
69
$OUTPUT_ERROR_MESSAGE
=
$strErrorMessage
;
70
71
if (strlen(
$strErrorMessage
) <= 0)
72
{
73
$ret_var =
""
;
74
75
if
(
$INPUT_CURRENCY
!=
"USD"
)
76
{
77
$INPUT_SUM
=
CCurrencyRates::ConvertCurrency
(
$INPUT_SUM
,
$INPUT_CURRENCY
,
"USD"
);
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"
.
". "
;
131
elseif
(
is_set
(
$arErrorCodes
,
$arResult
[
"RESULT"
]))
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
$arResult
Определения
generate_coupon.php:16
CAllCurrencyRates\ConvertCurrency
static ConvertCurrency($valSum, $curFrom, $curTo, $valDate="")
Определения
currency_rate.php:393
CAllSalePaySystemAction\GetParamValue
static GetParamValue($key, $defaultValue=null)
Определения
pay_system_action.php:76
else
if(preg_match('/^ else[a-z0-9_]{2}$/i', $siteID)===1)
Определения
cron_frame.php:23
is_set
is_set($a, $k=false)
Определения
tools.php:2133
elseif
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения
prolog_main_admin.php:393
die
die
Определения
quickway.php:367
$i
$i
Определения
factura.php:643
$ORDER_ID
$ORDER_ID
Определения
html.php:2
SALE_VALUE_PRECISION
const SALE_VALUE_PRECISION
Определения
include.php:46
$INPUT_CURRENCY
$INPUT_CURRENCY
Определения
action.php:48
$strErrorMessage
$strErrorMessage
Определения
action.php:25
$INPUT_CARD_EXP_MONTH
$INPUT_CARD_EXP_MONTH
Определения
action.php:33
$INPUT_CARD_CODE
$INPUT_CARD_CODE
Определения
action.php:31
$INPUT_CARD_EXP_YEAR
$INPUT_CARD_EXP_YEAR
Определения
action.php:39
$OUTPUT_ERROR_MESSAGE
$OUTPUT_ERROR_MESSAGE
Определения
action.php:52
$INPUT_SUM
$INPUT_SUM
Определения
action.php:43
$INPUT_CARD_NUM
$INPUT_CARD_NUM
Определения
action.php:27
$strExePath
$strExePath
Определения
action.php:31
$PF_USER
$PF_USER
Определения
action.php:28
$PF_PARTNER
$PF_PARTNER
Определения
action.php:30
$PFPRO_CERT_PATH
$PFPRO_CERT_PATH
Определения
action.php:32
$PF_PORT
$PF_PORT
Определения
action.php:27
$PF_HOST
$PF_HOST
Определения
action.php:26
$PF_PWD
$PF_PWD
Определения
action.php:29
$arErrorCodes
$arErrorCodes
Определения
common.php:2
SITE_ID
const SITE_ID
Определения
sonet_set_content_view.php:12
$GLOBALS
$GLOBALS['_____370096793']
Определения
update_client.php:1
bitrix
modules
sale
payment
payflow_pro
action.php
Создано системой
1.14.0