• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/paysystem/robokassa/registerservice.php
  • Класс: BitrixSalePaySystemRobokassaRegisterService
  • Вызов: RegisterService::processRequest
public function processRequest(MainRequest $request): SalePaySystemServiceResult
{
	$result = new SalePaySystemServiceResult();

	$action = $request->get('act');
	if ($action === self::CREATE_ACTION)
	{
		$checkRequiredFieldsResult = $this->checkRequiredFields($request);
		if (!$checkRequiredFieldsResult->isSuccess())
		{
			$result->addErrors($checkRequiredFieldsResult->getErrors());
			return $result;
		}

		$signedDomain = $request->get('signed_domain') ?? '';
		if (!$this->isValidDomain($signedDomain))
		{
			$result->addError(new MainError('Signed domain not valid'));
			return $result;
		}

		$shopId = $request->get('shopId');
		$sign = $request->get('sign');
		$key1 = $request->get('key_1');
		$key2 = $request->get('key_2');

		if (!$this->isSignValid($shopId, $sign))
		{
			$result->addError(new MainError('Bad sign'));
			return $result;
		}

		try
		{
			$saveResult = self::save($shopId, $key1, $key2);
		}
		catch (Exception $exception)
		{
			$saveResult = new MainResult();
			$saveResult->addError(new MainError($exception->getMessage()));
		}

		if (!$saveResult->isSuccess())
		{
			$result->addErrors($saveResult->getErrors());
		}
	}

	return $result;
}