dividebv / postnl
连接到PostNL CIF SOAP服务的库
v2.0.2
2021-10-15 07:45 UTC
Requires
- php: >=7.0
- ext-dom: *
- ext-soap: *
Requires (Dev)
- apigen/apigen: ^4.1
- squizlabs/php_codesniffer: 2.*
This package is auto-updated.
Last update: 2024-09-17 15:38:58 UTC
README
这是一个与PostNL提供的称为CIF的SOAP服务交互的库。
新的授权
从本库的2.0版本开始,使用令牌(而不是用户名/密码)的新授权方法被采用。
安装
使用以下命令安装最新版本
composer require dividebv/postnl
实现状态
此库尚未完成。此表列出了已实现和未实现的服务。现有服务列表取自PostNL开发者中心。
示例
use DivideBV\Postnl\Postnl; use DivideBV\Postnl\ComplexTypes; // Create client class using credentials received from PostNL. $client = new Postnl( 12345678, // Customer number 'ABCD', // Customer code 'Acme BV', // Customer name 'xxxxxxxx', // API key 123456, // Collection location 'CD1234', // Globalpack true // Whether to use PostNL's sandbox environment. ); /** * Jan Smit * Smit & Zonen * Hoofdstraat 1A * 1234 AB Heikant * The Netherlands */ $receiverAddress = ComplexTypes\Address::create() ->setAddressType('01') ->setFirstName('Jan') ->setName('Smit') ->setCompanyName('Smit & Zonen') ->setStreet('Hoofdstraat') ->setHouseNr('1') ->setHouseNrExt('A') ->setZipcode('1234AB') ->setCity('Heikant') ->setCountrycode('NL'); $senderAddress = ComplexTypes\Address::create() ->setAddressType('02') ->setFirstName('Robert') ->setName('Jansen') ->setCompanyName('Jansen & Janssen') ->setStreet('Hoofdstraat') ->setHouseNr('999') ->setHouseNrExt('B') ->setZipcode('1234AB') ->setCity('Heikant') ->setCountrycode('NL'); // Request a barcode from PostNL. $barcode = $client->generateBarcodeByDestination($receiverAddress->getCountryCode()); // Create a shipment. $shipment = ComplexTypes\Shipment::create() ->setAddresses(new ComplexTypes\ArrayOfAddress([ $receiverAddress, $senderAddress, ])) ->setBarcode($barcode) ->setDimension(ComplexTypes\Dimension::create() ->setWeight(5000) // Weight in g ->setWidth(215) // Width in mm ->setLength(305) // Length in mm ->setHeight(280) // Height in mm ) ->setProductCodeDelivery('3085'); // Generate label and confirm shipment. $result = $client->generateLabel($shipment); // Save the label PDF locally. $label = $result->getLabels()[0]; $file = new \SplFileObject("label.pdf", 'w'); $file->fwrite($label->getContent());