- Модуль: salescenter
- Путь к файлу: ~/bitrix/modules/salescenter/lib/integration/crmmanager.php
- Класс: BitrixSalesCenterIntegrationCrmManager
- Вызов: CrmManager::sendPaymentBySms
public function sendPaymentBySms(OrderPayment $payment, array $sendingInfo, OrderShipment $shipment = null)
{
/** @var OrderOrder $order */
$order = $payment->getOrder();
$entityCommunication = $order->getContactCompanyCollection()->getEntityCommunication();
if (!$entityCommunication)
{
return false;
}
$messageTo = $order->getContactCompanyCollection()->getEntityCommunicationPhone();
if (!$messageTo)
{
return false;
}
$paymentLink = LandingManager::getInstance()->getUrlInfoByOrder(
$order,
['paymentId' => $payment->getId()]
)['shortUrl'];
$messageBody = str_replace(
'#LINK#',
$paymentLink,
$sendingInfo['text']
);
$senderId = (mb_strpos($sendingInfo['provider'], '|') === false) ? $sendingInfo['provider'] : 'rest';
$result = CrmMessageSenderMessageSender::send(
[
CrmIntegrationNotificationsManager::getSenderCode() => [
'ACTIVITY_PROVIDER_TYPE_ID' => BaseMessage::PROVIDER_TYPE_SALESCENTER_PAYMENT_SENT,
'TEMPLATE_CODE' => 'ORDER_LINK',
'PLACEHOLDERS' => [
'NAME' => $entityCommunication->getCustomerName(),
'URL' => $paymentLink,
],
],
CrmIntegrationSmsManager::getSenderCode() => [
'ACTIVITY_PROVIDER_TYPE_ID' => BaseMessage::PROVIDER_TYPE_SALESCENTER_PAYMENT_SENT,
'MESSAGE_BODY' => $messageBody,
'SENDER_ID' => $senderId,
'MESSAGE_FROM' => $senderId === 'rest' ? $sendingInfo['provider'] : null,
]
],
[
'COMMON_OPTIONS' => [
'PHONE_NUMBER' => $messageTo,
'USER_ID' => $order->getField('RESPONSIBLE_ID'),
'ADDITIONAL_FIELDS' => [
'ENTITY_TYPE' => $entityCommunication::getEntityTypeName(),
'ENTITY_TYPE_ID' => $entityCommunication::getEntityType(),
'ENTITY_ID' => $entityCommunication->getField('ENTITY_ID'),
'ENTITIES' => [
'ORDER' => $order,
'PAYMENT' => $payment,
'SHIPMENT' => $shipment,
],
'BINDINGS' => ActivityBindingsMaker::makeByPayment(
$payment,
[
'extraBindings' => [
[
'TYPE_ID' => $entityCommunication::getEntityType(),
'ID' => $entityCommunication->getField('ENTITY_ID')
]
]
]
),
'ACTIVITY_AUTHOR_ID' => $order->getField('RESPONSIBLE_ID'),
'ACTIVITY_DESCRIPTION' => $messageBody,
'HIGHLIGHT_URL' => $paymentLink,
]
]
]
);
return $result->isSuccess();
}