1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
Sender.php
См. документацию.
1
<?php
2
3
namespace
Bitrix\MessageService\Providers\Edna\SMS;
4
5
use Bitrix\Main\Error;
6
use Bitrix\Main\Result;
7
use Bitrix\Main\Text\Emoji;
8
use Bitrix\MessageService\Providers;
9
use Bitrix\MessageService\Sender\Result\MessageStatus;
10
11
class
Sender
extends
Providers\Edna\Sender
12
{
13
14
public
function
getMessageStatus
(
array
$messageFields
):
MessageStatus
15
{
16
return
new
MessageStatus
();
17
}
18
19
public
function
prepareMessageBodyForSave
(
string
$text
): string
20
{
21
return
Emoji::encode(
$text
);
22
}
23
24
protected
function
initializeDefaultExternalSender
():
Providers
\
ExternalSender
25
{
26
return
new
ExternalSender
(
27
$this->optionManager->getOption(
Providers
\
Constants
\InternalOption::API_KEY),
28
RegionHelper::getApiEndPoint
(),
29
$this->optionManager->getSocketTimeout(),
30
$this->optionManager->getStreamTimeout()
31
);
32
}
33
34
protected
function
getSendMessageParams
(
array
$messageFields
):
Result
35
{
36
$cascadeResult = $this->getSenderFromSubject(
$messageFields
[
'MESSAGE_FROM'
]);
37
if
(!$cascadeResult->isSuccess())
38
{
39
return
$cascadeResult;
40
}
41
42
$params
= [
43
'requestId'
=> uniqid(
''
,
true
),
44
'cascadeId'
=> $cascadeResult->getData()[
'cascadeId'
],
45
'subscriberFilter'
=> [
46
'address'
=> str_replace(
'+'
,
''
,
$messageFields
[
'MESSAGE_TO'
]),
47
'type'
=>
'PHONE'
,
48
],
49
];
50
$params
[
'content'
] = $this->getMessageContent(
$messageFields
);
51
52
return
(
new
Result
())->setData(
$params
);
53
}
54
55
protected
function
getSendMessageMethod
(
array
$messageFields
): string
56
{
57
return
Providers\Edna\Constants\Method::SEND_MESSAGE
;
58
}
59
60
protected
function
isTemplateMessage
(
array
$messageFields
): bool
61
{
62
return
false
;
63
}
64
65
protected
function
sendHSMtoChat
(
array
$messageFields
):
Result
66
{
67
return
new
Result
();
68
}
69
74
private
function
getMessageContent(
array
$messageFields
):
array
75
{
76
return
[
77
'smsContent'
=> [
78
'contentType'
=>
Providers\Edna\Constants\ContentType::TEXT
,
79
'text'
=> $this->
prepareMessageBodyForSend
($messageFields[
'MESSAGE_BODY'
]),
80
],
81
];
82
}
83
84
private
function
getSenderFromSubject($subject):
Result
85
{
86
$cascadeResult =
new
Result
();
87
if
(is_numeric($subject))
88
{
89
$cascadeResult = $this->utils->getCascadeIdFromSubject(
90
(
int
)$subject,
91
static
function
(
array
$externalSubjectData,
int
$internalSubject)
92
{
93
return
$externalSubjectData[
'id'
] === $internalSubject;
94
}
95
);
96
}
97
elseif
(is_string($subject))
98
{
99
$cascadeResult = $this->utils->getCascadeIdFromSubject(
100
$subject,
101
static
function
(
array
$externalSubjectData,
string
$internalSubject)
102
{
103
return
$externalSubjectData[
'subject'
] === $internalSubject;
104
}
105
);
106
}
107
else
108
{
109
$cascadeResult->addError(
new
Error(
'Invalid subject id'
));
110
}
111
112
return
$cascadeResult;
113
}
114
}
$messageFields
$messageFields
Определения
callback_ednaru.php:22
Bitrix\Main\DB\Result
Определения
result.php:20
Bitrix\MessageService\MessageStatus
Определения
messagestatus.php:9
Bitrix\MessageService\Providers\Base\Sender\prepareMessageBodyForSend
prepareMessageBodyForSend(string $text)
Определения
Sender.php:15
Bitrix\MessageService\Providers\Edna\Constants\ContentType\TEXT
const TEXT
Определения
ContentType.php:11
Bitrix\MessageService\Providers\Edna\Constants\Method\SEND_MESSAGE
const SEND_MESSAGE
Определения
Method.php:9
Bitrix\MessageService\Providers\Edna\SMS\ExternalSender
Определения
ExternalSender.php:16
Bitrix\MessageService\Providers\Edna\SMS\RegionHelper\getApiEndPoint
static getApiEndPoint()
Определения
RegionHelper.php:6
Bitrix\MessageService\Providers\Edna\SMS\Sender
Определения
Sender.php:12
Bitrix\MessageService\Providers\Edna\SMS\Sender\getSendMessageParams
getSendMessageParams(array $messageFields)
Определения
Sender.php:34
Bitrix\MessageService\Providers\Edna\SMS\Sender\sendHSMtoChat
sendHSMtoChat(array $messageFields)
Определения
Sender.php:65
Bitrix\MessageService\Providers\Edna\SMS\Sender\prepareMessageBodyForSave
prepareMessageBodyForSave(string $text)
Определения
Sender.php:19
Bitrix\MessageService\Providers\Edna\SMS\Sender\isTemplateMessage
isTemplateMessage(array $messageFields)
Определения
Sender.php:60
Bitrix\MessageService\Providers\Edna\SMS\Sender\getSendMessageMethod
getSendMessageMethod(array $messageFields)
Определения
Sender.php:55
Bitrix\MessageService\Providers\Edna\SMS\Sender\initializeDefaultExternalSender
initializeDefaultExternalSender()
Определения
Sender.php:24
Bitrix\MessageService\Providers\Edna\SMS\Sender\getMessageStatus
getMessageStatus(array $messageFields)
Определения
Sender.php:14
array
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения
file_new.php:804
Bitrix\Bizproc\Result
Определения
DeviceResultHandler.php:3
Bitrix\MessageService\Providers\Constants
Определения
InternalOption.php:3
Bitrix\MessageService\Providers
Bitrix\MessageService\Sender
Определения
base.php:2
elseif
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения
prolog_main_admin.php:393
$text
$text
Определения
template_pdf.php:79
$params
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']
Определения
template.php:799
bitrix
modules
messageservice
lib
Providers
Edna
SMS
Sender.php
Создано системой
1.14.0