Robokassa подключение на php

Примеры скриптов на PHP, ASP.NET, Python.

Вы можете использовать весь функционал нашего сервиса без собственного сайта, подключить к нему сайт на той или иной системе управления – или, если вы разбираетесь в программировании, сделать всё самостоятельно. Рассмотрим примеры скриптов на PHP, ASP.NET и Python (проекты на Django).

Скачать архив с примерами реализации кода, можно здесь.

Формирование URL переадресации пользователя на оплату.

// your registration data
$mrh_login = «test»; // your login here
$mrh_pass1 = «securepass1»; // merchant pass1 here

// order properties
$inv_id = 5; // shop’s invoice number
// (unique for shop’s lifetime)
$inv_desc = «desc»; // invoice desc
$out_summ = «5.12»; // invoice summ

// build CRC value
$crc = md5(«$mrh_login:$out_summ:$inv_id:$mrh_pass1»);

// print URL if you need
echo «Payment link»;

Получение уведомления об исполнении операции (ResultURL)

// as a part of ResultURL script

// your registration data
$mrh_pass2 = «securepass2»; // merchant pass2 here

// HTTP parameters:
$out_summ = $_REQUEST[«OutSum»];
$inv_id = $_REQUEST[«InvId»];
$crc = strtoupper($_REQUEST[«SignatureValue»]);

// build own CRC
$my_crc = strtoupper(md5(«$out_summ:$inv_id:$mrh_pass2»));

if ($my_crc != $crc)
<
echo «bad sign\n»;
exit();
>

// print OK signature
echo «OK$inv_id\n»;

// perform some action (change order state to paid)

Проверка параметров в скрипте завершения операции SuccessURL)

// as a part of SuccessURL script

// your registration data
$mrh_pass1 = «securepass1»; // merchant pass1 here

// HTTP parameters:
$out_summ = $_REQUEST[«OutSum»];
$inv_id = $_REQUEST[«InvId»];
$crc = $_REQUEST[«SignatureValue»];

$crc = strtoupper($crc); // force uppercase

// build own CRC
$my_crc = strtoupper(md5(«$out_summ:$inv_id:$mrh_pass1»));

if ($my_crc != $crc)
<
echo «bad sign\n»;
exit();
>

// you can check here, that resultURL was called
// (for better security)

// OK, payment proceeds
echo «Thank you for using our service\n»;

ASP.NET

Скачать архив с примерами реализации кода, можно здесь.

Формирование URL-переадресации пользователя на оплату.

public partial class Init : System.Web.UI.Page

protected void Page_Load(object sender, EventArgs e)

// your registration data

string sMrchLogin = «test»;

string sMrchPass1 = «securepass1»;

decimal nOutSum = 5.12M;

string sDesc = «desc»;

string sOutSum = nOutSum.ToString(«0.00», CultureInfo.InvariantCulture);

string sCrcBase = string.Format(«<0>:<1>:<2>:<3>«,

sMrchLogin, sOutSum, nInvId, sMrchPass1);

// build CRC value

MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();

byte[] bSignature = md5.ComputeHash(Encoding.ASCII.GetBytes(sCrcBase));

StringBuilder sbSignature = new StringBuilder();

foreach (byte b in bSignature)

string sCrc = sbSignature.ToString();

// LinkButtonPay is System.Web.UI.WebControls.LinkButton;

LinkButtonPay.Text = «Payment link»;

Получение уведомления об исполнении операции ResultURL

using System;
using System.Web;
using System.Text;
using System.Globalization;
using System.Security.Cryptography;

public partial class Result : System.Web.UI.Page
<
protected void Page_Load(object sender, EventArgs e)
<
// your registration data
string sMrchPass2 = «securepass2»;

// HTTP parameters
string sOutSum = GetPrm(«OutSum»);
string sInvId = GetPrm(«InvId»);
string sCrc = GetPrm(«SignatureValue»);

string sCrcBase = string.Format(«<0>:<1>:<2>«,
sOutSum, sInvId, sMrchPass2);

// build own CRC
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
byte[] bSignature = md5.ComputeHash(Encoding.ASCII.GetBytes(sCrcBase));

Рекомендуем:  Как проштробить стену под проводку без пыли перфоратором своими руками

StringBuilder sbSignature = new StringBuilder();
foreach (byte b in bSignature)
sbSignature.AppendFormat(«<0:x2>«, b);

string sCrc = sbSignature.ToString();

if (sMyCrc.ToUpper() != sCrc.ToUpper())

// perform some action (change order state to paid)

private string GetPrm(string sName)

sValue = HttpContext.Current.Request.Form[sName] as string;

sValue = HttpContext.Current.Request.QueryString[sName] as string;

Проверка параметров в скрипте завершения операции (SuccessURL)

using System;
using System.Web;
using System.Text;
using System.Globalization;
using System.Security.Cryptography;

public partial class Success : System.Web.UI.Page

protected void Page_Load(object sender, EventArgs e)

// your registration data

string sMrchPass1 = «securepass1»;

string sOutSum = GetPrm(«OutSum»);

string sInvId = GetPrm(«InvId»);

string sCrc = GetPrm(«SignatureValue»);

string sCrcBase = string.Format(«<0>:<1>:<2>«,

sOutSum, sInvId, sMrchPass1);

MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();

byte[] bSignature = md5.ComputeHash(Encoding.ASCII.GetBytes(sCrcBase));

StringBuilder sbSignature = new StringBuilder();

foreach (byte b in bSignature)

string sMyCrc = sbSignature.ToString();

if (sMyCrc.ToUpper() != sCrc.ToUpper())

// you can check here, that ResultURL was called

// (for better security)

// OK, payment proceeds

Response.Write(«Thank you for using our service»);

private string GetPrm(string sName)

sValue = HttpContext.Current.Request.Form[sName] as string;

sValue = HttpContext.Current.Request.QueryString[sName] as string;

Python (проекты на Django).

Для работы потребуется Django версии 1.3.1 или выше. Используйте Django-Robokassa версии 0.9.3, если проект на django 1.2.x или django 1.1.x.

Всю информацию по настройке и использованию можно получить здесь.

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

Источник

Оплата заказов на сайте через Робокассу

В данной статье описан процесс оплаты заказа на сайте с помощью Робокассы. Перед тем, как преступить работе над скриптами оплаты, необходимо заполнить анкету, создать магазин и ознакомиться с документацией.

Настройка магазина в Робокассе

Для корректной работы скриптов потребуется сделать настройки в разделе «Мои магазины» – «Настройки» – вкладка «​Технические настройки».

В форме нужно заполнить следующие поля:

  • Алгоритм расчета хеша: md5
  • Сгенерировать «Пароль #1» и «Пароль #2» (пока их запомнить)
  • Указать «Result Url», используется для оповещения о платеже, например:
    https://ваш_домен/pay_result.php
  • «Success Url» – адрес, куда будет перенаправлен пользователь после успешной оплаты:
    https://example.com/pay_success.php
  • «Fail Url» – адрес перенаправления в случаи ошибки или отмены платежа:
    https://ваш_домен/pay_error.php
  • Сгенерировать «Пароль #1» и «Пароль #2» для тестовых платежей, пока работать будем с ними.

Настройки сайта

На сайте заказы будут хранится в таблице `orders` c полями:

  • id – номер заказа,
  • status – статус заказа (1 — создан, 2 — оплачен, 3 — ошибка),
  • name – имя клиента,
  • text – комментарий,
  • sum – сумма заказа,
  • date_add – дата в формате unix timestamp.

Формирование ссылки на оплату

Для того чтобы направить пользователя на оплату, нужно добавить заказ в БД, получить его ID и сформировать URL на Робокассу.

Для упращениния отладки платежей, нужно включить тестовый режим, добавив в URL параметр IsTest=1 (не нужно будет вводить реквизиты карт).

Скрипт оформления заказа:

Перейдя по сформированной ссылки, откроется форма оплаты на робокассе:

Обработка платежа

После того, как пользователь успешно оплатил заказ, он будет перенаправлен на «Success Url» с добавлением GET-параметров с данными платежа:

В PHP-скрипте нужно сверить SignatureValue и обновить статус заказа в базе данных.

Скрипт pay_success.php

Т.к. пользователь может не вернутся обратно на сайт, Робакасса отправляет дополнительный запрос на «Result Url» с ожиданием ответа, пример такого запроса:

Скрипт pay_result.php

В случаи отмены операции, пользователь перенаправляется на «Fail Url»:

Скрипт pay_error.php

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

Источник

Robokassa – Как подключить оплату на сайте

В реалиях современного мира прежде, чем запустить что-либо, приходится сначала задумываться о том, получится ли вообще это продавать не в смысле «будут ли покупать?», а в смысле «как получать оплату без запар?». Этот вопрос долго меня терзал и перед запуском моих курсов.

Рекомендуем:  Как подать питание на регистратор

Легко тем, у кого есть Stripe например – подключил и вперёд, дальше можно уже состредоточиться лишь на бизнесе и на качестве того, что вы продаёте. Тем не менее, можно мечтать, а можно что-то делать, поэтому ещё в 2020 я подключил робокассу и вообще не жалею о ней.

И в этом уроке я расскажу, как пошагово интегрировать оплату на сайте через робокассу.

Шаг 1. Создание формы (или кнопки) оплаты на сайте

Кстати, если вы не планируете кодить всё это сами, пишите нам, мы вам поможем.

Если бы вы вдруг хотели отображать данные для ввода карт прямо на страницах вашего сайта, то спешу вас разочаровать – в Robokassa это сейчас сделать невозможно, но в принципе ничего страшного, так как они недавно обновили свои страницы оплат и выглядят они вполне годно.

Язык страницы зависит от языка в браузере.

Итак, наша с вами задача – редирекнуть пользователя на такую страницу, передав все необходимые данные об оплате.

Редирект происходит по URL https://auth.robokassa.ru/Merchant/Index.aspx , причём подходит как обычный редирект (методом GET), так и отправка формы методом POST.

Параметры

А вот список параметров:

MerchantLogin Это идентификатор магазина (Shop ID), который вы можете найти в настройках магазина в личном кабинете робокассы. OutSum Сумма платежа, числовое значение. InvId Уникальный идентификатор заказа. Например я создаю заказы как произвольные типы записей и использую ID поста в качестве значения этого параметра. Description Описание заказа. SignatureValue Проверка подлинности. Что-то типо одноразовых чисел в WordPress. Является строкой вида MerchantLogin:OutSum:InvId:Receipt:MerchantPass:Парам1=Значение1:Парам2=Значение2 , которая хешируется в MD5. Если страшно, то сразу переходите в пример, если очень страшно, пишите нам, мы вам всё сделаем. Нужно для того, чтобы например кто-то не подставил другую сумму платежа и т.д. Email Адрес электронной почты покупателя, который предзаполнится на странице оплаты. Shp_***** Любой произвольный параметр (и любое их количество), который мы можем использовать в дальнейшем. Receipt Информация для отправки чека, подробнее ниже. IsTest Укажите в значение 1, если сейчас вы только тестируете платежи, также нужно будет указать другие, тестовые значения MerchantLogin и MerchantPass.

Робочеки

Супер-главным преимуществом робокассы является то, что не нужно париться с онлайн-кассой. Единственной запарой будет создать массив с параметрами чека, преобразовать его в JSON и передать в параметр Receipt . Ура-ура.

Пример

Давайте наконец опробуем всё это в действии. В качестве примера я воспользуюсь обычным редиректом на страницу оплаты.

Обратите внимание, что я использовал функции add_query_arg() и wp_redirect(), потому что предполагаю, что это код будет использоваться в WordPress. Если же нет, то эти функции вам понадобится заменить на альтернативные.

Шаг 2. Обработка платежей

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

  • Result URL – по этому урлу будет пинговать сама робокасса при успешном платеже. Именно тут мы будем отправлять письма пользователям, открывать доступ к курсам и т.д.
  • Success URL – перенаправляем на эту страницу пользователей при успешной оплате.
  • Fail URL – перенаправляем на эту страницу пользователей при отказе от оплаты.
Рекомендуем:  Как отключить тачпад на ноутбуке сяоми

Result URL

Начнём с самого главного. Как вы уже могли заметить на скриншоте выше, по сути это какой-то произвольный PHP-файл, к которому будет обращаться Robokassa при успешной оплате чего-либо пользователем.

Какое содержание может быть у этого файла? Примерно такое:

Success URL

По этому адресу будет перенаправлен пользователь в случае успешной оплаты на сайте. Тут никаких серьёзных вещей рекомендую не делать, максимум предоставить инфу о заказе и написать «Спасибо».

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

Fail URL

На эту страницу будет перенаправлен пользователь с Робокассы в случае, если он отказался от оплаты. Тут уже никаких подписей проверять не нужно и нам будет доступно всего лишь два параметра – OutSum и InvId.

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Источник

Lexty/robokassa

Use Git or checkout with SVN using the web URL.

Work fast with our official CLI. Learn more.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

PHP library for Robokassa payment system

Check payment result:

Check payment on Success page:

Pay a commission for the buyer

For paying comission for the buyer is sufficient to simply call $payment->setShopCommission(true)

Please bear in mind that a user who is on the payment page ROBOKASSA can change the payment method with another commission. In this case, he will pay a different amount.

Getting list of currency

Returns the list of currencies available to pay for the orders from a particular store/website.

It is used to specify the value of $payment->setPaymentMethod($method) and to display the available payment options right on your website, if you wish to give more information to your clients.

Getting list of available payment method groups

Returns the list of payment methods available to pay for the orders from a particular store/website. It is used to display the available payment methods right on your website, if you wish to give more information to your clients. The key difference from the $payment->getCurrencies() – is that no detailed information is shown here for all payment options, while only payment groups/methods are displayed.

Calculating the amount payable including ROBOKASSA’s charge

Helps calculate the amount payable by the buyer including ROBOKASSA’s charge (according to the service plan) and charges of other systems through which the buyer decided to pay for the order. It may be used both for your internal payments and to provide additional information to the clients on your website.

Outgoing summ calculation

Helps calculate the amount receivable on the basis of ROBOKASSA prevailing exchange rates from the amount payable by the user.

Returns detailed information on the current status and payment details.

Источник

Adblock
detector