Как получить pdf-файл счета-фактуры (уже созданный) из Exactonline

У меня 2 проблемы. PDF-файл счета-фактуры уже создан в точном онлайн-режиме, но когда я извлекаю данные счета-фактуры, он возвращает пустое / пустое поле «Документ» (где-то я читал, что его нужно вручную связать со счетом-фактурой)

Итак, как вручную связать уже созданный PDF-файл счета-фактуры со счетом-фактурой в точном онлайн-режиме (я не хочу воссоздавать счет-фактуру), во-вторых, если вручную связать успешно, правильный ли мой код для их получения?

      $ESalesInvoiceObj = new \Picqer\Financials\Exact\SalesInvoice($connection);
$ESalesInvoiceRes=$ESalesInvoiceObj->filter("OrderNumber eq ".$MyOrderNumber, '', '', ['$top'=> 1]);
foreach($ESalesInvoiceRes as $ESalesInvoice)
{
    // I got invoice data with null/blank document till now
    $documents = new \Picqer\Financials\Exact\Document($connection);
    $res = $documents->filter("ID eq guid'".$ESalesInvoice->Document."'");
    foreach ($res as $doc)
    {  echo $doc->getDownloadUrl(); }
    // OR
    $DocumentAttachment = new \Picqer\Financials\Exact\DocumentAttachment($connection);
    $DocumentAttachments = $DocumentAttachment->filter("Document eq guid'".$ESalesInvoice->Document."'");
    foreach( $DocumentAttachments as $invoice_attachment )
    { echo $invoice_attachment->getDownloadUrl(); }
}

А что, если мы не свяжем их вручную, есть ли способ получить счет-фактуру в формате pdf?

И самая важная проблема, с которой я сталкиваюсь, заключается в том, что когда я вхожу в точную онлайн-панель в моем браузере на другой вкладке, я могу извлекать данные, которые я хочу, но не могу получить, когда не вошел в систему - нет ошибки, он просто показывает пустой / белый экран (даже без ошибки php - тот же код возвращает вывод при входе в точную онлайн-версию на другой вкладке)

Весь мой код

      <?php error_reporting(E_ALL);
ini_set('display_errors', 'On');
require_once(__DIR__.'/Picqer/Financials/Exact/Connection.php');
require_once(__DIR__.'/Picqer/Financials/Exact/ApiException.php');
require_once(__DIR__.'/Picqer/Financials/Exact/Model.php');
require_once(__DIR__.'/Picqer/Financials/Exact/Query/Findable.php');
require_once(__DIR__.'/Picqer/Financials/Exact/Query/Resultset.php');
require_once(__DIR__.'/Picqer/Financials/Exact/Persistance/Storable.php');
require_once(__DIR__.'/Picqer/Financials/Exact/Persistance/Downloadable.php');
require_once(__DIR__.'/Picqer/Financials/Exact/Me.php');
require_once(__DIR__.'/Picqer/Financials/Exact/Journal.php');
require_once(__DIR__.'/Picqer/Financials/Exact/SalesOrder.php');
require_once(__DIR__.'/Picqer/Financials/Exact/SalesOrderID.php');
require_once(__DIR__.'/Picqer/Financials/Exact/SalesOrderLine.php');
require_once(__DIR__.'/Picqer/Financials/Exact/SalesInvoice.php');
require_once(__DIR__.'/Picqer/Financials/Exact/SalesInvoiceLine.php');
require_once(__DIR__.'/Picqer/Financials/Exact/PrintedSalesInvoice.php');
require_once(__DIR__.'/Picqer/Financials/Exact/Account.php');
require_once(__DIR__.'/Picqer/Financials/Exact/Contact.php');
require_once(__DIR__.'/Picqer/Financials/Exact/Document.php');
require_once(__DIR__.'/Picqer/Financials/Exact/DocumentAttachment.php');

function callAPI($method, $url, $data){
   $curl = curl_init();
   switch ($method){
      case "POST":
         curl_setopt($curl, CURLOPT_POST, 1);
         if ($data)
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
         break;
      case "PUT":
         curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
         if ($data)
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);                              
         break;
      default:
         if ($data)
            $url = sprintf("%s?%s", $url, http_build_query($data));
   }
   curl_setopt($curl, CURLOPT_URL, $url);
   curl_setopt($curl, CURLOPT_HTTPHEADER, array(
      'APIKEY: 111111111111111111111',
      'Content-Type: application/json',
   ));
   curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
   $result = curl_exec($curl);
   if(!$result){die("Connection Failure");}
   curl_close($curl);
   return $result;
}

function getValue($key)
{
    $storage = json_decode(file_get_contents('storage.json'), true);    
    if(array_key_exists($key, $storage)){ return $storage[$key]; }
}

function setValue($key, $value)
{
    $storage = json_decode(file_get_contents('storage.json'), true);
    $storage[$key] = $value;
    file_put_contents('storage.json', json_encode($storage));
}

function authorize()
{
    $connection = new \Picqer\Financials\Exact\Connection();
    $connection->setRedirectUrl('myshopfrontendurl');
$connection->setExactClientId('ExactClientId');
$connection->setExactClientSecret('ExactClientSecret');
    $connection->redirectForAuthorization();
}

function tokenUpdateCallback(\Picqer\Financials\Exact\Connection $connection)
{
    setValue('accesstoken', $connection->getAccessToken());
    setValue('refreshtoken', $connection->getRefreshToken());
    setValue('expires_in', $connection->getTokenExpires());
}

function connect()
{
    $connection = new \Picqer\Financials\Exact\Connection();
    $connection->setRedirectUrl('myshopfrontendurl');
    $connection->setExactClientId('ExactClientId');
    $connection->setExactClientSecret('ExactClientSecret');

    if(getValue('authorizationcode')){ $connection->setAuthorizationCode(getValue('authorizationcode')); }

    if(getValue('accesstoken')){ $connection->setAccessToken(getValue('accesstoken')); }

    if(getValue('refreshtoken')){ $connection->setRefreshToken(getValue('refreshtoken')); }

    if(getValue('expires_in')){ $connection->setTokenExpires(getValue('expires_in')); }

    $connection->setTokenUpdateCallback('tokenUpdateCallback');

    try{ $connection->connect(); }
    catch(\Exception $e){ throw new Exception('Could not connect to Exact: '.$e->getMessage()); }

    return $connection;
}

if(isset($_GET['code']) && is_null(getValue('authorizationcode'))){ setValue('authorizationcode', $_GET['code']); }

if(getValue('authorizationcode') === null){ authorize(); }

$connection = connect();

// then above code to fetch invoice & its downloadable pdf ?>

0 ответов

Другие вопросы по тегам