mirror of
https://github.com/anthonyaxenov/atol-online.git
synced 2024-11-22 11:34:33 +00:00
Мелкофиксы по документации и roadmap
This commit is contained in:
parent
9ed999f9fc
commit
8d9f218280
17
ROADMAP.md
17
ROADMAP.md
@ -26,8 +26,6 @@
|
|||||||
- [ ] Тесты для регистрации документа возврата расхода
|
- [ ] Тесты для регистрации документа возврата расхода
|
||||||
- [ ] Тесты для регистрации документа коррекции расхода
|
- [ ] Тесты для регистрации документа коррекции расхода
|
||||||
- [ ] Вообще все расчёты вообще везде должны быть строго в копейках. Рубли (дроби) должны быть только в JSON-представлениях
|
- [ ] Вообще все расчёты вообще везде должны быть строго в копейках. Рубли (дроби) должны быть только в JSON-представлениях
|
||||||
- [ ] Валидатор схемы для документов прихода, возврата прихода, расхода, возврата расхода
|
|
||||||
- [ ] Валидатор схемы для документов коррекции прихода, коррекции расхода
|
|
||||||
|
|
||||||
## Поддержка методов API (регистрация документов)
|
## Поддержка методов API (регистрация документов)
|
||||||
|
|
||||||
@ -65,3 +63,18 @@
|
|||||||
- [x] Пoддержка `correction.vats` (обязательный)
|
- [x] Пoддержка `correction.vats` (обязательный)
|
||||||
- [x] Пoддержка `correction.correction_info` (обязательный)
|
- [x] Пoддержка `correction.correction_info` (обязательный)
|
||||||
- [x] Пoддержка `correction.cashier`
|
- [x] Пoддержка `correction.cashier`
|
||||||
|
|
||||||
|
## Не будут реализовываться
|
||||||
|
|
||||||
|
### Валидация генерируемых документов согласно актуальной схемы API
|
||||||
|
|
||||||
|
- Валидатор схемы для документов прихода, возврата прихода, расхода, возврата расхода
|
||||||
|
- Валидатор схемы для документов коррекции прихода, коррекции расхода
|
||||||
|
|
||||||
|
1. Отказ обусловлен скоростью выполнения.
|
||||||
|
Базовая реализация, которая была начата, подразумевала синглтон, который кешировал однажды полученную схему.
|
||||||
|
Практика показала, что этот единичный запрос может существенно тормозить работу сервера и в течение долгого времени
|
||||||
|
не отдавать ответ клиенту.
|
||||||
|
|
||||||
|
2. Такая валидация подходит в том случае, если бы при разработке использовалась концепция IoC.
|
||||||
|
До версии пакета 2.0.0 таких серьёзных имзенений не планируется.
|
||||||
|
@ -46,10 +46,10 @@ $customer = (new AtolOnline\Entities\Client())
|
|||||||
* `AtolEmailValidateException` (если email невалиден).
|
* `AtolEmailValidateException` (если email невалиден).
|
||||||
|
|
||||||
Метод `setInn()` чистит входную строку от всех символов, кроме цифр, и проверяет длину (либо 10, либо 12 цифр).
|
Метод `setInn()` чистит входную строку от всех символов, кроме цифр, и проверяет длину (либо 10, либо 12 цифр).
|
||||||
Выбрасывает исключение `AtolInnWrongLengthException` (если длина строка ИНН некорректна).
|
Выбрасывает исключение `AtolInnWrongLengthException` (если длина ИНН некорректна).
|
||||||
|
|
||||||
Метод `setName()` проверяет входную строку на длину (до 256 символов).
|
Метод `setName()` проверяет входную строку на длину (до 256 символов).
|
||||||
Выбрасывает исключение `AtolNameTooLongException` (если слишком длинное наименование).
|
Выбрасывает исключение `AtolNameTooLongException` (если слишком длинное имя).
|
||||||
|
|
||||||
Метод `setPhone()` чистит входную строку от всех символов, кроме цифр и знака `+`, и проверяет длину (до 64 символов).
|
Метод `setPhone()` чистит входную строку от всех символов, кроме цифр и знака `+`, и проверяет длину (до 64 символов).
|
||||||
Выбрасывает исключение `AtolPhoneTooLongException` (если слишком длинный номер телефона).
|
Выбрасывает исключение `AtolPhoneTooLongException` (если слишком длинный номер телефона).
|
||||||
|
@ -46,7 +46,7 @@ $company = (new AtolOnline\Entities\Company())
|
|||||||
* `AtolEmailValidateException` (если email невалиден).
|
* `AtolEmailValidateException` (если email невалиден).
|
||||||
|
|
||||||
Метод `setInn()` чистит входную строку от всех символов, кроме цифр, и проверяет длину (либо 10, либо 12 цифр).
|
Метод `setInn()` чистит входную строку от всех символов, кроме цифр, и проверяет длину (либо 10, либо 12 цифр).
|
||||||
Выбрасывает исключение `AtolInnWrongLengthException` (если длина строка ИНН некорректна).
|
Выбрасывает исключение `AtolInnWrongLengthException` (если длина ИНН некорректна).
|
||||||
|
|
||||||
Метод `setPaymentAddress()` проверяет длину (до 256 символов).
|
Метод `setPaymentAddress()` проверяет длину (до 256 символов).
|
||||||
Выбрасывает исключение `AtolPaymentAddressTooLongException` (если слишком длинный адрес места расчётов).
|
Выбрасывает исключение `AtolPaymentAddressTooLongException` (если слишком длинный адрес места расчётов).
|
||||||
|
25
docs/kkt.md
25
docs/kkt.md
@ -49,6 +49,7 @@ $kkt->getGroup();
|
|||||||
|
|
||||||
Эти параметры нужно задать [объекту компании](/docs/company.md), который будет передаваться в документах через эту ККТ.
|
Эти параметры нужно задать [объекту компании](/docs/company.md), который будет передаваться в документах через эту ККТ.
|
||||||
|
|
||||||
|
<a name='testmode'></a>
|
||||||
## Тестовый режим
|
## Тестовый режим
|
||||||
|
|
||||||
На самом деле, в АТОЛ Онлайн нет понятия *тестовая операция* или чего-то в этом духе.
|
На самом деле, в АТОЛ Онлайн нет понятия *тестовая операция* или чего-то в этом духе.
|
||||||
@ -85,10 +86,10 @@ $kkt->setTestMode(false); // выключить
|
|||||||
3. пп. 1 и 2 в любом случае скажутся на ваших финансовых отчётах;
|
3. пп. 1 и 2 в любом случае скажутся на ваших финансовых отчётах;
|
||||||
4. вся ответственность за пп. 1-3 и последствия ложится только на вас.
|
4. вся ответственность за пп. 1-3 и последствия ложится только на вас.
|
||||||
|
|
||||||
## Авторизация ККТ
|
## Авторизация на ККТ
|
||||||
|
|
||||||
Перед первым запросом на ККТ происходит авторизация на сервере по логину и паролю.
|
Перед первым запросом на ККТ происходит аутентификация на сервере по логину и паролю.
|
||||||
В ответ приходит авторизационный токен, срок жизни коего равен 24 часам.
|
В ответ приходит авторизационный токен, срок жизни коего равен **24 часам**.
|
||||||
После первой успешной операции возможно получить этот токен следующим образом:
|
После первой успешной операции возможно получить этот токен следующим образом:
|
||||||
|
|
||||||
```php
|
```php
|
||||||
@ -98,7 +99,7 @@ $kkt->getAuthToken(); // вернёт строку длиной 128 символ
|
|||||||
Этот токен можно сохранить и переиспользовать в течение всего срока его жизни.
|
Этот токен можно сохранить и переиспользовать в течение всего срока его жизни.
|
||||||
Спустя это время следует получить новый токен.
|
Спустя это время следует получить новый токен.
|
||||||
|
|
||||||
Однажды полученный токен, то для дальнейшего использования следует указывать его следующим образом:
|
Для дальнейшего использования однажды полученный токен следует указывать следующим образом:
|
||||||
|
|
||||||
```php
|
```php
|
||||||
$kkt->setAuthToken($token_string);
|
$kkt->setAuthToken($token_string);
|
||||||
@ -153,6 +154,9 @@ $result = $kkt->sellCorrection($document);
|
|||||||
$result = $kkt->buyCorrection($document);
|
$result = $kkt->buyCorrection($document);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Любой из перечисленных выше шести методов может выбросить исключение `AtolAuthFailedException` при ошибке
|
||||||
|
аутентификации или авторизации.
|
||||||
|
|
||||||
### Собственный идентификатор документа
|
### Собственный идентификатор документа
|
||||||
|
|
||||||
Каждый документ, переданный на ККТ для регистрации, всегда имеет свой идентификатор, абсолютно уникальный среди всех
|
Каждый документ, переданный на ККТ для регистрации, всегда имеет свой идентификатор, абсолютно уникальный среди всех
|
||||||
@ -185,6 +189,17 @@ $kkt->setCallbackUrl('http://example.com/process-kkt-result');
|
|||||||
$kkt->getCallbackUrl();
|
$kkt->getCallbackUrl();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Метод `setCallbackUrl()` проверяет входную строку на длину (до 256 символов) и валидность формата url по
|
||||||
|
регулярному выражению:
|
||||||
|
|
||||||
|
```
|
||||||
|
^http(s?)\:\/\/[0-9a-zA-Zа-яА-Я]([-.\w]*[0-9a-zA-Zа-яА-Я])*(:(0-9)*)*(\/?)([a-zAZ0-9а-яА-Я\-\.\?\,\'\/\\\+&=%$#_]*)?$
|
||||||
|
```
|
||||||
|
|
||||||
|
Выбрасывает исключения:
|
||||||
|
* `AtolCallbackUrlTooLongException` (если слишком длинный url);
|
||||||
|
* `AtolInvalidCallbackUrlException` (если url невалиден).
|
||||||
|
|
||||||
## Обработка результата регистрации
|
## Обработка результата регистрации
|
||||||
|
|
||||||
Методы `sell()`, `sellRefund()`, `sellCorrection()`, `buy()`, `buyRefund()` и `buyCorrection()` возвращают объект `AtolOnline\Api\KktResponse`.
|
Методы `sell()`, `sellRefund()`, `sellCorrection()`, `buy()`, `buyRefund()` и `buyCorrection()` возвращают объект `AtolOnline\Api\KktResponse`.
|
||||||
@ -194,7 +209,7 @@ $kkt->getCallbackUrl();
|
|||||||
Этот объект содержит в себе HTTP-код ответа, массив заголовков и JSON-декодированные данные тела ответа.
|
Этот объект содержит в себе HTTP-код ответа, массив заголовков и JSON-декодированные данные тела ответа.
|
||||||
|
|
||||||
```php
|
```php
|
||||||
$result = $kkt->getLastResponse();
|
$result = $kkt->getLastResponse(); // вернёт последний ответ от API
|
||||||
$headers = $result->getHeaders(); // вернёт заголовки
|
$headers = $result->getHeaders(); // вернёт заголовки
|
||||||
$code = $result->getCode(); // вернёт код ответа
|
$code = $result->getCode(); // вернёт код ответа
|
||||||
$body = $result->getContent(); // вернёт JSON-декодированное тело ответа
|
$body = $result->getContent(); // вернёт JSON-декодированное тело ответа
|
||||||
|
Loading…
Reference in New Issue
Block a user