Предприятие может узнать результат оплаты (статус заказа) по номеру заказа с помощью веб-сервиса. Все возможные статусы заказа описаны в таблице "Статусы заказа (orderstate)".
Для получения результата платежа по номеру заказа нужно отправить запрос на сервер АПК Ассист методом HTTP POST или SOAP (в кодировке UTF-8), либо в формате JSON (swagger описание: https://docs.belassist.by/swagger/).
URL запроса для получения статуса заказа:
https://<SERVER-NAME>/orderstate/orderstate.cfm.
Поиск заказа при помощи веб-сервиса производится только за указанный промежуток времени. Для этого нужно задать период, когда была начата оплата заказа, при помощи параметров STARTDAY, STARTMONTH, STARTYEAR, задающих дату начала выборки, и параметров ENDDAY, ENDMONTH, ENDYEAR, задающих дату окончания выборки. Если параметры будут не заданы или заданы неверно, для них будут использованы значения по умолчанию. По умолчанию за дату окончания выборки принимается текущая дата, а за дату начала выборки – текущая дата минус три дня.
Список параметров запроса:
Название | Обязательное поле | Принимаемые значения | Значение по умолчанию | Описание |
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 | Текущая минута | |
Format | Да/Нет | 1 – CSV | 4 | Формат выдачи результатов. Передается только для запроса в формате POST (по умолчанию ответ будет выдан в формате SOAP). Для других форматов ответ выдается в том же формате, в котором был выполнен запрос. |
Все параметры, передаваемые в запросе, проходят автоматическую валидацию в АПК Ассист. Правила валидации описаны в табл. "Правила валидации входных параметров".
Пример запроса HTTP POST для получения статуса заказа 1001-01, оплата которого началась 1 апреля 2018 года (GMT):
<FORM ACTION="https://<SERVER-NAME>/orderstate/orderstate.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="2018"> <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="2018"> <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="SUBMIT" NAME="Submit" VALUE="Submit"> </FORM>
Список параметров ответа:
Название | Значение |
billnumber | Уникальный номер заказа в системе АПК Ассист |
ordernumber | Номер заказа |
orderstate | Статус заказа |
orderamount | Оригинальная сумма заказа |
ordercurrency | Оригинальны валюта заказа |
packetdate | Дата формирования запроса по Гринвичу (GMT) |
signature | 1) Для типа подписи MD5 - пусто 2) Для типа PGP – значение X, подписанное закрытым ключом АПК Ассист, закодированное в BASE64 |
checkvalue | 1) Для типа подписи PGP - пусто 2) Для типа MD5 – uppercase(md5(uppercase(md5(SALT) + md5(Х)))), где SALT – секретное слово; Х – результат строковой склейки параметров merchant_id, ordernumber, orderamount, ordercurrency, orderstate (без разделителей), + строковая склейка. |
Пример результата ответа в формате CSV:
ordernumber;billnumber;orderamount;ordercurrency;orderstate;packetdate;signature;checkvalue;2306-08;551508910014022; 100.00;BYN;Approved; 06.07.2016 11:59;; D6313123A5C09;
В формате 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?,orderamount?,ordercurrency?,orderstate?,packetdate?,checkvalue?)> <!ELEMENT ordernumber (#PCDATA)> <!ELEMENT billnumber (#PCDATA)> <!ELEMENT orderamount (#PCDATA)> <!ELEMENT ordercurrency (#PCDATA)> <!ELEMENT orderstate (#PCDATA)> <!ELEMENT packetdate (#PCDATA)> <!ELEMENT checkvalue (#PCDATA)>]> <result firstcode='0' secondcode='0' count='1'> <order> <ordernumber>0001-01</ordernumber> <billnumber>511111100000001</billnumber> <orderamount>100.00</orderamount> <ordercurrency>BYN</ordercurrency> <orderstate>Approved</orderstate> <packetdate>06.07.2016 11:58</packetdate> <signature></signature> <checkvalue> </checkvalue> </order></result>
Пример результата запроса в формате XML, вернувшего ошибку (неправильный пароль):
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> <!DOCTYPE result [...]> <result firstcode="7" secondcode="102" count="0"></result>
С описанием первого и второго кодов ошибок можно ознакомиться в Таблице "Коды ошибок".
Описание веб-сервиса для формата SOAP можно увидеть на странице:
https://<SERVER-NAME>/orderstate/orderstate.wsdl
Если попытка оплаты заказа была неуспешной (не прошла авторизация платежного средства или превышено время ожидания), то при повторной попытке оплаты будет создан новый уникальный номер (billnumber) в АПК Ассист для того же номера заказа в интернет-магазине, что будет отражено в ответе на запрос о статусе заказа.
Пример ответа в формате SOAP для случая успешной оплаты заказа со второй попытки:
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://www.paysecure.ru/ws/"><soapenv:Body> <ws:orderstateResponse> <orderstate> <order> <ordernumber>13032014_121</ordernumber> <billnumber>5500069208497981</billnumber> <orderamount>121.00</orderamount> <ordercurrency>BYN</ordercurrency> <orderstate> Declined </orderstate> <packetdate>06.07.2016 13:34</packetdate> <signature></signature> <checkvalue>45A33F800F2BD16C02E3D2F5C81557A0</checkvalue> </order> <ordernumber>13032014_121</ordernumber> <billnumber>5500069208497999</billnumber> <orderamount>121.00</orderamount> <ordercurrency>BYN</ordercurrency> <orderstate>Approved</orderstate> <packetdate>06.07.2016 13:34</packetdate> <signature></signature> <checkvalue>671768C59429DE5A9C5BBD1E7F573666</checkvalue> </order> </orderstate> </ws:orderstateResponse> </soapenv:Body></soapenv:Envelope>
Внимание!
Для корректной работы с веб-сервисами по защищенному TLS-соединению необходимо иметь на своей стороне в хранилище доверенных корневых сертификатов следующие сертификаты:
- корневые сертификаты от GlobalSign (https://www.globalsign.com/repository/ca-certificates/):
- GlobalSign Root R3;
- GlobalSign ECC Root R5;
- GlobalSign Root R6;
- корневые сертификаты от Sectigo (https://www.sectigo.com/knowledge-base/detail/Sectigo-Root-Certificates/kA03l000000c4KV):
- USERTrust RSA Certification Authority;
- USERTrust ECC Certification Authority.
Перед началом работы следует проверить наличие этих сертификатов в хранилище и добавить их в случае необходимости.