поддержка
регистрация авторизация email-адрес пароль введите код забыли пароль ?
вход
Новости
Платежный интерфейс
10
02.2021
Сервис для нерезидентов РФ
09
02.2021
КИВИ-кошельки для нерезидентов РФ
23
12.2020
СБП
все новости
Контакты
support@sprypay.ru
8 (800) 333-12-31
+7 (495) 646-82-54
support_sprypay
Платежные системы > Платежный интерфейс
  • SpryPay Payment Interface
  • API



Описание SPPI интерфейса:


*П.С. - платежная система(ы)
Настройка параметров сайта для приема платежей:

Помимо регистрации в "SpryPay" для приема платежей через SPPI сервис поставщик должен настроить ряд параметров добавленного им сайта, регулирующих прием платежей и метод оповещения поставщика о факте проведения платежа. Настройка параметров выполняется на странице 'Список сайтов' сайта https://sprypay.ru. Для каждого сайта, через который поставщик принимает платежи, в системе хранится свой набор параметров.
Полный перечень параметров и их назначение приведено ниже:
Название параметра Описание/Формат
ipnUrl: URL (на веб-сайте поставщика), на который сервис SPPI посылает HTTP GET/POST запрос ( оповещение ) о совершении платежа с его детальными реквизитами.
failUrl: URL (на веб-сайте поставщика), на который будет переведен интернет-браузер покупателя в том случае, если платеж в сервисе SPPI не был выполнен по каким-то причинам.
successUrl: URL (на веб-сайте поставщика), на который будет переведен интернет-браузер покупателя в случае успешного выполнения платежа в SPPI сервисе.
ipnEmail: E-mail адрес на который будет высылаться письмо с полной информацией о прошедшем платеже.
ipnSecretKey: Строка символов, используется для герерации подписи данных, высылаемых поставщику с оповещением. Содержание строки известно только SPPI сервису и поставщику!
ipnFrequency: Частота с которой SPPI сервис делает оповещения на ipnUrl. По умолчанию = 10 ( то есть 1 раз в 10 мин ). Значения могут колебаться от 1 до 60.
ipnMaxTryes: Максимальное количество оповещений, которое выполнит SPPI сервис по 1-му платежу. Значения могут колебаться от 1 до 300. Оповещения не выполняются по платежам старше 3-х суток.

Формы HTML
Для передачи информации между веб-сайтом поставщика и SPPI сервисом используются четыре основных HTML-формы:
  • Форма запроса платежа - генерируется веб-сайтом поставщика для формирования запроса на проведение платежа в SPPI сервисе и передачи его через веб-браузер покупателя.
  • Форма оповещения о платеже - генерируется SPPI сервисом для передачи оповещения о платеже на веб-сайт поставщика. Оповещение передается без использования веб-браузера покупателя.
  • Форма выполненного платежа - генерируется SPPI сервисом в случае успешного выполнения платежа и передается на веб-сайт поставщика через веб-браузер покупателя.
  • Форма невыполненного платежа - генерируется SPPI сервисом в случае невыполнения платежа и передается на веб-сайт поставщика через веб-браузер покупателя.

Форма запроса платежа
Эта форма передает запрос с веб-сайта поставщика в SPPI сервис через веб-браузер покупателя. Она должна иметь следующие атрибуты и поля:
Action - http[s]://sprypay.ru/sppi/
Method - GET/POST
Fields - поля, передаваемые в форме, описаны в таблице ниже:
Название HTML Field Name Описание/Формат
id сайта spShopId Номер сайта поставщика.
формат: 1-11 цифр.
Внутренний номер
покупки поставщика
spShopPaymentId В этом поле поставщик задает номер покупки в соответствии со своей системой учета. Несмотря на то, что параметр не является обязательным, мы рекомендуем всегда задавать его. Желательно использовать уникальный номер для каждого платежа, что позволит быстро получить относящуюся к нему информацию через другие интерфейсы системы "SpryPay".
формат: до 12 символов, цифры и латинские символы (cs).
Сумма платежа spAmount Сумма платежа, которую поставщик желает получить от покупателя. Сумма должна быть больше нуля, дробная часть отделяется точкой.
формат: вещественное число, разделитель - точка.
Валюта платежа spCurrency Валюта платежа, в которой поставщик желает получить от покупателя платеж.
формат: usd, rur, eur или uah.
Назначение платежа spPurpose Описание товара или услуги. Формируется поставщиком.
кодировка: utf-8
формат: от 1 до 1024 символов, допускаются цифры, латинские и русские символы, ' _$`-.:,;№#()|' (ci).
Описание может быть представлено в виде списка ( например список товаров ), в это случае разделителем строк будет `||`, а разделителем позиций и цены - `|`.
Пример: `Шуба|1000||Магниафон импортный|300`.
E-mail покупателя spUserEmail E-mail адрес покупателя, на который высылается полная информация по совершаемому им платежу. Данный параметр не является обязательным. Может быть заранее определен поставщиком ( допустим из собственной базы покупателей ), чтобы избавить покупателя от его ввода.
формат: до 255 символов, может содержать латинские буквы, цифры, '_', '.', '@' и '-' (ci).
Дополнительные параметры поставщика spUserData[*] Все поля формы, имеющие в названии префикс "spUserData", обрабатываются SPPI сервисом автоматически и передаются на веб-сайт поставщика после выполнения платежа.
формат имени параметра: не более 20 символов, может содержать цифры и латинские символы (cs).
формат значения параметра: до 255 символов, допускаются любые символы (cs).
URL оповещения spIpnUrl URL на вашем сайте, на который будет приходить полная информация о платеже ( см. "Форма оповещения о платеже" ).
Данный параметр является не обязательным, а в случае необходимости переопределяет подобный параметр в настройках сайта.
метод для URL оповещения spIpnMethod Метод (POST/GET) при помощи которого будет выполнен запрос с данными на вышеописанный "URL оповещения".
Данный параметр является не обязательным, а в случае необходимости переопределяет подобный параметр в настройках сайта.
формат значения параметра: '1' для POST, '0' для GET метода.
URL удачного платежа spSuccessUrl URL на вашем сайте, на который будет перенаправлен пользователь в случае удачного выполнения платежа ( см. "Форма выполненного платежа" ).
Данный параметр является не обязательным, а в случае необходимости переопределяет подобный параметр в настройках сайта.
метод для URL удачного платежа spSuccessMethod Метод (POST/GET) при помощи которого будет выполнена переадресация пользователя на вышеописанный "URL удачного платежа".
Данный параметр является не обязательным, а в случае необходимости переопределяет подобный параметр в настройках сайта.
формат значения параметра: '1' для POST, '0' для GET метода.
URL неудачного платежа spFailUrl URL на вашем сайте, на который будет перенаправлен пользователь в случае неудачного выполнения платежа ( см. "Форма выполненного платежа" ).
Данный параметр является не обязательным, а в случае необходимости переопределяет подобный параметр в настройках сайта.
метод для URL неудачного платежа spFailMethod Метод (POST/GET) при помощи которого будет выполнена переадресация пользователя на вышеописанный "URL неудачного платежа".
Данный параметр является не обязательным, а в случае необходимости переопределяет подобный параметр в настройках сайта.
формат значения параметра: '1' для POST, '0' для GET метода.
язык (en,ru) lang Параметр "lang" предназначен для установки языка. Допустимые значения (ru, en).
разрешенный список п.с spSelectedPS Параметр "spSelectedPS" используется для указания строгого списка показываемых при оплате платежных систем. Например, в настройках сайта указан для приема весь возможный список платежных систем, а Вам необходимо показать пользователю только WebMoney WMZ.
формат: список числовых или текстовых кодов п.с через запятую, смотрите ниже
запрещенный список п.с spForbiddenPS Параметр "spForbiddenPS" используется для исключения какой либо П.С. из списка показываемых при оплате. Например, в настройках сайта указан для приема весь возможный список платежных систем, а Вам необходимо скрыть от пользователя WebMoney WMZ и WebMoney WMR.
формат: список числовых или текстовых кодов п.с через запятую, смотрите ниже
цветовая схема colorTheme Параметр "colorTheme" используется для указания цветовой схемы платежного интерфейса. Допустимые значения: `white` - светлая тема, параметр не задан или имеет любое другое значение - темная тема.
активная вкладка в списке П.С. activeTab Данный параметр используется для указания активной вкладки с платежными системами при переходе на страницу оплаты. Допустимые значения: 1 | 2 | 3 | 4 ( по умолчанию активна вкладка 1 => `Электронные деньги`).
авторедирект с 1 выставленной П.С. autoRedirect Данный параметр используется для автоматического перенаправления на сайт платежной системы, в случае если список П.С. состоит из одной П.С.. Для автоматического перенаправления на сайт П.С., указанная п.с должна быть online'овой ( WM, Яд, QIWI-wallet ... ). При использовании авторедиректа, данные о email-адресе клиента и номере телефона ( если необходимо ), должны передаваться в форме запроса платежа.
Допустимые значения: 1 | 0.
Для проверки данного параметра можно в форму запроса платежа добавить 3 парметра: autoRedirect = '1', spSelectedPS = 'WMRUR', spUserEmail = 'test@mail.ru';

Пример формы запроса платежа

Форма оповещения о платеже
Эта форма передает поставщику реквизиты выполненного платежа. Она имеет следующие атрибуты и поля:
action - ipnUrl
fields - поля, передаваемые в форме, описаны в таблице ниже:
Название HTML Field Name Описание
id платежа spPaymentId Номер платежа в системе исчисления "SpryPay". Является уникальным.
формат: целое число, 10 цифр ( 20******** )
id сайта spShopId Номер сайта поставщика.
формат: целое число, 1-11 цифр.
Внутренний номер
покупки поставщика
spShopPaymentId Номер покупки в соответствии с системой исчисления поставщика.
формат: до 12 символов, цифры и латинские символы (cs).
сумма на баланс spBalanceAmount Сумма sp которая будет зачислена поставщику на баланс при зачислении платежа. Вычисляется по курсу ЦБРФ на день создания платежа.
формат: вещественное число, разделитель - точка.
сумма платежа spAmount Сумма платежа указанная в "Форме запроса платежа" на сайте поставщика.
формат: вещественное число, разделитель - точка.
валюта платежа spCurrency Валюта платежа, указанная в "Форме запроса платежа", в которой поставщик желает получить от покупателя платеж.
формат: usd, rur, eur или uah.
E-mail покупателя spCustomerEmail E-mail адрес покупателя.
формат: до 255 символов, может содержать латинские буквы, цифры, '_', '.', '@' и '-' (ci).
назначение платежа spPurpose Описание товара или услуги указанное в "Форме запроса платежа".
формат: от 1 до 128 символов, допускаются цифры, латинские и русские символы, ' ', '.', '-', '_', ':', ';' (ci).
id платежной системы spPaymentSystemId Номер платежной системы в которой покупатель совершил оплату.
Список платежных систем с их номерами смотрите ниже.
формат: целое число, 1-11 цифр.
сумма в единицах
платежной системы
spPaymentSystemAmount Сумма платежа в единицах измерения выбранной покупателем платежной системы.
формат: вещественное число, разделитель - точка.
id платежа в
платежной системе
spPaymentSystemPaymentId Номер выполненного платежа в системе исчисления выбранной покупателем платежной системы. Если оплата прошла в несколько платежей, то данный параметр будет содержать список номеров через запятую.
Если данный номер отсутствует или платеж был зачислен администратором 'в ручную', то этот параметр равен параметру spPaymentId.
формат: строка до 1024 символов
дата зачисления spEnrollDateTime Дата и время в которое система "SpryPay" получила данные о выполненном платеже от выбранной покупателем платежной системы. В это же время производится зачисление средств на баланс поставщика.
формат: ГГГГ-ММ-ДД ЧЧ:ММ:СС
дополнительные
параметры
поставщика
spUserData[*] Все поля формы, имеющие в названии префикс "spUserData".
формат: описан выше
контрольная
подпись
spHashString Контрольная подпись оповещения о выполнении платежа, которая используется для проверки целостности полученной информации и однозначной идентификации отправителя. Алгоритм формирования описан в разделе "Контрольная подпись данных о платеже".
валюта суммы на баланс spBalanceCurrency Валюта в которой вам будет зачислена на баланс сумма "spBalanceAmount".
формат: usd, rur, eur или uah.

Пример формы оповещения о платеже
Примечание: данные, отправляемые на ваш ipnUrl, будут в кодировке utf-8.

Формат ответа на оповещение о платеже
В результате обработки GET/POST запроса, содержащего данные о платеже, скрипт на вашем сайте должен вернуть ответ в виде строки:
  • Ответ равен строке `ok` – это означает, что данные о платеже получены, оповещения по этому платежу более не требуются.
  • Ответ начинается со слова `error` – это означает, что, при получении данных, на стороне сайта возникла какая-то ошибка, оповещения по этому платежу более не требуются.
  • Любые другие ответы – для SPPI сервиса это означает, что данные вашим сайтом не получены и оповещение на ваш сайт будет продолжено.

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

Форма выполненного платежа
Эта форма передает реквизиты выполненного платежа на веб-сайт поставщика после успешного выполнения операции. Данные передаются через веб-браузер покупателя только в том случае, если выбран метод вызова Success URL "GET" или "POST". Форма имеет следующие атрибуты и поля:
action - successUrl
fields - поля, передаваемые в форме, описаны в таблице ниже:
Название HTML Field Name Описание
статус платежа status 1 - платеж успешно выполнен.
id платежа spPaymentId Номер платежа в системе исчисления "SpryPay". Является уникальным.
формат: целое число, 10 цифр ( 2012****** )
id сайта spShopId Номер сайта поставщика.
формат: целое число, 1-11 цифр.
Внутренний номер
покупки поставщика
spShopPaymentId Номер покупки в соответствии с системой исчисления поставщика.
формат: до 12 символов, цифры и латинские символы (cs).

Форма невыполненного платежа
Эта форма передает реквизиты невыполненного платежа на веб-сайт поставщика. Данные передаются через веб-браузер покупателя только в том случае, если выбран метод вызова Success URL "GET" или "POST". Она имеет следующие атрибуты и поля:
Action - Fail URL
Method - Метод Fail URL
Fields - поля, передаваемые в форме, описаны в таблице выше ( см. "Форма выполненного платежа" ). Отличие состоит в том, что значение параметра "status" имеет значение "0".

Проверка информации о платеже
При выполнении платежа SPPI высылает оповещение о платеже через "Форму оповещения о платеже" на ipnUrl, указанный поставщиком. Мы рекомендуем вам проверить данные, полученные через "Форму оповещения о платеже":
  • Проверить, не исказились ли данные в процессе передачи ( проверка целостности данных )
  • Проверить сумму и валюту платежа
  • Проверить id сайта поставщика

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

Контрольная подпись данных о платеже
Контрольная подпись данных о платеже позволяет поставщику проверять как источник данных, так и целостность данных, переданных на IPN URL через "Форму оповещения о платеже". При формировании контрольной подписи SPPI сервис "склеивает" значения полей, передаваемых "Формой оповещения о платеже", в одну строку в следующем порядке:
  • spPaymentId
  • spShopId
  • spShopPaymentId
  • spBalanceAmount
  • spAmount
  • spCurrency
  • spCustomerEmail
  • spPurpose
  • spPaymentSystemId
  • spPaymentSystemAmount
  • spPaymentSystemPaymentId
  • spEnrollDateTime
  • Секретный ключ
При формирования контрольной подписи формируется последовательность из 32-х шестнадцатеричных цифр в соответствии с широко распространенным алгоритмом Message Digest 5 (MD5) разработанным Ron Rivest из MIT Laboratory for Computer Science и RSA Data Security, Inc. Алгоритм был опубликован в Интернете в апреле 1992 года (RFC 1321).

Проверка контрольной подписи
Проверка контрольной подписи может выполняться на сайте поставщика по следующему алгоритму:
  • Сформируйте строку путем "склеивания" значений параметров, полученных через "Форму оповещения о платеже", в том же порядке, что и при формировании контрольной подписи в SPPI сервисе (см. выше).
    Помните, что при формировании подписи используется Secret Key.
  • Вычислите MD5 полученной строки.
  • Сравните полученное значение с значением параметра "spHashString", полученного через "Форму оповещения о платеже".
Если сформированная подпись совпадает с полученной через "Форму оповещения о платеже", данные не изменены, и источник данных действительно SPPI сервис.

PHP пример формировния контрольной подписи
  // в данном примере данные приходят в POST-запросе

  // список переменных, которые должны присутствовать в запросе с данными платежа
  $spQueryFields = array('spPaymentId', 'spShopId', 'spShopPaymentId', 'spBalanceAmount', 'spAmount', 'spCurrency', 'spCustomerEmail', 'spPurpose', 'spPaymentSystemId', 'spPaymentSystemAmount', 'spPaymentSystemPaymentId', 'spEnrollDateTime', 'spHashString', 'spBalanceCurrency');

  // проверим, что все они присутутвуют в запросе
  foreach($spQueryFields as $spFieldName) if (!isset($_POST[$spFieldName])) exit("error в запросе с данными платежа отсутствует параметр `$spFieldName`");

  // ваш секретный ключ, задается в настройках сайта
  $yourSecretKeyString = 'F22U39r6Liq49EqNfY323XV81kTPxB7n';

  // получим контрольную подпись
  $localHashString = md5($_POST['spPaymentId'].$_POST['spShopId'].$_POST['spShopPaymentId'].$_POST['spBalanceAmount'].$_POST['spAmount'].$_POST['spCurrency'].$_POST['spCustomerEmail'].$_POST['spPurpose'].$_POST['spPaymentSystemId'].$_POST['spPaymentSystemAmount'].$_POST['spPaymentSystemPaymentId'].$_POST['spEnrollDateTime'].$yourSecretKeyString);

  // сравним полученную подпись и ту, что пришла с запросом
  if ($localHashString==$_POST['spHashString'])
  {
    // все хорошо, далее делаем проверку суммы, номера сайта и все, что вам понадобится
    ...
    ...
    ...
    exit("ok");
  }
  else
  {
    // подписи не совпали
    exit("error не совпали подписи; локальная: `$localHashString`; в запросе:`".$_POST['spHashString']."`");
  }
Проверка суммы и валюты платежа
Так как покупатель "вручную" может изменить данные конечной формы оплаты, которые передаются уже непосредственно в выбранную платежную систему, поставщику рекомендуется проверять информацию о сумме и валюте платежа, передаваемую через параметр "spAmount" и "spCurrency".

Проверка id сайта поставщика
Несмотря на то, что покупатель не может изменить id сайта, с которого совершается платеж, поставщику рекомендуется контролировать его путем проверки параметра "spShopId", особенно при использовании нескольких сайтов при работе с SPPI интерфейсом.

Список платежных систем с их номерами / кодами

Главная Каталог Информация для
потребителей
Оплата Поиск платежа
Печать чека
Контакты
Copyright 2008-2020
"SpryPay.ru"
Принимаемые платежные системы
Наша кнопка
Соц. сети



Google+