PHP code example of ecommerce-utilities / dhl-api
1. Go to this page and download the library: Download ecommerce-utilities/dhl-api library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
ecommerce-utilities / dhl-api example snippets
use EcommerceUtilities\DHL\Services\DHLPushSubscriptionService;
use GuzzleHttp\Client;
use Http\Factory\Guzzle\RequestFactory;
$pushService = new DHLPushSubscriptionService(
'<api key from developer.dhl.com>',
new RequestFactory(),
new Client(),
);
$pushService->createShipmentSubscription(
'https://shop.example/dhl-tracking-push/<webhook secret>',
'post-de',
['<tracking number>'],
);
$pushService->activateSubscription('<subscription id>', '<DHL hook secret>');
use EcommerceUtilities\DHL\Common\DHLOAuthCredentials;
use EcommerceUtilities\DHL\Common\DHLOAuthTokenProvider;
use EcommerceUtilities\DHL\Http\DHLHttpClient;
use EcommerceUtilities\DHL\Services\DHLRetoureService;
use GuzzleHttp\Client;
use Http\Factory\Guzzle\RequestFactory;
r.dhl.com>',
secret: '<api secret from developer.dhl.com>',
isProductionEnv: $isProductionEnv,
receiverId: $isProductionEnv ? '<production receiver-id>' : 'deu'
);
$httpClient = new DHLHttpClient(new RequestFactory(), new Client(), $isProductionEnv);
$tokenProvider = new DHLOAuthTokenProvider($credentials, $httpClient);
$retoureService = new DHLRetoureService($tokenProvider, $credentials, $httpClient);
$response = $retoureService->getRetourePdf(
'Max', // $name1
'Mustermann', // $name2
null, // $name3
'Musterstr.', // $street
123, // $streetNumber
72770, // $zip
'Reutlingen', // $city
'DE', // $countryId
'123446-B', // $voucherNr
null // $shipmentReference
);
printf("%s\n", $response->getTrackingNumber());
file_put_contents('label.pdf', $response->getLabelData());
use EcommerceUtilities\DHL\Common\DHLOAuthCredentials;
use EcommerceUtilities\DHL\Common\DHLOAuthTokenProvider;
use EcommerceUtilities\DHL\Http\DHLHttpClient;
use EcommerceUtilities\DHL\Services\DHLShipmentService;
use EcommerceUtilities\DHL\Services\DHLShipmentService\DHLNamedPersonOnly;
use EcommerceUtilities\DHL\Services\DHLShipmentService\DHLShipmentRecipientAddressPostal;
use EcommerceUtilities\DHL\Services\DHLShipmentService\DHLShipmentRequest;
use EcommerceUtilities\DHL\Services\DHLShipmentService\DHLShipmentSenderAddress;
use EcommerceUtilities\DHL\Services\DHLShipmentService\DHLShippingServiceConfiguration;
use GuzzleHttp\Client;
use Http\Factory\Guzzle\RequestFactory;
ductKeyNational: 'V01PAK',
productKeyInternational: 'V53WPAK',
billingNumberNational: '<billing number for V01PAK>',
billingNumberInternational: '<billing number for V53WPAK>',
);
$request = new DHLShipmentRequest(
reference: 'ABC12345',
senderAddress: new DHLShipmentSenderAddress(
company: 'Meine Firma',
street: 'Musterstr.',
houseNumber: '123',
zip: '12345',
city: 'Berlin',
countryCode: 'DE',
mail: '[email protected] ',
),
recipientAddress: new DHLShipmentRecipientAddressPostal(
company: 'Musterfirma',
firstname: 'Max',
lastname: 'Mustermann',
street: 'Musterstraße',
houseNumber: '1',
addressAddition: null,
zip: '10115',
city: 'Berlin',
state: null,
countryCode: 'DE',
),
email: '[email protected] ',
phone: null,
weight: 1.0,
services: [
new DHLNamedPersonOnly(),
],
);
$response = $shipmentService->createLabel($shippingService, $request);
file_put_contents('label.pdf', $response->getLabelData());