From e70a65fa44ab9dd593668c7eca4222691fea552b Mon Sep 17 00:00:00 2001 From: AnthonyAxenov Date: Sat, 30 May 2020 04:29:44 +0800 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=BB=D1=83=D1=87=D1=88=D0=B5=D0=BD=20?= =?UTF-8?q?=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=20Kkt::registerDocument?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit + теперь принимает любой собственного external_id, если пусто - сгенерирует uuid * исправлен недостаток полей компании в тестовом режиме * уточнения phpdoc --- src/AtolOnline/Api/Kkt.php | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/AtolOnline/Api/Kkt.php b/src/AtolOnline/Api/Kkt.php index 694698c..cd0ebad 100644 --- a/src/AtolOnline/Api/Kkt.php +++ b/src/AtolOnline/Api/Kkt.php @@ -471,14 +471,19 @@ class Kkt extends Client /** * Отправляет документ на регистрацию * - * @param string $api_method Метод API - * @param string $type Тип документа: receipt, correction - * @param \AtolOnline\Entities\Document $document Объект документа + * @param string $api_method Метод API + * @param string $type Тип документа: receipt, correction + * @param \AtolOnline\Entities\Document $document Объект документа + * @param string|null $external_id Уникальный код документа (если не указан, то будет создан UUID) * @return \AtolOnline\Api\KktResponse + * @throws \AtolOnline\Exceptions\AtolEmailTooLongException + * @throws \AtolOnline\Exceptions\AtolEmailValidateException + * @throws \AtolOnline\Exceptions\AtolInnWrongLengthException + * @throws \AtolOnline\Exceptions\AtolPaymentAddressTooLongException * @throws \AtolOnline\Exceptions\AtolWrongDocumentTypeException Некорректный тип документа - * @throws \Exception + * @throws \GuzzleHttp\Exception\GuzzleException */ - protected function registerDocument(string $api_method, string $type, Document $document) + protected function registerDocument(string $api_method, string $type, Document $document, ?string $external_id = null) { $type = trim($type); if (!in_array($type, ['receipt', 'correction'])) { @@ -489,14 +494,16 @@ class Kkt extends Client $document->setCompany((new Company()) ->setInn('5544332219') ->setPaymentAddress('https://v4.online.atol.ru') + ->setEmail('test@example.com') + ->setSno('osn') ); } - $data = [ - 'timestamp' => date('d.m.y H:i:s'), - 'external_id' => Uuid::uuid4()->toString(), - 'service' => ['callback_url' => $this->getCallbackUrl()], - $type => $document, - ]; + $data['timestamp'] = date('d.m.y H:i:s'); + $data['external_id'] = $external_id ?: Uuid::uuid4()->toString(); + $data[$type] = $document; + if ($this->getCallbackUrl()) { + $data['service'] = ['callback_url' => $this->getCallbackUrl()]; + } return $this->sendAtolRequest('POST', trim($api_method), $data); }