Интеграция 1С-Битрикс с платёжной системой PayKeeper

Интеграция 1С-Битрикс с платёжной системой PayKeeper Интеграция платёжного шлюза PayKeeper с 1С-Битрикс — задача, с которой сталкивается каждый, кто хочет получить полный контроль над платежами. Без правильной обработки уведомлений и фискализации магазин рискует потерять деньги и получить штраф.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Интеграция 1С-Битрикс с платёжной системой PayKeeper
Средний
~1-2 недели

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1415
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    995
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    734
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    863
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    772
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1134

Интеграция 1С-Битрикс с платёжной системой PayKeeper

Интеграция платёжного шлюза PayKeeper с 1С-Битрикс — задача, с которой сталкивается каждый, кто хочет получить полный контроль над платежами. Без правильной обработки уведомлений и фискализации магазин рискует потерять деньги и получить штраф. Мы решаем эту проблему на проектах с 2018 года: за 5 лет реализовали более 30 интеграций — от интернет-магазинов до B2B-порталов.

Недавно мы внедряли PayKeeper для магазина с 10 000 заказов в месяц. Требовалась полная фискализация по 54-ФЗ и обработка возвратов. Результат: время оплаты сократилось до 15 секунд, а комиссия оказалась на 20% ниже, чем у YooKassa.

Как работает PayKeeper?

PayKeeper — это PHP-приложение, которое работает как платёжный сервер на вашем домене или в облаке. Магазин через API создаёт счёт, получает URL формы оплаты, покупатель вводит данные карты. Уведомления об оплате приходят на result_url. Как указано в документации PayKeeper, все запросы защищены MD5-подписью.

Формирование инвойса через API

$apiUrl = $this->getBusinessValue($payment, 'PAYKEEPER_URL'); // https://your.paykeeper.ru $clientId = $this->getBusinessValue($payment, 'PAYKEEPER_USER'); $clientSecret = $this->getBusinessValue($payment, 'PAYKEEPER_PASSWORD'); $orderId = $payment->getOrder()->getId(); $sum = $payment->getSum(); // Получить токен $tokenResponse = $this->httpPost($apiUrl . '/info/settings/token/', [], [ 'Authorization: Basic ' . base64_encode("{$clientId}:{$clientSecret}"), ]); $token = $tokenResponse['token']; // Создать инвойс $invoiceParams = [ 'pay_amount' => number_format($sum, 2, '.', ''), 'clientid' => $payment->getOrder()->getUserId(), 'orderid' => $orderId, 'client_email' => $email, 'client_phone' => $phone, 'service_name' => 'Оплата заказа №' . $orderId, ]; $invoiceParams['token'] = md5(implode('', $invoiceParams) . $token); $invoice = $this->httpPost($apiUrl . '/change/invoice/preview/', $invoiceParams); // $invoice['invoice_id'] — ID счёта // Платёжная форма: $apiUrl . '/?id=' . $invoice['invoice_id'] 

Обработка уведомлений

PayKeeper отправляет POST на result_url при оплате:

$clientSecret = $this->getBusinessValue($payment, 'PAYKEEPER_PASSWORD'); $id = $_POST['id']; $sum = $_POST['sum']; $orderId = $_POST['orderid']; $key = $_POST['key']; // Проверка подписи $expected = md5($id . $sum . $orderId . $clientSecret); if (strtolower($key) !== strtolower($expected)) { http_response_code(400); echo 'bad signature'; exit; } // Дополнительная проверка через API $paymentInfo = $this->httpGet($apiUrl . '/info/payments/byid/', ['id' => $id], $token); if ($paymentInfo['status'] === 'paid') { // Подтвердить платёж в Битрикс $order = \Bitrix\Sale\Order::loadByAccountNumber($orderId); // ... setPaid('Y'), save() } echo 'OK'; 

Почему выбирают PayKeeper?

PayKeeper экономит до 20% на комиссиях по сравнению с YooKassa при обороте от 1 млн рублей в месяц. Данные клиентов остаются на вашем сервере — вы не зависите от внешнего шлюза. В отличие от Robokassa, здесь полный контроль: свой домен, свои сертификаты. При этом поддерживаются все функции: счета, возвраты, фискализация.

Что такое self-hosted PayKeeper?

Поскольку PayKeeper можно установить на вашем домене, URL API у каждого магазина свой. В настройках платёжной системы в Битрикс нужно предусмотреть поле для URL PayKeeper-сервера, а не хардкодить его. Это важно при работе с несколькими магазинами или при смене хостинга.

Возвраты

PayKeeper поддерживает возвраты через API:

$refundParams = [ 'id' => $paykeeperPaymentId, 'amount' => number_format($refundAmount, 2, '.', ''), ]; $refundParams['token'] = md5(implode('', $refundParams) . $token); $result = $this->httpPost($apiUrl . '/change/payment/return/', $refundParams); 

Как обеспечить 54-ФЗ?

PayKeeper имеет встроенную интеграцию с онлайн-кассами (ОФД). Данные чека передаются при создании инвойса в параметрах корзины. Состав позиций берётся из $order->getBasket(). Настраиваем передачу всех реквизитов для соответствия Федеральному закону 54-ФЗ. Гарантируем корректную фискализацию возвратов.

Обработка ошибок и повторные попытки

PayKeeper может временно недоступен или вернуть ошибку timeout. Поэтому в код интеграции нужно добавить механизм очередей:

// Если платёж не подтвердился, повторить через 5 минут if ($attempt < 3) { \Bitrix\Sale\PaymentCollection::addToQueue([ 'order_id' => $orderId, 'attempt' => $attempt + 1, 'next_try' => (new \DateTime())->modify('+5 minutes') ]); } 

Также важно логировать все запросы и ответы от PayKeeper для отладки. Сохраняйте в таблицу b_sale_payment_log или аналог все POST-запросы и responses с timestamp'ами.

Безопасность при работе с чувствительными данными

Требования 54-ФЗ и ПДП:

  • Не передавайте полные номера карт в логи — маскируйте последние 4 цифры
  • Используйте HTTPS для всех запросов (отключите проверку сертификата только в разработке)
  • Храните PAYKEEPER_PASSWORD только в .env или в защищённой таблице конфигов, никогда не в HTML

Типичные ошибки при интеграции PayKeeper

  • Не проверять подпись уведомления. Без проверки key злоумышленник подделает уведомление — мы всегда валидируем md5 с секретом.
  • Хардкодить URL сервера. PayKeeper может быть установлен на любом домене — используйте настройки в админке, а не константы.
  • Игнорировать фискализацию частичных возвратов. При частичном возврате передавайте только возвращаемые позиции — это критично для ОФД.
  • Пропускать очередь уведомлений. Если result_url подвис, платёж остаётся необработанным. Добавьте фоновый job, который опрашивает статус каждый час.
  • Путать статусы платежей. PayKeeper вернёт paid, failed, cancelled — обрабатывайте каждый статус правильно в Битрикс.

Что входит в нашу работу?

Этап Детали
Аналитика Изучаем платёжную схему, требования по фискализации, выбираем способ установки PayKeeper
Разработка Модуль с настройками, сценарии оплаты, возврата, уведомлений
Фискализация Настройка передачи чеков в ОФД по 54-ФЗ
Тестирование Проверка всех сценариев: успех, отказ, возврат, частичный возврат
Документация Инструкция для администратора и техподдержки

Сроки ориентировочно

Задача Срок
Получение токена + создание инвойса + обработка уведомлений 2–3 дня
Возвраты +1 день
Фискализация +1–2 дня
Тестирование 0.5–1 день

Стоимость рассчитывается индивидуально. Мы работаем с любыми версиями Битрикс (Cloud и On-Premise) и гарантируем совместимость с последними обновлениями. Свяжитесь с нами для оценки вашего проекта и получите бесплатную консультацию по интеграции PayKeeper.