Интерфейс создания транзакции
Этот XML-интерфейс позволяет Продавцу создать транзакцию и проверить участие карты в технологии 3DSecure
Action - https://card.paysoft.solutions/api/xml/payment-create
Method - POST
Формат XML-запроса:
<Command>
<LMI_MERCHANT_ID></LMI_MERCHANT_ID>
<LMI_HASH></LMI_HASH>
<LMI_PAYMENT_NO></LMI_PAYMENT_NO>
<LMI_PAYMENT_AMOUNT></LMI_PAYMENT_AMOUNT>
<LMI_PAYMENT_DESC></LMI_PAYMENT_DESC>
<LMI_CARDNUMBER></LMI_CARDNUMBER>
<LMI_EXPIRE_YEAR></LMI_EXPIRE_YEAR>
<LMI_EXPIRE_MONTH></LMI_EXPIRE_MONTH>
<LMI_CVV></LMI_CVV>
<LMI_PAYER_IP></LMI_PAYER_IP>
<LMI_MERCHANT_URL></LMI_MERCHANT_URL>
</Command>
Название | XML параметр | Обязательный? | Описание |
---|---|---|---|
Идентификатор Продавца | LMI_MERCHANT_ID | Да | Идентификатор торговой точки, на который будет принят платеж. Идентификатор Продавец может получить в Кабинете. |
Сумма платежа | LMI_PAYMENT_AMOUNT | Да | Сумма платежа, которую Продавец желает получить от Клиента. Сумма должна быть больше нуля, дробная часть отделяется точкой. |
Внутренний номер заказа в системе учета Продавца | LMI_PAYMENT_NO | Нет | В этом поле Продавец определяет номер заказа в соответствии со своей системой учета. Несмотря на то, что параметр не является обязательным, рекомендуется всегда задавать его, поскольку он нужен для корректной работы других интерфейсов. Желательно использовать уникальный номер для каждого платежа. Номер может содержать буквы английского алфавита, цифры и знак дефиса «-». Максимальная длина - 64 символов. |
Назначение платежа | LMI_PAYMENT_DESC | Да | Описание товара / работы / услуги, которые оплачиваются. Максимальная длина - 255 символов. Кодирование - UTF8. |
Контрольная подпись | LMI_HASH | Да | Контрольная подпись запроса формируется путем шифрования исходного текста XML-запроса с пустым значением LMI_HASH и секретного ключа SecretKey с помощью алгоритма, указанного в Кабинете продавца. Полученная подпись передается в теге LMI_HASH. Рекомендованным алгоритмом шифрования есть SHA256. |
Номер карты | LMI_CARDNUMBER | Да | |
Срок действия карты, год | LMI_EXPIRE_YEAR | Да | В формате: ГГ |
Срок действия карты, месяц | LMI_EXPIRE_MONTH | Да | В формате: ММ |
CVV/CVV2 | LMI_CVV | Да | 3 цифры |
Электронный адрес Клиента | LMI_PAYER_EMAIL | Нет** | Электронный адреса Клиента |
Идентификатор клиента на стороне Продавца | LMI_PAYER_ID | Нет | Может содержать буквы английского алфавита, цифры и знак дефиса «-». Максимальная длина 50 символов. |
Фамилия Клиента | LMI_PAYER_SURNAME | Нет*** | Фамилия Клиента |
Имя Клиента | LMI_PAYER_FIRSTNAME | Нет*** | Имя Клиента |
Отчество Клиента | LMI_PAYER_PATRONYMIC | Нет*** | Отчество Клиента |
Дата рождения Клиента | LMI_PAYER_BIRTHDAY | Нет*** | Дата рождения Клиента в формате ГГГГ-ММ-ДД |
ИНН Клиента | LMI_PAYER_TAX_ID | Нет*** | ИНН |
Номер телефона Клиента | LMI_PAYER_PHONE_NUMBER | Нет** | Номер телефона Клиента в формате 380xxxxxxxxx. |
Страна Клиента | LMI_PAYER_COUNTRY | Нет** | ISO 3166-1 alpha-2 |
Штат (только для США и Канады) | LMI_PAYER_STATE | Нет** | аббревиатура штата |
Город | LMI_PAYER_CITY | Нет** | Город |
Адрес | LMI_PAYER_ADDRESS | Нет** | Адрес |
Почтовый индекс | LMI_PAYER_ZIP | Нет** | Почтовый индекс |
Сохранение реквизитов карты | LMI_CREATE_TOKEN | Нет | Флаг, принимает значение 0 или 1. Если равен 1, то после успешной оплаты реквизиты карты, будут сохранены и возвращен параметр LMI_PAYMENT_TOKEN. См Списание по сохраненной карте |
Оплата по сохраненном токену карты | LMI_PAYMENT_TOKEN | Нет | Передается уже сохраненый токен карты. Оплата будет производится с подтверждением CVV и 3DSecure |
Расщепление платежа | LMI_SPLIT | Нет | Платеж с расщеплением суммы на нескольких получателей. В этом параметре указывается JSON массив с правилами расщепления платежа. При использовании параметра LMI_SPLIT происходит одно списание с клиента и несколько зачислений получателям. Пример JSON строки:[{"CompanyId": 1, "Amount": 20,"CompanyName":"","Description":"","EDRPOU":"","IBAN":""}, {"CompanyId": 2, "Amount": 12,"CompanyName":"","Description":"","EDRPOU":"","IBAN":""}] |
IP плательщика | LMI_PAYER_IP | Да | IP адрес плательщика |
URL сайта | LMI_MERCHANT_URL | Да | URL сайта, на котором производился платеж |
Формат XML-ответа:
<Response>
<Retval></Retval>
<Retdesc></Retdesc>
<Retdata>
<LMI_SYS_PAYMENT_ID></LMI_SYS_PAYMENT_ID>
<Is3ds></Is3ds>
<action></action>
<PaReq></PaReq>
<MD></MD>
<ErrorMessage></ErrorMessage>
</Retdata>
</Response>
Название | Поле в XML | Описание |
---|---|---|
Код выполнения запроса | Retval | 0 - успешное выполнение команды; 1 - Некорректная подпись (HASH); 2 – некорректные параметры; 3 – Карта данного типа не может быть спроцессирована; 4,5,6,7 – внутренняя ошибка; 8 - в процессе выполнения |
Описание кода виполнения | Retdesc | |
Внутренний номер платежа в системе PaySoft | Retdata/LMI_SYS_PAYMENT_ID | Номер принятого платежа в системе PaySoft. |
Is3ds | флаг вовлеченности карты в 3D-Secure (0 – карта не требует проверки 3DSecure; 1 – карта нуждается в проверке 3D-Secure). | |
action | URL для перенаправления клиента. Отображается только при Retval = 0 и Retdata / Is3ds = 1 | |
PaReq | параметры запроса при 3D-Secure. Отображается только при Retval = 0 и Retdata / Is3ds = 1 | |
MD | параметры запроса при 3D-Secure. Отображается только при Retval = 0 и Retdata / Is3ds = 1 | |
ErrorMessage | дополнительная информация об ошибках |
Если в ответ на paymentCreate было получено значение поля Retdata/Is3ds = 1, это означает, что карта требует проверки по технологии 3D-Secure. Для проведения такой проверки необходимо сформировать и отправить html-форму методом POST по указанному в поле Retdata/action адресу.
Внимание! Вы не можете проигнорировать тот факт, что карта вовлечена в 3D-Secure. Если в ответе на paymentCreate был получен Is3ds = 1, то вы не можете пропустить данный шаг (авторизацию карты по 3D-Secure) и сразу перейти к команде paymentConfirm.
Пример HTML формы, содержащий все необходимые поля:
<form method="POST" action="action">
<input type="hidden" name="PaReq" value="%PaReq%">
<input type="hidden" name="MD" value="%MD%">
<input type="hidden" name="TermUrl" value="%TERMURL%">
</form>
Параметры html-формы:
• %ACTION% - значение поля Retdata/action из ответа на запрос paymentCreate
• %PaReq%- значение поля Retdata/PaReq из ответа на запрос paymentCreate
• %MD% - значение поля Retdata/MD из ответа на запрос paymentCreate
• %TERMURL% - URL адрес Вашей страницы, на которую вернется клиент после проведения проверки 3D-Secure. Может содержать GET-параметры.
После проведения проверки 3DSecure клиент будет перенаправлен на указанный в TermUrl адрес с помощью POST-запроса. Среди параметров этого запроса будут присутствовать PaRes и MD.