Интеграция с платежным шлюзом LifePay
Платежный шлюз LifePay позволяет организовать прием средст на сайте.
Сайт шлюза - https://life-pay.ru
Выставление счета: https://apidoc.life-pay.ru/bill/index/#create
Оповещение о результате: https://apidoc.life-pay.ru/notification/index#
Выставление счета
Узнаем в ЛК lifepay свой апи-ключ, сохраняем в настройках
Создаем вызов внешнего АПИ (например, в форме в SaveItem в SELECT 2).
Исходящий апи-запрос (request)
CREATE PROCEDURE [dbo].[api_lifepay_bill_request]
@parameters ExtendedDictionaryParameter READONLY, -- (Key, Value2)
@username nvarchar(32) -- current site user
AS
BEGIN
declare @finID int=isnull(try_cast((SELECT Value2 from @parameters where [Key]='finID') as int),0) –документ, с которого берем параметры
-- SELECT 1 Msg, Result, Url (outer request url)
select '' Msg, 1 Result, 'https://api.life-pay.ru/v1/bill' Url
declare @prm nvarchar(max)=
(select '{"apikey":"'+dbo.as_setting('lifepay_key','')+'",'+
' "login":"'+dbo.as_setting('lifepay_login','')+'",'+
' "amount":'+cast(f.amount as nvarchar)+','+
' "description":"Оплата за заказ '+cast(o.id as nvarchar)+' от '+convert(nvarchar,o.created,104)+'",'+
' "customer_phone":"'+u.phone+'",'+ –телефон в формате 7хххххххххх
' "customer_email":"'+u.email+'"}'
from srv_finances f
join srv_orders o on o.id=f.orderID
join as_users u on u.id in(f.userFromID,f.userToID)
where f.id=@finID)
–заносим в протокол
insert as_trace(header,[text],code,created) values('lifepay request','prm='+@prm,'lifepay',getdate())
-- SELECT 2 PARAMETERS - request parameters
select 'data' name, @prm value, 'json' [type]
END
API-ответ (response)
CREATE PROCEDURE [dbo].[api_lifepay_bill_response]
@response nvarchar(max),
@parameters ExtendedDictionaryParameter READONLY, --(Key, Value2 - same as in request)
@username nvarchar(32)
AS
BEGIN
declare @finID int=isnull(try_cast((SELECT Value2 from @parameters where [Key]='finID') as int),0)
declare @code int=-1, @msg nvarchar(max)='not json'
if isJson(@response)=1 select @code=isnull(try_cast(json_value(@response,'$.code')as int),-2), @msg=isnull(json_value(@response,'$.message'),'')
–протоколируем
insert as_trace(header,[text],code,created) values('lifepay response',left('code='+cast(@code as nvarchar)+',message='+@msg+',other='+@response,2000),'lifepay',getdate())
–если ошибок нет - запоминаем внешний ИД счета
if @code=0 update srv_finances set lifepay_num=json_value(@response,'$.data.number') where id=@finID
if @code>0 update srv_finances set statusID=(select id from srv_financeStatuses where code='error') where id=@finID
-- SELECT 1
select '' Msg, 1 Result, @response Response
-- SELECT 2 Outer actions
END
Оповещение о проведении операции
Cоздаем обработку входящего вызова АПИ
в настройках ЛК lifepay в закладке интеграции прописываем путь к методу
CREATE PROCEDURE [dbo].[api_lifepay-status_lifepay-status]
@parameters ExtendedDictionaryParameter READONLY,
@username nvarchar(256)
as
begin
declare @s nvarchar(max)=isnull((select value2 from @parameters where [key]='data'),'')
–протоколируем
insert as_trace(header,[text],code,created) values('lifepay webhook',left(@s,2000),'lifepay',getdate())
if isJson(@s)=0 begin
select 'Ошибка: запрос не в JSON' Msg, 0 Result, 405 errorCode
return
end
declare @num nvarchar(50)=json_value(@s,'$.number')
declare @status nvarchar(50)=json_value(@s,'$.status')
declare @finID int=isnull((select id from srv_finances where lifepay_num=@num),0)
if @finID=0 begin
select 'Ошибка: не найден первичный документ' Msg, 0 Result, 404 errorCode
return
end
-- SELECT 1 - API result metadata
select '' Msg, 1 Result, 0 errorCode
--select 2
update srv_finances set statusID=(select id from srv_financeStatuses where code=iif(@status='success','pay','error')), statusDate=getdate() where id=@finID
declare @orderID int=(select orderID from srv_finances where id=@finID)
exec dbo.srv_orderChangeStatus @orderID=@orderID, @status='', @comment='', @username='admin' –обработка смены статуса документа
-- SELECT 2 - API data with free col names
end
Falcon Space - функциональная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space
Google поиск по нашей документации
- Руководства
- Основа Falcon Space
- Основные компоненты
- Возможности
- Коммуникация с пользователем
- Дизайн, стилизация, юзабилити
- Лендинги
- Универсальный API
- Примеры интеграций Прием платежей через Яндекс.Кассу Онлайн-платежи. Интеграция с Робокассой (платежный шлюз) Zapier интеграция на платформе Falcon Space Интеграция коллтрекинга МАНГО ОФИС (режим Площадка) Интеграция API DaData.ru подсказки по адресам Интеграция API Курсы валют Центрального Банка РФ в веб-платформе Falcon Space Интеграция API Почта РФ Интеграция API Служба доставки СДЭК (CDEK) Интеграция API Служба доставки Деловые линии Интеграция импорт и парсинг файла CSV Интеграция API IpGeoBase Город по IP-адресу Интеграция API DaData.ru Город по IP-адресу Как вычислить расстояние между 2 точками с координатами через Google Maps Сканирование штрихкодов и QR кодов через камеру и с картинок Получение данных контрагента по ИНН Прием платежей на сайте через CloudPayments Как сделать интеграцию с Мой Склад Внедрение подсказок dadata на сайт Вывод точек на карте Яндекс. Интеграция с Яндекс Карты Интеграция с телефонией Zadarma.com Получение данных о контрагенте - интеграция с сервисом ЗаЧестныйБизнес Интеграция с AMO CRM Как импортировать данные в базу CRM из Google Контакты Вход/регистрация через ВКонтакте(vk.com) Интеграция CRM с онлайн чатом на сайте (Replain) Как связать yandex metrika clientID с пользователем на сайте и посмотреть полный путь его по сайту? Телеграм. Работа с файлами Как сделать обработку входящей почты (создание клиента в CRM из Email) Интеграция сайта с ChatGPT (openAI) Интеграция с Яндекс Метрика Интернет-эквайринг Тинькоф Банк Интеграция с платежным шлюзом LifePay Как сделать вебхук для передачи данных с Тильды на Falcon Space Пополнение средств через Yookassa (Юкасса) Тинькофф Банк - уведомление в учетную систему по операциям с расчетным счетом Интеграция с Ютуб. Получение роликов канала Интеграция с Ozon, Wildberries - извлечение статистики
- Каталоги
- Навигация
- Документы
- Дополнительные компоненты
- Продвижение, SEO
- Системные моменты
- Системное администрирование
- HOWTO
- Таблицы
- Формы
- Загрузка файлов, картинок
- Работа с SQL
- HOWTO JS
- HOWTO Верстка
- Решение проблем
Выгода от использования Falcon Space
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Нужна бесплатная консультация?
Планируете делать веб-проект?
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта