В АПК Ассист предусмотрен функционал, позволяющий реализовать оплату с передачей чека. Этот режим позволяет перейти к детализации в заказе на уровне перечня позиций, по которым осуществляется оплата в рамках заказа.
Чек в заказе
Чек передается в авторизационном запросе . Для этого необходимо в запросе передать дополнительный параметр ChequeItems, в котором передаётся структура в формате JSON, как в следующем примере.
В структуре передаются следующие параметры позиций чека:
Название | Обязательное поле | Тип значения | Описание |
id | Да | int | Позиция в чеке (уникальное число для чека) |
product | Да/Нет1 | string(50) | Код товара по справочнику товаров магазина |
name | Да/Нет1 | string(250) | Наименование товара |
price | Да | float(10.2) | Стоимость единицы товара (услуги) |
quantity | Да | float | Количество/объем товара/услуги в единицах измерения товара (может быть дробным числом) |
measure | Нет3 | string | |
amount | Да | float(15.2) | Стоимость позиции price*quantity |
tax | Да/Нет2 | string(10) | |
taxes | Да/Нет2 | Array[string] | Массив идентификаторов используемых ставок налога |
gs1code | Нет | string(30) | GS1 DataMatrix код маркировки товара (номер акцизной марки). Примечание. Код должен быть преобразован в BASE64 (URL safe). |
1Должен быть определен один из параметров - код товара или его наименование, либо оба параметра должны быть переданы. В зависимости от переданного значения в ОФД в качестве кода товара будет отправлено число (если было передано число не больше 9223372036854775807), либо в качестве наименования будет отправлена склейка переданного значения с значением наименования в поле name (если была передана строка или число больше 9223372036854775807).
2Обязательным является один из двух параметров Tax (если при платеже использовалась единственная ставка налога) и Taxes (если для платежа использовались несколько ставок налога). Параметр Tax (Taxes) не передаются в запросе на отмену или возврат средств.
3Если параметр не передан, то его значение берется из настроек предприятия.
Значения параметров price и amount всех позиций в чеке должны быть в одной валюте, и эта валюта должна совпадать с валютой заказа (параметр OrderCurrency в авторизационном запросе).
Сумма всех позиций чека (по параметру amount) должна быть равна сумме заказа (параметр OrderAmount в запросе).
Если указанные выше условия не соблюдаются, чек признается неверным и происходит ошибка запроса.
Пример запроса в формате POST:
<FORM ACTION="https://<SERVER-NAME>/pay/order.cfm" METHOD="POST">
<INPUT TYPE="HIDDEN" NAME="Merchant_ID" VALUE="Ваш Merchant_ID">
<INPUT TYPE="HIDDEN" NAME="OrderNumber" VALUE="A20042011_28">
<INPUT TYPE="HIDDEN" NAME="OrderAmount" VALUE="2672.01">
<INPUT TYPE="HIDDEN" NAME="OrderCurrency" VALUE="KZT">
<INPUT TYPE="HIDDEN" NAME="Email" VALUE="test@test.kz">
<INPUT TYPE="HIDDEN" NAME="OrderComment" VALUE="тестовый платеж">
<INPUT TYPE="HIDDEN" NAME="URL_RETURN_OK" VALUE="http://www.URL.kz/yes">
<INPUT TYPE="HIDDEN" NAME="URL_RETURN_NO" VALUE="http://www.URL.kz/no">
<INPUT TYPE="HIDDEN" NAME="CardPayment" VALUE="1">
<INPUT TYPE="HIDDEN" NAME="Delay" VALUE="0">
<INPUT TYPE="HIDDEN" NAME="Language" VALUE="RU">
<INPUT TYPE="HIDDEN" NAME="TaxationSystem" ="1">
<INPUT TYPE="HIDDEN" NAME="CashierINN" ="2147483646">
<INPUT TYPE="HIDDEN" NAME="Cashier" ="Иванов Иван Иванович">
<INPUT TYPE="HIDDEN" NAME="PaymentPlace" ="А345">
<INPUT TYPE="HIDDEN" NAME="TaxpayerID" ="123456789113">
<INPUT TYPE="HIDDEN" NAME="ChequeItems" =
"{[{"id":"1"
"name":"name1",
"product":"2147483646",
"price":"150.82",
"quantity":"2.37",
"measure":"кг",
"amount":"357.44",
"taxes":"[{'name':'vat12','value':12},{'name':'vat0','value':0}]",
},
{"id":"2",
"name":"Товар 2",
"product":"1212",
"price":"128.12",
"quantity":"5.76",
"measure":"кг",
"amount":"737.97",
"tax":"vat12",
},
{"id":"3",
"name":"Товар 3",
"price":"370.6789",
"product":"131415",
"quantity":"2.658",
"measure":"кг",
"amount":"985.24",
"tax":"vat0",
},
{"id":"4",
"name":"Name 4",
"product":"5432",
"price":"49.56788",
"quantity":"6",
"measure":"кг",
"amount":"297.36",
"taxes":"[{'name':'vat0','value':0}]",
},
{"id":"5",
"name":"Товар 5",
"product":"11223344",
"price":"49",
"quantity":"6",
"measure":"кг",
"amount":"294",
}]}"
<INPUT TYPE="HIDDEN" NAME="Lastname" VALUE="Тестов">
<INPUT TYPE="HIDDEN" NAME="Firstname" VALUE="Тест">
<INPUT TYPE="HIDDEN" NAME="Middlename" VALUE="Тестович">
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Купить">
</FORM>
Чек при подтверждении
При двустадийном механизме работы финансовое подтверждение интернет-магазин может осуществить в течение 4 дней в Личном кабинете либо с помощью веб-сервиса.
Для подтверждения оплаты нужно отправить запрос на сервер АПК Ассист методом HTTP POST или SOAP (в кодировке UTF-8).