@Welovecrm

Есть ли PHP запрос автоматическое создание ссылки Битрикс 24?

В Битрикс 24 при выстраивании бизнес процесса есть компонент в CRM - "Создать ссылку на оплату" - Он создает на основании сделки заказ и генерирует ссылку на оплату! Вопрос есть ли код PHP компонента
  • Вопрос задан
  • 53 просмотра
Решения вопроса 1
gromdron
@gromdron Куратор тега Битрикс24
Работаю с Bitrix24
Если вы имеете ввиду REST методы, то нет.

Если у вас коробочная версия и вы хотите использовать API битрикса чтобы это сделать, то вы можете посмотреть пример в файле:
/home/bitrix/www/bitrix/activities/bitrix/crmgetpaymenturlactivity/crmgetpaymenturlactivity.php


Обратите внимание на getUrlByDealId и createPayment методы - они как раз делают то что вам нужно.

У меня есть небольшая, но непроверенная заготовка-выжимка:

use \Bitrix\Main,
	\Bitrix\Salescenter\Builder,
	\Bitrix\Salescenter\Integration
	;

/**
 * @var int
 */
$dealId = 1;

try
{
	Main\Loader::requireModule('crm');

	$deal = \CCrmDeal::GetByID($dealId, false);
	if (!$deal)
	{
		throw new \Exception("Deal not found");
	}

	$builder = Builder\Manager::getBuilder(
		Builder\SettingsContainer::BUILDER_SCENARIO_PAYMENT
	);

	$builder->build(
		$this->getBuilderData($deal)
	);

	$order = $builder->getOrder();

	$r = $order->save();

	if (!$r->isSuccess())
	{
		throw new \Exception("Order update error:".implode(', ', $r->getErrorMessages()));
	}

	$foundPayment = null;

	foreach ($order->getPaymentCollection() as $payment)
	{
		$foundPayment = $payment;
	}

	if ( is_null($foundPayment) )
	{
		throw new \Exception("Payment not found");
	}

	$urlInfo = Integration\LandingManager::getInstance()->getUrlInfoByOrder(
		$payment->getOrder(),
		['paymentId' => $payment->getId()]
	);

	// Payment url: $urlInfo['shortUrl']
}
catch( \Throwable $e )
{
	var_dump($e);
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы