1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
payment.php
См. документацию.
1<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();?><?
2include(GetLangFileName(dirname(__FILE__)."/", "/money_mail.php"));
3function PrepareParams(&$item)
4{
5 $item = rawurlencode($item);
6}
7
10$arParams = Array();
11$ORDER_ID =(CSalePaySystemAction::GetParamValue("ORDER_ID") <> '') ? CSalePaySystemAction::GetParamValue("ORDER_ID") : $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ID"];
12$ORDER = CSaleOrder::GetByID($ORDER_ID);
13
14if ($ORDER['PAY_VOUCHER_NUM'])
15 $invoice_number = $ORDER['PAY_VOUCHER_NUM'];
16else
17{
18 $SITE_NAME = COption::GetOptionString("main", "server_name", "");
19 $dateInsert = (CSalePaySystemAction::GetParamValue("DATE_INSERT") <> '') ? CSalePaySystemAction::GetParamValue("DATE_INSERT") : $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DATE_INSERT"];
20 $arParams['issuer_id'] = base64_encode($ORDER_ID);
21 $arParams['access_key'] = (CSalePaySystemAction::GetParamValue("KEY") <> '') ? CSalePaySystemAction::GetParamValue("KEY") : $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["KEY"];
22 $arParams['shouldPay'] = (CSalePaySystemAction::GetParamValue("SHOULD_PAY") <> '') ? CSalePaySystemAction::GetParamValue("SHOULD_PAY") : $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SHOULD_PAY"];
23 $arParams['buyer_email'] = (CSalePaySystemAction::GetParamValue("BUYER_EMAIL") <> '') ? CSalePaySystemAction::GetParamValue("BUYER_EMAIL") : $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SHOULD_PAY"];
24 //$arParams['currency'] = (strlen(CSalePaySystemAction::GetParamValue("CURRENCY")) > 0) ? CSalePaySystemAction::GetParamValue("CURRENCY") : $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"];
25 if(CSalePaySystemAction::GetParamValue("TEST_MODE") <> '')
26 {
27 $arParams['currency'] = CSalePaySystemAction::GetParamValue("TEST_MODE");
28 }
29 else
30 {
31 $arParams['currency'] = "RUR";
32 }
33
34 $arParams['buyer_ip'] = $_SERVER['REMOTE_ADDR'];
35 $arParams['description'] = base64_encode((ToUpper(SITE_CHARSET) != ToUpper('windows-1251')) ? $APPLICATION->ConvertCharset(GetMessage("MM_DESC",Array('#ORDER_ID#' => $ORDER_ID, '#DATE#' => $dateInsert, '#SITE_NAME#' => $SITE_NAME)), SITE_CHARSET, 'windows-1251') : GetMessage("MM_DESC", Array('#ORDER_ID#' => $ORDER_ID, '#DATE#' => $dateInsert, '#SITE_NAME#' => $SITE_NAME)));
36 array_walk($arParams, 'PrepareParams');
37
38 $sHost = "merchant.money.mail.ru";
39 $sUrl = "/api/invoice/make";
40 $sVars ="key=".$arParams['access_key']."&buyer_email=".$arParams['buyer_email']."&sum=".(str_replace(",", ".", $arParams['shouldPay']))."&currency=".$arParams['currency']."&description=".$arParams['description']."&buyer_ip=".$arParams['buyer_ip']."&issuer_id=".$arParams['issuer_id'];
41 $invoice_number = QueryGetData($sHost, 443, $sUrl, $sVars, $errno, $errstr, "GET", "ssl://");
42 if (is_numeric($invoice_number))
43 CSaleOrder::Update($ORDER_ID, Array('PAY_VOUCHER_NUM' => $invoice_number, 'PAY_VOUCHER_DATE' => $dateInsert));
44}
45
46if (is_numeric($invoice_number))
47{
48 $message.=GetMessage('MM_INVOICE_NUM', Array('#INVOICE_NUM#' => $invoice_number));
49
50 $sHost = "merchant.money.mail.ru";
51 $sUrl = "/api/invoice/item/";
52 $access_key = rawurlencode((CSalePaySystemAction::GetParamValue("KEY") <> '') ? CSalePaySystemAction::GetParamValue("KEY") : $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["KEY"]);
53 $sVars = "key=".$access_key."&invoice_number=".$invoice_number;
54 sleep(1);
55 $CheckStatus = QueryGetData($sHost, 443, $sUrl, $sVars, $errno, $errstr, "GET", "ssl://");
56
57 if ($CheckStatus)
58 {
59 parse_str(str_replace(Array("\r\n","\n","\r"), "&", 'success='.$CheckStatus), $Data);
60 $default_url = 'https://money.mail.ru';
61 if ($Data['success'] == 'OK')
62 {
63 switch($Data['status'])
64 {
65 case 'NEW':
66 $message .= GetMessage('MM_PAY_NEW_INVOICE', Array('#URL#' => $default_url));
67 break;
68 case 'DELIVERED':
69 $message .= GetMessage('MM_PAY_DELIVERED_INVOICE', Array('#URL#' => $Data['url_pay']));
70 break;
71 case 'PAID':
72 $message.=GetMessage('MM_ALLREADY_PAID');
73 break;
74 case 'REJECTED':
75 $message.=GetMessage('MM_REJECT_PAY');
76 break;
77 }
78 }
79
80
81 }
82
83}
84if ($message == '')
85 echo GetMessage('MM_ERROR_TRY_LATER');
86else
87 echo $message;
88?>
$arParams
Определения access_dialog.php:21
global $APPLICATION
Определения include.php:80
static GetParamValue($key, $defaultValue=null)
Определения pay_system_action.php:76
static Update($ID, $arFields, $bDateUpdate=true)
Определения order.php:140
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
const SITE_CHARSET
Определения include.php:62
ToUpper($str)
Определения tools.php:2247
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
$invoice_number
Определения payment.php:9
$message
Определения payment.php:8
$ORDER
Определения payment.php:12
PrepareParams(&$item)
Определения payment.php:3
$dateInsert
Определения payment.php:19
die
Определения quickway.php:367
$ORDER_ID
Определения html.php:2
$sHost
Определения result.php:13
$sVars
Определения result.php:16
$sUrl
Определения result.php:14
$access_key
Определения result.php:8
$GLOBALS['_____370096793']
Определения update_client.php:1