РуководстваОснова Falcon SpaceОсновные компонентыВозможностиКоммуникация пользователейДизайн, стилизация, юзабилитиЛендингиУниверсальный APIИнтеграции
Подключение к удаленным серверам SQL Server через Linked ServerZapier интеграция на платформе Falcon SpaceПрием платежей через Яндекс.КассуИнтеграция с Робокассой (платежный шлюз)Пополнение средств через Yookassa (Юкасса)Прием платежей на сайте через CloudPaymentsИнтеграция с платежным шлюзом LifePayУведомление от ТБанка по операциям с расчетным счетомИнтернет-эквайринг Тинькоф БанкИнтеграция API DaData.ru подсказки по адресамИнтеграция коллтрекинга МАНГО ОФИС (режим Площадка)Интеграция API Курсы валют Центрального Банка РФИнтеграция API Почта РФИнтеграция API Служба доставки СДЭК (CDEK)Интеграция API Служба доставки Деловые линииИнтеграция API IpGeoBase Город по IP-адресуИнтеграция API DaData.ru Город по IP-адресуКак вычислить расстояние между 2 геоточками через Google MapsКак сделать интеграцию с Мой СкладКак сделать вебхук для передачи данных с Тильды на Falcon SpaceСканирование штрихкодов и QR кодов через камеру смартфонаПолучение данных контрагента по ИННВнедрение подсказок dadata на сайтВывод точек на карте Яндекс. Интеграция с Яндекс КартыИнтеграция с телефонией Zadarma.comПолучение данных о контрагенте - интеграция ЗаЧестныйБизнесИнтеграция с AMO CRMИмпорт контактов в CRM из Google КонтактыВход/регистрация через ВКонтакте(vk.com)Интеграция CRM с онлайн чатом на сайте (Replain)Как связать yandex metrika clientID с пользователем сайта?Как сделать обработку входящей почты (создание клиента в CRM из Email)Интеграция сайта с ChatGPT (openAI)Интеграция с Яндекс МетрикаИнтеграция с Youtube. Получение роликов каналаИнтеграция с Ozon, Wildberries - извлечение статистикиИнтеграция с API Яндекс Вебмастер
КаталогиНавигацияДокументыДополнительные компонентыПродвижение, SEOСистемные моментыСистемное администрированиеHOWTOТаблицыФормыПоля формыЗагрузка файлов, картинокHOWTO SQLHOWTO JSHOWTO ВерсткаРешение проблем
Выгода от использования Falcon Space
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Интеграция с платежным шлюзом 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 поиск по нашей документации
Нужна бесплатная консультация?
Планируете делать веб-проект?
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта