Написать скрипт обработки платежа

3 000 руб. за проект
03 мая 2021, 14:29 • 4 отклика • 52 просмотра
Написать скрипт обработки платежа, на который пользователь переходит из личного кабинета нашего сервиса, и далее направляется этим скриптом на платежную страницу платёжной системы (аналог робокасса, cloudpayments, и т.п.), где пользователь вводит данные своей банковской карты, и в зависимости от результата оплаты направляется обратно на UrlSuccess в случае удачного платежа, или на UrlFailed в случае неудачного платежа. В случае удачного платежа необходимо передать информацию о пополнении баланса личного кабинета на сумму платежа.

Просьба откликаться, только если уже выполняли ранее подобные интеграции с любыми платежными сервисами (с редиректом на HPP - Hosted Payment Page, или если выполняли по схеме S2S / H2H - еще лучше, здесь точно справитесь).

Параметры формы, которые будут переданы из личного кабинета на этот скрипт оплаты:
MerchantId - ваш merchantId, указанный в настройках
InvoiceId - идентификатор транзакции в личном кабинете
Amount - Сумма платежа
Currency - Валюта платежа
AccountId - Акк Id пользователя
AccountNumberId - Account Number Id пользователя
Name - Имя пользователя
LastName - Фамилия пользователя
Email - Email пользователя
Lang - Язык интерфейса
UrlSuccess: Ссылка, на которую нужно перенаправить пользователя после удачного платежа
UrlFailed: Ссылка, на которую нужно перенаправить пользователя после не удачного платежа или ошибки
UrlResult: Ссылка на скрипт, на который необходимо отправить POST запрос с данными платежа в случае успешного платежа.
Sign - подпись запроса. Это MD5 от контентации всех значений запроса плюс ваш secretKey. При этом все поля должны быть отсортированы. const getSig = (post, secretKey) => {
const str = Object.keys(post)
.sort()
.filter(name => post[name] && name !== 'Sign')
.map(name => post[name]);

str.push(secretKey);

return MD5(str.join(''), 'hex').toLowerCase();
};
Параметры, которые необходимо передать в UrlResult:
MerchantId - ваш merchantId, указанный в настройках
InvoiceId - идентификатор транзакции в личном кабинете, переданный в запросе
Amount - Сумма платежа. Должна совпадать с тем, что было передано в запросе.
Currency - Валюта платежа. Должна совпадать с тем, что было передано в запросе.
TransactionId - id транзакции в платежной системе
Status - статус операции. Для успешной операции необходимо передать success
Purse - кошелек, с которого пользователь произвел оплату (если известен)
Sign - Подпись запроса. Формируется также, как и в запросе.

Ссылка на API документацию нашего сервиса:
https://docs.google.com/document/d/17I06cT9A_PX_89URFOUXlu3oBYdm3sYHMvRtEx6gAOA/edit#

Ссылка на API документацию платежной системы:
https://documenter.getpostman.com/view/7445020/TVKFyFni#62df7e2c-836c-4511-8cff-932519ae5f2f