Редакция утверждена Правлением ООО нко «Яндекс. Деньги»


В случае, если Контрагент не имеет права принимать платежи способом, указанным в платежной форме парой параметров (



страница4/8
Дата17.11.2018
Размер1.15 Mb.
ТипПротокол
1   2   3   4   5   6   7   8

В случае, если Контрагент не имеет права принимать платежи способом, указанным в платежной форме парой параметров (paymentType, cps_provider), плательщик не сможет совершить платеж.

Таблица 3.1.1. Поля платежной формы



Название

Содержание

Тип

Обязательное

поле

shopID

Идентификатор Контрагента. Выдается Оператором.

xs:long

Да

shopArticleId

Идентификатор товара. Выдается Оператором.

xs:long

Eсли Контрагент использует несколько платежных форм для разных товаров.

scid

Номер витрины Контрагента. Выдается Оператором.

xs:long

Да

sum

Сумма заказа.

CurrencyAmount

Да

customerNumber

Идентификатор плательщика.

Номер мобильного телефона, договора и т. п., специфично для Контрагента.



xs:normalizedString, до 64 символов

Да

orderNumber

Уникальный для данного shopID номер заказа в ИС Контрагента.

xs:normalizedString, до 64 символов

Нет

shopSuccessURL

URL, на который должен быть осуществлен редирект в случае успеха перевода (urlencoded значение).

xs:string, до 250 символов

В случае использования опции 2.6.2

shopFailURL

URL, на который должен быть осуществлен редирект в случае ошибки (urlencoded значение).

xs:string, до 250 символов

В случае использования опции 2.6.2

cps_provider

Детали способа совершения платежа.

PaymentTypeProvider

Используется для платежей через терминал paymentType = “GP”

cps_email

Адрес электронной почты плательщика.

xs:string, до 100 символов

Нет

cps_phone

Номер мобильного телефона плательщика.

xs:string, до 15 символов, только цифры

Нет

paymentType

Способ, которым должен быть совершен платеж. Возможные значения:

PC — платеж со счета в Яндекс.Деньгах.

AC — платеж с банковской карты.

GP — платеж по коду через терминал.

MC — оплата со счета мобильного телефона.

Список возможных значений может быть расширен.



PaymentType

Нет. Если параметр отсутствует, платеж будет совершаться по умолчанию со счета пользователя в Яндекс.Деньгах.


3.2 Параметры запросов от Оператора к ИС Контрагента

Контрагенту настоятельно рекомендуется использовать SSL (HTTPS) для приема сообщений от Оператора, для защиты данных о переводах.

Авторизация запросов Оператора на стороне Контрагента осуществляется согласно установленному формату сообщения (опции 2.1.1, 2.1.2).

Также ИС рекомендуется осуществлять контроль IP-адресов, с которых она получает запросы от Оператора (список IP можно получить при подключении).

Таблица 3.2.1. Параметры запросов от Яндекс.Денег к ИС Контрагента


Название параметра

Содержание

Тип

Примечания

requestDatetime

Момент времени формирования запроса в программно-аппаратном комплексе Оператора.

xs:dateTime




action

Код запроса.

«checkOrder» (без кавычек) для запроса «Проверка заказа».

«paymentAviso» (без кавычек) для «Уведомления о переводе».


xs:normalizedString, до 16 символов

Присутствует только для NVP/MD5.

md5

MD5 хеш платежной формы, правила формирования описаны в отдельном разделе документа.

xs:normalizedString, ровно 32 шестнадцатеричных символа, в верхнем регистре.

Рассчитывается, только если в настройках Контрагента указан пароль.

Присутствует только для NVP/MD5.



shopID

Идентификатор Контрагента, присваиваемый Оператором.

xs:long




shopArticleId

Идентификатор товара, присваиваемый Оператором.

xs:long

Присутствует в запросе, если Контрагент использует несколько платежных форм для разных товаров.

invoiceId

Уникальный номер транзакции в программно-аппаратном комплексе Оператора.

xs:long




orderNumber

Номер заказа в БД Контрагента (присланный в платежной форме).

xs:normalizedString, до 64 символов.

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

customerNumber

Идентификатор плательщика (присланный в платежной форме).

Номер мобильного телефона, договора и т. п., специфично для Контрагента.



xs:normalizedString, до 64 символов.




orderCreatedDatetime

Момент (точное время) регистрации заказа в программно-аппаратном комплексе Оператора.

xs:dateTime




orderSumAmount

Сумма заказа.

CurrencyAmount

Может отличаться от уплаченной плательщиком, если он платил в валюте, отличной от указанной в платежной форме (в последнем случае Оператор берет на себя все конвертации).

orderSumCurrencyPaycash

Код валюты для суммы заказа.

CurrencyCode




orderSumBankPaycash

Код процессингового центра Оператора для суммы заказа.

CurrencyBank




shopSumAmount

Сумма, получаемая Контрагентом на р/с: сумма заказа за вычетом комиссии Оператора.

CurrencyAmount




shopSumCurrencyPaycash

Код валюты для суммы, получаемой Контрагентом на р/с.

CurrencyCode




shopSumBankPaycash

Код процессингового центра Оператора для суммы, получаемой Контрагентом на р/с.

CurrencyBank




paymentPayerCode

Номер счета виртуального счета плательщика, на котором Оператором учитываются электронные денежные средства.

YMAccount

Может отсутствовать, если запрос «Проверка заказа» осуществляется до показа контракта перевода плательщику.

paymentDatetime

Момент (точное время) регистрации оплаты заказа в программно-аппаратном комплексе Оператора.

xs:dateTime

В запросе «checkOrder» отсутствует

paymentType

Способ, которым был совершен платеж.

PaymentType




Любые названия, отличные от перечисленных выше

Поля, добавленные Контрагентом в платежную форму.

xs:string

Суммарная длина всех добавленных Контрагентом полей не должна превышать 4096 символов.

3.3 Формат ответов Контрагента на запросы Оператора

Результат выполнения запроса Оператора должен быть возвращен Контрагентом в виде XML-документа в теле ответа на HTTP-запрос. Документ формируется согласно стандарту XML 1.0 (Fifth Edition), опубликованному по адресу: http://www.w3.org/TR/xml/. Имена элементов и атрибутов чувствительны к регистру.

MIME-тип: application/xml, кодировка передаваемых данных в соответствии с опцией подключения 2.2.

Таблица 3.3.1. Параметры ответов Контрагента



Название

Содержание

Тип

Примечания

performedDatetime

Момент времени выполнения запроса по часам ИС.

xs:dateTime

Полное ISO8601 время, включая смещение относительно UTC

code

Код результата обработки.

xs:int

См. Таблицу 3.3.2.

shopID

Идентификатор Контрагента.

xs:long

Должен дублировать поле shopID запроса.

invoiceId

Идентификатор транзакции в программно-аппаратном комплексе Оператора.

xs:long

Должен дублировать поле invoiceId запроса.

orderSumAmount

Сумма контракта к оплате, выставленная Контрагентом.

CurrencyAmount

Сумма контракта может быть выставлена Контрагентом только в валюте, определенной параметром запроса orderSumCurrencyPaycash.

Message

Текстовое пояснение в случае отказа принять платеж.

Xs:string, до 255 символов

Этот текст будет показан плательщику.

techMessage

Дополнительное текстовое пояснение ответа Контрагента

xs:string, до 64 символов

Необязательное поле.
Как правило используется как дополнительная информация об ошибках.

Таблица 3.3.2. Коды результатов обработки запросов, возвращаемые из ИС

Код

Название

Примечания

0

Успешно

Успех, в том числе если Оператор повторно отправил уведомление о переводе.

1

Ошибка авторизации

Несовпадение подписи (или хеша), неверный ключ подписи.

2

Успех с изменением контракта на оплату.

Успех. Согласие принять перевод с параметрами, указанными Контрагентом. Изменение контракта допустимо только на фазе «проверка заказа».

100

Отказ в приеме перевода

Допустимо только для ответа на запрос «Проверка заказа» (checkOrder).

Получив ответ с этим кодом, Оператор не будет принимать перевод плательщика.



200

Ошибка разбора запроса

В случае если ИС не в состоянии обработать запрос из-за некорректных данных в самом запросе.

1000

Техническая ошибка

Временная техническая проблема ИС.

Примечание: см. описание операций.

Примеры ответов см. в описании операций.



3.4. Типы данных

Таблица 3.4.1. Определения типов данных протокола

Тип

Описание

xs:int

32-bit целое знаковое число. Int32, определенный в стандарте: http://www.w3.org/TR/xmlschema-2/#int

xs:long

64-bit целое знаковое число. Int64, определенный в стандарте: http://www.w3.org/TR/xmlschema-2/#long

xs:decimal

Десятичное число с фиксированной точкой, определенное в стандарте: http://www.w3.org/TR/xmlschema-2/#decimal

xs:boolean

Логическое значение (true/false), определено в стандарте: http://www.w3.org/TR/xmlschema-2/#boolean

xs:string

Текстовая строка, определенная в стандарте: http://www.w3.org/TR/xmlschema-2/#string

xs:normalizedString

Текстовая строка, определенная в стандарте: http://www.w3.org/TR/xmlschema-2/#normalizedString

xs:dateTime

Временная метка в формате согласно рекомендациям:

  • http://www.w3.org/TR/xmlschema-2/#dateTime

  • ISO8601:2004

Формат определяется как:

YYYY-MM-DDThh:mm:ss.fZZZZZ

Расшифровка формата

YYYY

год, точно 4 цифры

MM

месяц, точно 2 цифры (01=январь и т. д.)

DD

день месяца, точно 2 цифры (от 01 до 31)

T

латинский символ «T», должен быть в верхнем регистре

hh

часы, точно 2 цифры (24-часовой формат, от 00 до 23)

mm

минуты, точно 2 цифры (от 00 до 59)

ss

секунды, точно 2 цифры (от 00 до 59)

f

дробная часть секунды (от 1 до 6 цифр),

может отсутствовать, в этом случае следует опускать и разделитель «.»



ZZZZZ

Описатель временной зоны, может принимать значения:

Z — UTC, символ «Z» должен быть в верхнем регистре.

+hh:mm или -hh:mm — смещение относительно UTC (GMT) (показывает, что указано локальное время, которое на данное число часов и минут опережает или отстает от UTC).


Обязательно должны присутствовать все указанные элементы, допустимо опускать только дробную часть секунд (в этом случае следует опускать и разделитель «.»). Если нужно задать только дату, то время всё равно следует указать как 00:00:00.

Примеры:

2011-07-24T19:00:00+04:00 – 19 часов 00 минут 24 июля 2011 года, часовой пояс — UTC + 4 часа.

2004-07-24T15:00:00Z — тот же момент времени в каноническом представлении.

2004-07-24T15:00:00.666Z — тот же момент времени плюс 666 миллисекунд.



YMAccount

Номер виртуального счета в сервисе «Яндекс.Деньги», строка десятичных цифр длиной от 11 до 33 символов.



















CurrencyAmount

Сумма. Положительное десятичное число с фиксированной точкой, количество цифр после точки точно равно двум.



















CurrencyCode

Код валюты. Возможные значения:

  • 643 — рубль Российской Федерации;

  • 10643 — тестовая валюта (демо-рубли демо-системы «Яндекс.Деньги»).













CurrencyBank

Код процессингового центра Оператора. Возможные значения:

  • 1001 – ЭкомБанк;

  • 1003 – ДемоБанк.













PaymentType

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

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

  • AC — для платежа, совершаемого с любой банковской карты, которая не привязана к счету пользователя в Яндекс.Деньгах.

  • GP — для платежа, совершаемого через терминал приема платежей.

  • MC — для платежа, совершаемого со счета мобильного телефона.

Список возможных значений может быть расширен.

















PaymentTypeProvider

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

В случае paymentType=GP (платеж, совершаемый через терминал приема платежей), PaymentTypeProvider может иметь следующие значения:



Список возможных значений может быть расширен.

















3.5. Переход по ссылке «Вернуться в магазин»

При нажатии плательщиком на ссылку «Вернуться в магазин» (см. шаги 10–11 на схеме) осуществляется переход по URL, указанному в настройках Контрагента (successURL или failURL, в зависимости от успешности или неуспешности перевода).

При этом к URL, указанному в настройках Контрагента, добавляется «?action=PaymentSuccess» в случае успеха перевода или «?action=PaymentFail» в случае неуспеха, а также все параметры, описанные в Таблице 3.2.1 «Параметры запросов от Оператора к ИС Контрагента». В случае успеха перевода переход осуществляется при помощи метода GET, в случае неуспеха — при помощи метода POST. Важно понимать, что шаг 10 осуществляется с компьютера плательщика, поэтому Контрагент должен собственными средствами авторизовать плательщика, если собирается отображать предназначенную конкретному плательщику персональную информацию. Это может быть или стандартная авторизация на сайте Контрагента (через cookies и т. п.) или через сессионные ключи Контрагента, помещенные им в платежную форму (при переходе по successURL и failURL Оператор добавляет эти параметры).

3.6. Правила формирования хеша платежной формы в запросах Оператора

MD5 хеширование применяется к тексту, формируемому как последовательность значений ряда параметров, разделенных символом «точка с запятой» — «;». Используется в случае подключения по методу NVP/MD5.




Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7   8


База данных защищена авторским правом ©vossta.ru 2019
обратиться к администрации

    Главная страница