Улучшен метод Kkt::registerDocument

+ теперь принимает любой собственного external_id, если пусто - сгенерирует uuid
* исправлен недостаток полей компании в тестовом режиме
* уточнения phpdoc
This commit is contained in:
Anthony Axenov 2020-05-30 04:29:44 +08:00
parent ba5166f2cf
commit e70a65fa44

View File

@ -474,11 +474,16 @@ class Kkt extends Client
* @param string $api_method Метод API * @param string $api_method Метод API
* @param string $type Тип документа: receipt, correction * @param string $type Тип документа: receipt, correction
* @param \AtolOnline\Entities\Document $document Объект документа * @param \AtolOnline\Entities\Document $document Объект документа
* @param string|null $external_id Уникальный код документа (если не указан, то будет создан UUID)
* @return \AtolOnline\Api\KktResponse * @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 \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); $type = trim($type);
if (!in_array($type, ['receipt', 'correction'])) { if (!in_array($type, ['receipt', 'correction'])) {
@ -489,14 +494,16 @@ class Kkt extends Client
$document->setCompany((new Company()) $document->setCompany((new Company())
->setInn('5544332219') ->setInn('5544332219')
->setPaymentAddress('https://v4.online.atol.ru') ->setPaymentAddress('https://v4.online.atol.ru')
->setEmail('test@example.com')
->setSno('osn')
); );
} }
$data = [ $data['timestamp'] = date('d.m.y H:i:s');
'timestamp' => date('d.m.y H:i:s'), $data['external_id'] = $external_id ?: Uuid::uuid4()->toString();
'external_id' => Uuid::uuid4()->toString(), $data[$type] = $document;
'service' => ['callback_url' => $this->getCallbackUrl()], if ($this->getCallbackUrl()) {
$type => $document, $data['service'] = ['callback_url' => $this->getCallbackUrl()];
]; }
return $this->sendAtolRequest('POST', trim($api_method), $data); return $this->sendAtolRequest('POST', trim($api_method), $data);
} }