PHP code example of deutschepost / sdk-api-oneclickforapp
1. Go to this page and download the library: Download deutschepost/sdk-api-oneclickforapp 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/ */
deutschepost / sdk-api-oneclickforapp example snippets
$logger = new \Psr\Log\Test\TestLogger();
$tokenStorage = new \DeutschePost\Sdk\OneClickForApp\Auth\TokenStorage();
$credentials = new \DeutschePost\Sdk\OneClickForApp\Auth\Credentials(
$username = '', // page formats are public, no user auth needed
$password = '',
$partnerId = 'PARTNER_ID',
$partnerKey = 'SCHLUESSEL_DPWN_MEINMARKTPLATZ',
$keyPhase = 1,
$tokenStorage
);
$serviceFactory = new \DeutschePost\Sdk\OneClickForApp\Service\ServiceFactory();
$service = $serviceFactory->createAccountInformationService($credentials, $logger);
$pageFormats = $service->getPageFormats();
// work with the web service response, e.g. drop page formats that cannot print addresses
$pageFormatsWithAddress = array_filter(
$pageFormats,
static function (\DeutschePost\Sdk\OneClickForApp\Api\Data\PageFormatInterface $pageFormat) {
return $pageFormat->isAddressPossible();
}
);
$logger = new \Psr\Log\Test\TestLogger();
$tokenStorage = new \DeutschePost\Sdk\OneClickForApp\Auth\TokenStorage();
$credentials = new \DeutschePost\Sdk\OneClickForApp\Auth\Credentials(
$username = '[email protected]',
$password = 'portokasse321',
$partnerId = 'PARTNER_ID',
$partnerKey = 'SCHLUESSEL_DPWN_MEINMARKTPLATZ',
$keyPhase = 1,
$tokenStorage
);
$serviceFactory = new \DeutschePost\Sdk\OneClickForApp\Service\ServiceFactory();
$service = $serviceFactory->createAccountInformationService($credentials, $logger);
// work with the web service response, e.g. replace PPL prices
foreach ($service->getContractProducts() as $contractProduct) {
$prodWsProduct = $this->productRepository->get($pplId = $contractProduct->getId());
$prodWsProduct->setPrice($contractProduct->getPrice());
$this->productRepository->save($prodWsProduct);
}
$logger = new \Psr\Log\Test\TestLogger();
$tokenStorage = new \DeutschePost\Sdk\OneClickForApp\Auth\TokenStorage();
$credentials = new \DeutschePost\Sdk\OneClickForApp\Auth\Credentials(
$username = '[email protected]',
$password = 'portokasse321',
$partnerId = 'PARTNER_ID',
$partnerKey = 'SCHLUESSEL_DPWN_MEINMARKTPLATZ',
$keyPhase = 1,
$tokenStorage
);
// init a new builder for every order
$orderItemBuilder = \DeutschePost\Sdk\OneClickForApp\Model\ShoppingCartPositionBuilder::forPageFormat($pageFormatsWithAddress[0]);
// create as many items as needed per order
$orderItemBuilder->setItemDetails($prodWsProduct->getPPLId(), $prodWsProduct->getPrice());
$orderItemBuilder->setShipperAddress(
$shipperCompany = 'DHL',
$shipperCountry = 'DEU',
$shipperPostalCode = '53113',
$shipperCity = 'Bonn',
$shipperStreetName = 'Charles-de-Gaulle-Straße',
$shipperStreetNumber = '20',
$shipperLastName = 'Doe',
$shipperFirstName = 'John'
);
$orderItemBuilder->setRecipientAddress(
$recipientLastName = 'Doe',
$recipientFirstName = 'Jane',
$recipientCountry = 'DEU',
$recipientPostalCode = '53113',
$recipientCity = 'Bonn',
$recipientStreet = 'Sträßchensweg',
$recipientStreetNumber = '2',
null,
null,
$recipientCompany = 'DP'
);
$serviceFactory = new \DeutschePost\Sdk\OneClickForApp\Service\ServiceFactory();
$orderService = $serviceFactory->createOrderService($credentials, $logger);
$order = $orderService->createOrder(
[$orderItemBuilder->create()],
$orderItemBuilder->getTotalAmount(),
$orderItemBuilder->getPageFormatId()
);
// work with the web service response, e.g. persist label
file_put_contents("/tmp/{$order->getId()}.pdf", $order->getLabel());
foreach ($order->getVouchers() as $voucher) {
if ($voucher->getLabel()) {
file_put_contents("/tmp/{$voucher->getVoucherId()}.pdf", $voucher->getLabel());
}
}