Интеграция с платежным шлюзом 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 (Юкасса) Тинькофф Банк - уведомление в учетную систему по операциям с расчетным счетом Интеграция с Ютуб. Получение роликов канала
- Каталоги
- Навигация
- Документы
- Дополнительные компоненты
- Продвижение, SEO
- Системные моменты
- Системное администрирование
- HOWTO
- Таблицы
- Формы
- Загрузка файлов, картинок
- Работа с SQL
- HOWTO JS
- HOWTO Верстка
- Решение проблем
Falcon Space
Это снижение стоимости владения
за счет меньшего количества людей для поддержки и узкого стека разработки. Про снижение стоимости владения продуктом
Это быстрое внесение изменений
по ходу эксплуатации программы. Как создается функционал на платформе
Это простой удобный интерфейс
адаптация под мобильные устройства. Про юзабилити платформы
Нужна бесплатная консультация?
Получить оценку проекта
Создайте концепцию проекта на основе нашего шаблона и получите оценку проекта в виде КП.
Демо-сайт решений
Базисные решения, которые можно гибко адаптировать под себя: менять внешний вид, бизнес-логику и даже структуру базы данных.