рубли
$email = $data['DATA']['Email'] ?? $data['Email'] ?? '';
$phone = $data['DATA']['Phone'] ?? $data['Phone'] ?? '';
$productName = $data['Description'] ?? 'Товар';
try {
// Формируем чек "Приход"
$request = new \ItQuasar\AtolOnline\Sell();
$request->setExternalId($orderId);
$request->setTimestamp(new DateTime());
$receipt = new \ItQuasar\AtolOnline\Receipt();
$receipt->setTotal($amount);
// Данные клиента
$client = new \ItQuasar\AtolOnline\Client();
if ($email) { $client->setEmail($email); }
if ($phone) { $client->setPhone($phone); }
$receipt->setClient($client);
// Данные компании из Атол Онлайн
$company = new \ItQuasar\AtolOnline\Company();
$company
->setEmail('info@budupozdno.com')
->setInn('773612211896')
->setSno(\ItQuasar\AtolOnline\SnoSystem::USN_INCOME) // или другую налогооблагаемую систему
->setPaymentAddress('https://budupozdno.com');
$receipt->setCompany($company);
// Товар
$item = new \ItQuasar\AtolOnline\Item($productName);
$item->setPrice($amount);
$item->setQuantity(1);
$item->setSum($amount);
$item->setVat((new \ItQuasar\AtolOnline\Vat())->setType(\ItQuasar\AtolOnline\VatType::WITHOUT_VAT));
$receipt->addItem($item);
// Оплата
$payment = new \ItQuasar\AtolOnline\Payment();
$payment->setSum($amount);
$payment->setType(\ItQuasar\AtolOnline\Payment::TYPE_ELECTRONIC);
$receipt->addPayment($payment);
$request->setReceipt($receipt);
// Атол Онлайн доступы
$login = '5bf804c2-27ac-4bef-bf79-25a87d2bfe55';
$password = 'EYbFyb5a';
$groupCode = 'groupcode53341';
// Кеш PSR-6 (можно /tmp/)
$filesystemAdapter = new \League\Flysystem\Adapter\Local(__DIR__.'/');
$filesystem = new \League\Flysystem\Filesystem($filesystemAdapter);
$pool = new \Cache\Adapter\Filesystem\FilesystemCachePool($filesystem);
$cache = $pool->getItem('atol');
$atolClient = new \ItQuasar\AtolOnline\AtolClient($login, $password, $groupCode, $cache, null);
// Отправляем чек в Атол Онлайн
$uuid = $atolClient->send($request);
// Логируем результат
file_put_contents(__DIR__ . '/atol_log.txt', date('Y-m-d H:i:s')
. " Чек отправлен: orderId=$orderId, UUID: $uuid\n", FILE_APPEND);
} catch (Exception $e) {
// Логирование ошибок
file_put_contents(__DIR__ . '/atol_error.txt', date('Y-m-d H:i:s')
. " Ошибка: " . $e->getMessage() . "\n", FILE_APPEND);
}
}
http_response_code(200);
echo 'OK';
?>