Создание заказа через API 1С-битрикс, с автоматическим редиректом на оплату

RSS
Создание заказа через API 1С-битрикс, с автоматическим редиректом на оплату, Как сделать заказ через Битрикс, что бы пользователь сразу попадал на оплату
 
Вопрос. У меня в личном кабинете пользователя есть небольшой список услуг. Можно ли сделать переход на оплату сразу по клику обходя корзину и все остальное?  
 
Цитата
Гость написал:
Вопрос. У меня в личном кабинете пользователя есть небольшой список услуг. Можно ли сделать переход на оплату сразу по клику обходя корзину и все остальное?  
Можно отправить на некую страницу со скриптом, в которой создастся заказ с выбранными позициями и с нее сразу переход на оплату, по ID этого заказа.
То есть, для пользователя что-то быстро прмелькнет, по сути даже не заметит и сразу отправится в банк.

Пример создания заказа (работоспособность не проверял, но выглядет рабочим):
Код
use Bitrix\Main\Context,
    Bitrix\Currency\CurrencyManager,
    Bitrix\Sale\Order,
    Bitrix\Sale\Basket,
    Bitrix\Sale\Delivery,
    Bitrix\Sale\PaySystem;

global $USER;

$rsUser = CUser::GetByID($USER->GetID());
    $arUser = $rsUser->Fetch();

    Loader::includeModule("sale");
    
    $request = Context::getCurrent()->getRequest();
    $productId = $request["PRODUCT_ID"];
    $userId = $arUser['ID'];
    $userEmail = $arUser['EMAIL'];

    $siteId = Context::getCurrent()->getSite();
    $currencyCode = CurrencyManager::getBaseCurrency();


    $products = [
        [
            'PRODUCT_ID' => $productId,
            'PRODUCT_PROVIDER_CLASS' => '\Bitrix\Catalog\Product\CatalogProvider',
            'CURRENCY' => 'RUB',
            'QUANTITY' => 1,
        ]
    ];
    $basket = Bitrix\Sale\Basket::create('s1');
    foreach ($products as $product)
    {
        $item = $basket->createItem("catalog", $product["PRODUCT_ID"]);
        unset($product["PRODUCT_ID"]);
        $item->setFields($product);
    }
    $siteId = 's1'; // код сайта
    $userId = $userId; // ID пользователя
    $order = \Bitrix\Sale\Order::create($siteId, $userId);
    $order->setPersonTypeId(1); // 1 - ID типа плательщика
    $order->setBasket($basket);
    $shipmentCollection = $order->getShipmentCollection();
    $shipment = $shipmentCollection->createItem(
        Bitrix\Sale\Delivery\Services\Manager::getObjectById(1) // 1 - ID службы доставки
    );
    $shipmentItemCollection = $shipment->getShipmentItemCollection();
    foreach ($basket as $basketItem)
    {
        $item = $shipmentItemCollection->createItem($basketItem);
        $item->setQuantity($basketItem->getQuantity());
    }
    $paymentCollection = $order->getPaymentCollection();
    $payment = $paymentCollection->createItem(
        Bitrix\Sale\PaySystem\Manager::getObjectById(4) // 1 - ID платежной системы
    );
    $payment->setField("SUM", $order->getPrice());
    $payment->setField("CURRENCY", $order->getCurrency());
    $r = $order->save();
    if (!$r->isSuccess())
    {
        var_dump($r->getErrorMessages());
    }
    $orderId = $order->getId();
Изменено: Михаил Базаров - 17.09.2023 13:25:19
 
Я новичок в битрикс и мне не понятно. Ну создам я ссылку на эту страницу в своем списке. Но как туда параметры передаваться будут? И как подключится нужная платежная система?
 
Ответ на вопрос в формате видео инструкции
https://boosty.to/camouf/posts/ab50013d-fac9-4a1d-a3d0-1787357184d6?share=post_link
Изменено: Михаил Базаров - 17.09.2023 17:18:24
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
 
Поблагодарить и поддержать:
Или подписаться на boosty канал: Видео на Ютубе