Техподдержка сайтов
+7 (904) 589-06-04
+7 (904) 589-06-04
s.golikov1
info@sng-it.ru
Сайт программиста 1С Битрикс
Сайт программиста
1C Битрикс
(создание и поддержка сайтов)
О себе
Услуги
  • Перевод сайта на https
  • Создание сайтов
  • Интеграция сайта с 1С
  • Выгрузка товаров в Яндекс.Маркет
  • Композитный сайт
  • Внутренняя оптимизация сайта
  • Доработка сайтов
  • Импорт каталога из файла поставщика
  • Перенос сайта на 1С Битрикс
  • Парсинг контента
  • Установка готового сайта
  • Купить лицензию 1С Битрикс
  • Битрикс 24
  • Настройка служб доставки
  • Интеграция с соцсетями
  • Заказ на Маркете
  • Сопровождение сайтов на 1С Битрикс
  • Поиск и удаление вирусов
  • Настройка платежных систем
  • Выгрузка товаров на Hotline
Портфолио
Готовые сайты
  • Недвижимость
  • Медицина
  • Ресторанный бизнес
  • Автомобили и автозапчасти
  • Бухгалтерские и юридические услуги
  • Государство
  • Детские товары
  • Красота и здоровье
  • Мебель, интерьер, декор
  • Образование
  • Одежда и обувь
  • Подарки и сувениры
  • Продукты питания
  • Спорт, туризм и отдых
  • Строительство, ремонт, инструменты
  • Товары для животных
  • ТСЖ, ЖСК
  • Украшения, аксессуары, подарки
  • Электроника и бытовая техника
  • Универсальные
  • Разное
1С Битрикс
  • Старт (6 200 ₽)
  • Стандарт (17 900 ₽)
  • Малый бизнес (40 900 ₽)
  • Бизнес (83 900 ₽)
  • Интернет-магазин + CRM (99 000 ₽)
  • Продление лицензии
  • Сравнить редакции
CRM
  • Битрикс24
Контакты
Ещё
    Сайт программиста 1С Битрикс
    Сайт программиста
    1C Битрикс
    О себе
    Услуги
    Портфолио
    Готовые сайты
    1С Битрикс
    CRM
    Контакты
    Сайт программиста 1С Битрикс
    Сайт программиста
    1C Битрикс
    • Главная
    • О себе
    • Услуги
      • Назад
      • Услуги
      • Перевод сайта на https
      • Создание сайтов
      • Интеграция сайта с 1С
      • Выгрузка товаров в Яндекс.Маркет
      • Композитный сайт
      • Внутренняя оптимизация сайта
      • Доработка сайтов
      • Импорт каталога из файла поставщика
      • Перенос сайта на 1С Битрикс
      • Парсинг контента
      • Установка готового сайта
      • Купить лицензию 1С Битрикс
      • Битрикс 24
      • Настройка служб доставки
      • Интеграция с соцсетями
      • Заказ на Маркете
      • Сопровождение сайтов на 1С Битрикс
      • Поиск и удаление вирусов
      • Настройка платежных систем
      • Выгрузка товаров на Hotline
    • Портфолио
    • Готовые сайты
      • Назад
      • Готовые сайты
      • Недвижимость
      • Медицина
      • Ресторанный бизнес
      • Автомобили и автозапчасти
      • Бухгалтерские и юридические услуги
      • Государство
      • Детские товары
      • Красота и здоровье
      • Мебель, интерьер, декор
      • Образование
      • Одежда и обувь
      • Подарки и сувениры
      • Продукты питания
      • Спорт, туризм и отдых
      • Строительство, ремонт, инструменты
      • Товары для животных
      • ТСЖ, ЖСК
      • Украшения, аксессуары, подарки
      • Электроника и бытовая техника
      • Универсальные
      • Разное
    • 1С Битрикс
      • Назад
      • 1С Битрикс
      • Старт (6 200 ₽)
      • Стандарт (17 900 ₽)
      • Малый бизнес (40 900 ₽)
      • Бизнес (83 900 ₽)
      • Интернет-магазин + CRM (99 000 ₽)
      • Продление лицензии
      • Сравнить редакции
    • CRM
    • Контакты
    • Личный кабинет
    • +7 (904) 589-06-04
    Будьте на связи
    info@sng-it.ru
    • Вконтакте
    • YouTube

    Битрикс: оплата заказа по ссылке

    • Главная
    • ❶ Сниппеты
    • ❷ Битрикс: оплата заказа по ссылке
    Зачем нужна ссылка на оплату заказа?

    Заказы часто создают сами менеджеры через админку битрикса. Чтобы пользователь мог оплатить заказ, ему можно скинуть ссылку на оплату.

    • Шаг 1. Создаем свойство заказа в админке 1С Битрикс

    • Шаг 2. Добавляем событие "при сохранении заказа" в init.php

      
      Main\EventManager::getInstance()->addEventHandler(
              'sale', 'OnSaleOrderSaved', 'PayLink'
      );
      
      function PayLink(Main\Event $event) {
          CModule::IncludeModule("sale");
          $order = $event->getParameter("ENTITY");
          $paymentIds = $order->getPaymentSystemId();
          $personTypeId = $order->getPersonTypeId();
          $propertyCollection = $order->getPropertyCollection();
      
          if ($paymentIds[0] == 10) {
              $orderPropertyId = ($personTypeId == 1) ? 55 : 56;
              $somePropValue = $propertyCollection->getItemByOrderPropertyId($orderPropertyId);
              if (!$somePropValue) {
                  CSaleOrderPropsValue::Add(array(
                      'ORDER_ID' => $order->getId(),
                      'ORDER_PROPS_ID' => $orderPropertyId,
                      'NAME' => "Ссылка на оплату",
                      'VALUE' => "https://" . $_SERVER["SERVER_NAME"] . "/pay.php?ORDER_ID=" . $order->getId(),
                      'CODE' => "PAY_LINK",
                  ));
              } else {
                  $propValue = $somePropValue->getValue();
                  if (empty($propValue)) {
                      // $somePropValue->setValue("https://pk-optex.ru/personal/order/payment/?ORDER_ID=".$order->getId());
                      $somePropValue->setValue("https://" . $_SERVER["SERVER_NAME"] . "/pay.php?ORDER_ID=" . $order->getId());
                      $somePropValue->save();
                  }
              }
          }
      }
      
      

      Обратите внимание, что в коде используются идентификаторы платежной системы ($paymentIds[0] == 10) и типа платильщика $personTypeId.

      Ссылка на оплату будет иметь следующий вид: https://ваш_домен/pay.php?ORDER_ID=10

      битрикс ссылка на оплату

    • Шаг 3. Создаем страницу оплаты

      Cоздаем в корне сайта файл pay.php и добавляем в него код:

      
      require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
      use \Bitrix\Sale;
      
      CModule::IncludeModule("sale");
      $ORDER_ID=intval($_GET["ORDER_ID"]);
      
      $orderObj  = Sale\Order::load( $ORDER_ID );
      $paymentCollection  =  $orderObj ->getPaymentCollection();
      $payment  =  $paymentCollection [0];
      $service  = Sale\PaySystem\Manager::getObjectById( $payment ->getPaymentSystemId());
      $context  = \Bitrix\Main\Application::getInstance()->getContext();
      $service ->initiatePay( $payment ,  $context ->getRequest()); 
       
      $initResult = $service->initiatePay($payment, $context->getRequest(), \Bitrix\Sale\PaySystem\BaseServiceHandler::STRING);
      $buffered_output = $initResult->getTemplate();
      
      

      <sc ript type="text/javascript"> document.getElementsByTagName('form')[0].submit(); </sc ript>


    Теги: оплата

    Поделиться:
    Назад к списку
    • Услуги
    • Услуги
    • Блог
    • Видеоуроки
    • Скидки на 1C Битрикс
    • Новости интернета
    • Сниппеты

    Аудит сайта

    © 2010-2023 Сайт битрикс программиста Семена Голикова.

    Отправляя любую форму на сайте, вы соглашаетесь с политикой конфиденциальности данного сайта.
    - карта сайта
    Главное
    Информация
    Помощь
    • О себе
    • Услуги
    • Готовые сайты
    • Портфолио
    • Купить лицензию 1С Битрикс
    • Битрикс24
    • Контакты
    • Акции
    • Видеоуроки
    • Блог
    • Новости интернета
    • Про интеграцию с 1С
    • Внутренняя оптимизация сайта
    • Сниппеты
    • Хостинг для битрикс
    • Партнерам
    • Отзывы
    • Техподдержка
    +7 (904) 589-06-04
    - позвонить в WhatsApp
    Социальные сети:
    - карта сайта © 2010-2023 Сайт битрикс программиста Семена Голикова.
    Отправляя любую форму на сайте, вы соглашаетесь с политикой конфиденциальности данного сайта.