1. Кнопка перехода на страницу виджета – перевод на карту админа
<a href="https://alfa.rbsuat.com/sc/***" target="_blank" class="btn btn-dark">
<i class="fas fa-external-link-alt"></i> Пополнение через Альфа-банк
</a>
Ссылку можно получить в ЛК Альфа банка
2. Кнопка показа qr-кода с ссылкой на тот же виджет
<a href="#" class="as-modal btn btn-dark" data-title="Пополнение через QR Код"
data-content="<center><img src=''/uploads/qrcode.png''></img></center>"
data-big="0" data-slideout="2"><i class="fas fa-qrcode"></i> Пополнение через QR Код
</a>
Сам код (картинку) можно так же скачать в ЛК Альфа банка
3. Оповещение о входящих платежах по API (вебхук)
Сначала через техподдержку включаете отдельную страницу в ЛК – оповещение
На ней прописываете свой метод обработки вызова (создаем входящий метод на /asapi), в котором происходит обработка, что платеж прошел (и пополняется баланс пользователя на сайте).
CREATE PROCEDURE [dbo].[api_rm_alpha_rm_alpha]
@parameters ExtendedDictionaryParameter READONLY,
@username nvarchar(256) -- API login (not as_users login)
as
begin
declare @status int=isnull((select try_cast(Value2 as int) from @parameters where [Key]='status'),0) -- = 1
declare @remoteIP nvarchar(max)=isnull((select Value2 from @parameters where [Key]='remoteIP'),'') -- = 62.76.205.119
declare @cardholderName nvarchar(max)=isnull((select Value2 from @parameters where [Key]='cardholderName'),'') -- = SUCCESS PAYMENT
declare @bankName nvarchar(max)=isnull((select Value2 from @parameters where [Key]='bankName'),'') -- = TEST BANK-A
declare @panMasked nvarchar(max)=isnull((select Value2 from @parameters where [Key]='panMasked'),'') -- = 411111**1111
declare @amount int=isnull((select try_cast(Value2 as int) from @parameters where [Key]='amount'),0) -- = 10800
declare @date datetime=isnull(try_convert(datetime,(select value2 from @parameters where [key]='date'),104),'1900-01-01')
if @remoteIP not like '217.12.101.%' and @remoteIP not like '62.76.205.%' begin select 'Wrong IP' Msg, 0 Result exec as_print 'Wrong IP' return end
if @status=1 begin
insert rm_fins (typeID,amount,created,alphaName,alphaBank,alphaPan) select id,@amount/100,@date,@cardholderName,@bankName,@panMasked from rm_finTypes where code='alpha'
declare @id int=scope_identity()
exec dbo.fin_calcClient @finID=@id –-обработка платежа как выполненного
end
-- SELECT 1 - API result metadata
select '' Msg, 1 Result, 0 ErrorCode, 0 OnlyData
end
Документация АльфаБанк по вебхуку - https://alfabank.ru/sme/payservice/internet-acquiring/docs/documentation-r/?rp-menuOpen=1&rp-path=ru%2Fintegration%2Fapi%2Frest.html%23callback-notifications
Процедура отсеивает возможные ложные обращения по IP, и если платеж прошел – сохраняет его и обрабатывает.
У Альфа-банка есть тестовая среда, где можно обкатать обработку, и только потом переключится на реальные карты.