Онлайн-платежи. Интеграция с Робокассой (платежный шлюз)

Настройка в кабинете робокассы
Для совершения платежей через Робокассу необходимо создать магазин и активировать его.



В кабинете выбирае пункт “Мои магазины”, далее “Добавить новый”.
Следуем дальнейшим инструкциям сайта.  После создания магазина, Вы можете совершать только тестовые платежи (с помощью тестовых ключей).
Для реализации настоящих, Вам потребуется активировать свой магазин.




При переходе на активацию, Вам предложат заполнить личные данные.
При переходе туда, будет доступно 2 способа предоставления паспортных данных.

После предоставления данных, через некоторое время менеджер сообщит Вам, что магазин активирован и может осуществлять “живые” переводы.
Далее необходимо заполнить технические настройки кассы.



Вы должны указать два пароля (они используются алгоритмом робокассы для верификации платежей), также нужно указать адреса ответов транзакций.
Рекомендуется указывать метод POST, такак необходимые данные будет приходить в Request.Form, об этом ниже. Для тестов используйте пароли в соответствующем блоке робокассы.




Создание основных страниц (Falcon)

 Реализация метода АПИ и его настройки (с процедурой)
  1.  Метод АПИ, который должен инициировать оплату. Для кнопки необходимо составить URL ссылку следующего вида:
https://auth.robokassa.ru/Merchant/Index.aspx?MerchantLogin={Login}&OutSum={sum}&InvId={invID}&InvDesc={Desc}&SignatureValue={pas1}&Culture=ru&IsTest=1

Где:
  • MerchantLogin идентификатор магазина на робокассе
  • OutSum сумма платежа
  • InvId id транзакции платежа (ваш внутренний)
  • InvDesc описание транзакции
  • SignatureValue пароль, которым будет шифроваться сообщение, здесь pas1 

Для генерации ссылки используйте sql функцию:
declare @robokassa_token nvarchar(512), @robokassa_payPage nvarchar(512)

declare @robokassa_settings table (code nvarchar(256), value nvarchar(512))

insert into @robokassa_settings
select code, value
from as_settings
where code like 'api_robokassa%'

select @robokassa_token = value
from @robokassa_settings
where code = 'api_robokassa_token'
    
select @robokassa_payPage = value
from @robokassa_settings
where code = 'api_robokassa_payPage'
 
[dbo].payment_robokassa_getLink( 3, 100,'Desc Product 1 ', 1, 'falconspace', @robokassa_token, @robokassa_payPage)
 

2. Метод ResultUrl 

В кабинете робокассы, вы указываете на какой адрес будет приходить post форма с ответом, также указываете как помечать запросы удачные и неудачные. Для примера:
Внутри метода robokassaResult вы должны получить следующие данные из RequestForm полей:
  • OutSum
  • InvId
  • SignatureValue
Далее объединяете все параметры по паттерну: {OutSum}:{InvId}:{pas2} и вот этот результат отправляем в функцию md5 вычисления хэша, 
полученный хэш должен полностью совпадать с SignatureValue, если так и есть, значит ответ и перевод верифицированы и все хорошо,

транзакция прошла успешно (конечно при условии, что вы попали в Success Url)
https://docs.robokassa.ru/#1250


3. SuccessUrl и FailUrl

1. В настройках магазина указываем: 
Success Url = /robokassaPayment
Fail Url = /robokassaPayment/fail

2. Настраиваем страницу robokassaPayment
Тело страницы: 
<div>{sp-result}</div>

SELECT 3 в SQL страницы: 
select iif(@itemID='fail', 'Оплата не прошла', 'Оплата прошла успeшно')


Примечание