You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 21 Next »

В том случае, если предприятию недостаточно только информации о статусе заказа (оплачен, отменен, ожидает подтверждения оплаты), а необходима также детальная информация об операциях (оплаты, подтверждения оплаты, возврата или отмены), совершенных по данному заказу, предприятие может воспользоваться веб-сервисом получения результатов операций по номеру заказа.

Для получения результата платежа по номеру заказа нужно отправить запрос на сервер АПК Ассист методом HTTP POST или SOAP (в кодировке UTF-8).

URL запроса для получения результата оплаты с перечнем операций по заказу:

https://<SERVER-NAME>/orderresult/orderresult.cfm.

Поиск заказа при помощи веб-сервиса производится только за указанный промежуток времени (во временной зоне GMT). По умолчанию за дату окончания выборки принимается текущая дата, а за дату начала выборки – текущая дата минус три дня. Выборка осуществляется по дате заказа.

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

Название

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

Принимаемые значения

Значение по умолчанию

Описание

Ordernumber

Да

Строка, 128 символов


Номер заказа

Merchant_ID

Да

Число


Идентификатор предприятия в АПК Ассист

Login

Да

8 - 20 символов 


Логин (лат. буквы и цифры, символ _)

Password

Да

8 - 20 символов 


Пароль (лат. буквы и цифры)

StartYear

Нет

Год в формате YYYY

Минус 3 дня от текущей даты

Дата начала выборки по Гринвичу (GMT)

StartMonth

Нет

1-12

Минус 3 дня от текущей даты

StartDay

Нет

1-31

Минус 3 дня от текущей даты

StartHour

Нет

0-23

Минус 3 дня от текущей даты

StartMin

Нет

0-59

Минус 3 дня от текущей даты

EndYear

Нет

Год в формате YYYY

Текущий год

Дата окончания выборки по Гринвичу (GMT)

EndMonth

Нет

1-12

Текущий месяц

EndDay

Нет

1-31

Текущий день

EndHour

Нет

0-23

Текущий час

EndMin

Нет

0-59

Текущая минута

Language

Нет

RU

EN

EN

Язык вывода результатов

Format

Да/Нет

3 – XML
4 - SOAP

4

Формат выдачи результатов. Не нужно передавать в случае формата SOAP, нужно для формата POST

Примечание. Все параметры, передаваемые в запросе, проходят автоматическую валидацию в АПК Ассист. Правила валидации описаны в табл.5.15.

Пример запроса для формата HTTP POST:

<FORM ACTION="https://<SERVER-NAME>/orderresult/orderresult.cfm" METHOD="POST">
<INPUT TYPE="HIDDEN" NAME="Ordernumber" VALUE="1001-01">
<INPUT TYPE="HIDDEN" NAME="Merchant_ID" VALUE="Ваш Merchant_ID">
<INPUT TYPE="HIDDEN" NAME="Login" VALUE="Ваш логин">
<INPUT TYPE="HIDDEN" NAME="Password" VALUE="Ваш пароль">
<INPUT TYPE="HIDDEN" NAME="Startyear" VALUE="2011">
<INPUT TYPE="HIDDEN" NAME="Startmonth" VALUE="04">
<INPUT TYPE="HIDDEN" NAME="Startday" VALUE="01">
<INPUT TYPE="HIDDEN" NAME="Starthour" VALUE="00">
<INPUT TYPE="HIDDEN" NAME="Startmin" VALUE="00">
<INPUT TYPE="HIDDEN" NAME="Endyear" VALUE="2011">
<INPUT TYPE="HIDDEN" NAME="Endmonth" VALUE="04">
<INPUT TYPE="HIDDEN" NAME="Endday" VALUE="02">
<INPUT TYPE="HIDDEN" NAME="Endhour" VALUE="00">
<INPUT TYPE="HIDDEN" NAME="Endmin" VALUE="00">
<INPUT TYPE="HIDDEN" NAME="Format" VALUE="3">
<INPUT TYPE="HIDDEN" NAME="Language" VALUE="EN">
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Выполнить">
</FORM>

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

Название

Значение

Параметры заказа

billnumber

Уникальный номер заказа в системе АПК Ассист

ordernumber

Номер заказа

testmode

Тестовый режим

ordercomment

Комментарий

orderamount

Оригинальная сумма заказа

ordercurrency

Оригинальная валюта заказа

firstname

Имя плательщика

lastname

Фамилия плательщика

middlename

Отчество плательщика

Email

Email плательщика

orderdate

Дата заказа по Гринвичу (GMT)

orderstate

Статус заказа

packetdate

Дата формирования запроса по Гринвичу (GMT)

signature


checkvalue

uppercase(md5(uppercase(md5(SALT) + md5(Х)))), где SALT – секретное слово; Х – результат строковой склейки параметров merchant_id, ordernumber, orderamount, ordercurrency, orderstate (без разделителей), + -строковая склейка

Параметры операции

billnumber

Расширенный формат billnumber

operationtype

Тип операции

operationstate

Состояние операции

amount

Сумма операции

currency

Валюта операции

ipaddress

IP-адрес плательщика

clientip

IP-адрес совершившего операцию

meantype_id

Тип платежного средства

meansubtype

Подтип платежного средства

meannumber

Номер платежного средства

cardholder

Держатель платежного средства

cardexpirationdate

Срок действия карты

issuebank

Название банка-эмитента

bankcountry

Страна банка-эмитента

responsecode

Код возврата

message

Сообщение о результате операции

customermessage

Сообщение о результате для покупателя

recommendation

Рекомендация

approvalcode

Код авторизации

protocoltypename

Протокол

processingname

Процессинг

operationdate

Дата и время операции (GMT)

authresult

Результат аворизации по 3DSecure (Y - успешно, N - неуспешно, A - Attempt, U – неизвестно)

authrequired

Результат проверки вовлеченности карты (1 – вовлечена, 0 – не вовлечена, -1 – неизвестно, null – ошибка при определении вовлеченности)

slipno

Номер финансовой транзакции, отправляемый в процессинг

Внимание! В рамках одного заказа может быть проведено несколько операций (оплаты, подтверждения оплаты, отмены). Более того, в рамках одного заказа может быть несколько операций оплаты, если некоторые из них были неуспешными. Успешная операция оплаты заказа может быть только одна. В этих случаях в ответе на запрос о результатах операций по номеру заказа может быть несколько вложенных операций для одного номера заказа.

Внимание! В полученном ответе необходимо проверить значение параметра testmode. Если платеж был выполнен в тестовом режиме (testmode=1), то отгружать товар или оказывать услугу по текущему заказу не требуется.

Результат запроса в формате XML будет выглядеть следующим образом:

<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<!DOCTYPE result [
<!ATTLIST result
                 firstcode CDATA #REQUIRED
                 secondcode CDATA #REQUIRED
                 count CDATA #REQUIRED>
<!ELEMENT result (order*)>
<!ELEMENT order (ordernumber?,billnumber?,testmode?,ordercomment?,orderamount?,ordercurrency?,firstname?,lastname?,middlename?,email?,orderdate?,orderstate?,packetdate?,signature?,checkvalue?,operation*)>
<!ELEMENT ordernumber (#PCDATA)>
<!ELEMENT billnumber (#PCDATA)>
<!ELEMENT testmode (#PCDATA)>
<!ELEMENT ordercomment (#PCDATA)>
<!ELEMENT orderamount (#PCDATA)>
<!ELEMENT ordercurrency (#PCDATA)>
<!ELEMENT firstname (#PCDATA)>
<!ELEMENT lastname (#PCDATA)>
<!ELEMENT middlename (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT orderdate (#PCDATA)>
<!ELEMENT orderstate (#PCDATA)>
<!ELEMENT packetdate (#PCDATA)>
<!ELEMENT signature (#PCDATA)>
<!ELEMENT checkvalue (#PCDATA)>
<!ELEMENT operation  (billnumber?,operationtype?,operationstate?,amount?,currency?,clientip?,ipaddress?,meantype_id?,meantypename?,meansubtype?,meannumber?,cardholder?,cardexpirationdate?,issuebank?,bankcountry?,responsecode?,message?,customermessage?,recommendation?,approvalcode?,protocoltypename?,processingname?,operationdate?,authresult?,authrequired?,slipno?)>
<!ELEMENT operationtype (#PCDATA)>
<!ELEMENT operationstate (#PCDATA)>
<!ELEMENT amount (#PCDATA)> 
<!ELEMENT currency (#PCDATA)>
<!ELEMENT clientip (#PCDATA)>
<!ELEMENT ipaddress (#PCDATA)>
<!ELEMENT meantype_id (#PCDATA)>
<!ELEMENT meantypename (#PCDATA)>
<!ELEMENT meansubtype (#PCDATA)>
<!ELEMENT meannumber (#PCDATA)>
<!ELEMENT cardholder (#PCDATA)>
<!ELEMENT cardexpirationdate (#PCDATA)>
<!ELEMENT issuebank (#PCDATA)>
<!ELEMENT bankcountry (#PCDATA)>
<!ELEMENT responsecode (#PCDATA)>
<!ELEMENT message (#PCDATA)>
<!ELEMENT customermessage (#PCDATA)>
<!ELEMENT recommendation (#PCDATA)>
<!ELEMENT approvalcode (#PCDATA)>
<!ELEMENT protocoltypename (#PCDATA)>
<!ELEMENT processingname (#PCDATA)>
<!ELEMENT operationdate (#PCDATA)>
<!ELEMENT authresult (#PCDATA)>
<!ELEMENT authrequired (#PCDATA)>
<!ELEMENT slipno (#PCDATA)>]>
<result firstcode='0' secondcode='0' count='1'> 
<order> 
  <ordernumber>0001-01</ordernumber>
  <billnumber>511111100000001</billnumber>
  <testmode>1</testmode> 
  <ordercomment>тестовый платеж</ordercomment> 
  <orderamount>100.00</orderamount>
  <ordercurrency>RUB</ordercurrency>
  <firstname>Test</firstname>
  <lastname>Testov</lastname>
  <middlename>Testovich</middlename>
  <email>test@testpost.ru</email>
  <orderdate>01.01.2011 11:23:13</orderdate> 
  <orderstate>Approved</orderstate>
  <packetdate>01.01.2011 12:05</packetdate> 
  <signature></signature>
  <checkvalue></checkvalue> 
  <operation> 
    <billnumber>511111100000001.1</billnumber> 
    <operationtype>100</operationtype> 
    <operationstate>Success</operationstate> 
    <amount>100.00</amount> 
    <currency>RUB</currency> 
    <clientip>111.23.11.23</clientip> 
    <ipaddress>0.0.0.0</ipaddress> 
    <meantype_id>1</meantype_id> 
    <meantypename>VISA</meantypename> 
    <meansubtype>Classic</meansubtype>
    <meannumber>411111****1111</meannumber> 
    <cardholder>TEST</cardholder> 
    <cardexpirationdate>12/20</cardexpirationdate>
    <issuebank>New Bank</issuebank> 
    <bankcountry>Russia</bankcountry>
    <responsecode>AS000</responsecode>
    <message></message> 
    <customermessage> </customermessage> 
    <recommendation></recommendation> 
    <approvalcode>F41412</approvalcode> 
    <protocoltypename>NET</protocoltypename> 
    <processingname>Name</processingname>
    <operationdate>01.01.2011 11:24:13</ operationdate>
    <authresult>Y</authresult>
    <authrequired>1</authrequired>
    <slipno>111111</slipno></operation> 
  <operation> 
    <billnumber>511111100000001.2</billnumber> 
    <operationtype>200</operationtype> 
    <operationstate>Success</operationstate> 
    <amount>100.00</amount> 
    <currency>RUB</currency> 
    <clientip>111.23.11.23</clientip> 
    <ipaddress>0.0.0.0</ipaddress> 
    <meantype_id>1</meantype_id> 
    <meantypename>VISA</meantypename> 
    <meansubtype>Classic</meansubtype> 
    <meannumber>411111****1111</meannumber> 
    <cardholder>TEST</cardholder> 
    <cardexpirationdate>12/20</cardexpirationdate>
    <issuebank>New Bank</issuebank> 
    <bankcountry>Russia</bankcountry>
    <responsecode>AS000</responsecode>
    <message></message> 
    <customermessage> </customermessage> 
    <recommendation></recommendation> 
    <approvalcode></approvalcode> 
    <protocoltypename></protocoltypename> 
    <processingname>Name</processingname>
    <operationdate>01.02.2011 19:24:13</operationdate>
    <authresult></authresult>
    <authrequired></authrequired> 
    <slipno>111111</slipno>
  </operation></order></result>

Пример результата запроса в формате XML, вернувшего ошибку (неправильный пароль):

<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 
<!DOCTYPE result [...]> 
<result firstcode="7" secondcode="102" count="0"></result> 

С описанием первого и второго кодов автоматизированных интерфейсов можно ознакомиться в Таблице 5.12. Также в таблицах 5.1, 5.2, 5.4, 5.8  описаны возможные статусы заказа, типы операций, коды возврата и коды валют соответственно. В качестве значения поля <meannumber> возвращаются первые 6 и последние 4 цифры номера карты, остальные цифры скрыты символом *.

Описание веб-сервиса для формата SOAP можно увидеть на странице:

https://<SERVER-NAME>/orderresult/orderresult.wsdl .