Witam mam pytanie posiadam wygenerowany token a skrypt generuje błąd, czy oprócz tokenu będzie potrzebny login i hasło do komunikacji z api ?
https://biznes.furgonetka.pl/dokumentacja-api#examples-php
try {
// do obsługi Furgonetka WebAPI posłużymy się klasą SoapClient
$client = new \SoapClient('http://biznes-test.furgonetka.pl/api/soap/v2?wsdl', [
'trace' => true,
'cache_wsdl' => false,
]);
// Access token uzyskać możesz pod adresem: https://biznes.furgonetka.pl/dokumentacja-oauth
$auth = [
'access_token' => 'eyJ...v6A',
];
// pobieram listę przewoźników skonfigurowanych na koncie
$services = $client->getServices([
'data' => [
'auth' => $auth,
],
])->getServicesResult;
if (!$services->services) {
if (!empty($services->errors)) {
$errors = $services->errors->item;
}
throw new \Exception('Nie zdołano pobrać listy przewoźników.');
}
$services = $services->services->item;
// przewoźnik, którym chcę nadać paczkę
$service_type = 'dpd';
// ustalam service_id dla wybranego przewoźnika
foreach ($services as $service) {
if ($service->type === $service_type) {
$service_id = $service->id;
break;
}
}
if (!isset($service_id)) {
throw new \Exception('Nie zdołano ustalić service_id dla ' . $service_type);
}
// pobieram listę aktualnych regulaminów
$regulations = $client->getRegulations([
'data' => [
'auth' => $auth,
],
])->getRegulationsResult;
if (!$regulations->services) {
if (!empty($regulations->errors)) {
$errors = $regulations->errors->item;
}
throw new \Exception('Nie zdołano pobrać listy regulaminów.');
}
$regulations = $regulations->services->item;
// ustalam aktualną wersję regulaminu dla wybranego przewoźnika
foreach ($regulations as $service) {
if ($service->service_type === $service_type) {
$regulations_accept = $service->version;
break;
}
}
if (!isset($regulations_accept)) {
throw new \Exception('Nie ustalono regulaminu dla ' . $service_type);
}
// parametry naszej przesyłki
$paramsPackages = [
'data' => [
'auth' => $auth,
'partner_reference_number' => 147861,
'service_id' => $service_id,
'type' => 'package',
'regulations_accept' => $regulations_accept,
'sender' => [
'name' => 'Jan Kowalski',
'email' => 'jan@kowalski.pl',
'street' => 'Polna 1/2',
'postcode' => '82-300',
'city' => 'Elbląg',
'phone' => '+48 500 999 888',
],
'receiver' => [
'name' => 'Adam Mickiewicz',
'email' => 'adam@mickiewicz.pl',
'street' => 'Grunwaldzka 22/33',
'postcode' => '80-300',
'city' => 'Gdańsk',
'phone' => '+48 600 999 888',
],
'label' => [
'file_format' => 'pdf',
'page_format' => 'a6',
],
'parcels' => [
[
'width' => 10,
'height' => 20,
'depth' => 30,
'value' => 555,
'weight' => 11,
'description' => 'Buty dziecięce',
],
],
'services' => [
'cod' => [
'amount' => 555,
'iban' => '47114020040000350275770660',
'express' => true,
'name' => 'Jan Kowalski'
],
'guarantee_0930' => false,
'guarantee_1200' => false,
'saturday_delivery' => false,
'sms_predelivery_information' => false,
'insurance' => false,
'fragile' => false,
'self_pickup' => true,
],
],
];
// wykonuje metodę "validatePackage", która sprawdzi poprawność parametrów przesyłki
$validate = $client->validatePackage($paramsPackages)->validatePackageResult;
if (!empty($validate->errors)) {
$errors = $validate->errors->item;
throw new \Exception('Popraw parametry przesyłki.');
}
// parametry poprawne, wykonuje metodę "createPackage" aby utworzyć przesyłkę
$package = $client->createPackage($paramsPackages)->createPackageResult;
if (!empty($package->errors)) {
$errors = $package->errors->item;
throw new \Exception('Nie udało się dodać przesyłki.');
}
// wyświetlam etykietę
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename='
. 'etykieta_dla_zamowienia_' . ($package->partner_reference_number).'.pdf');
echo \base64_decode($package->documents->label->content);
} catch (\Exception $e) {
echo 'Błąd: ', $e->getMessage();
// lista błędów zwrócona przez metodę z WebAPI Furgonetka Biznes
if (isset($errors)) {
\var_dump($errors);
}
}