xewl / postnl
连接到PostNL的SOAP服务CIF(旧版 'DivideBV/Postnl' v1.2.1 - 更新为2018年的1.2.1.1)的库
dev-master
2018-11-01 20:21 UTC
Requires
- php: 5.4 - 7
- ext-dom: *
- ext-soap: *
Requires (Dev)
- apigen/apigen: ^4.1
- squizlabs/php_codesniffer: 2.*
This package is auto-updated.
Last update: 2024-09-29 05:28:03 UTC
README
PostNL CIF
这是一个用于与PostNL提供的称为CIF的SOAP服务接口的库。
安装
使用以下命令安装最新版本
composer require xewl/postnl
实现状态
此库尚不完整。下表列出了哪些服务已实现,哪些未实现。现有服务的列表来自PostNL开发者中心。
服务 | 已实现 | 版本 |
---|---|---|
地址 € | ||
Adrescheck Nationaal | ✗ | N/A |
Adrescheck Basis Nationaal | ✗ | N/A |
Adrescheck Internationaal | ✗ | N/A |
Persoon op Adrescheck Basis | ✗ | N/A |
Geo Adrescheck Nationaal | ✗ | N/A |
信用度及商业信息 € | ||
Bedrijfscheck Nationaal | ✗ | N/A |
Fraudepreventie Check Basis | ✗ | N/A |
IBANcheck Nationaal | ✗ | N/A |
Kredietcheck Consument Basis | ✗ | N/A |
Kredietcheck Consument Premium | ✗ | N/A |
Kredietcheck Zakelijk | ✗ | N/A |
Send & Track | ||
Barcode webservice | ✓ | 1_1 |
Confirming webservice | ✓ | 1_9 |
Labelling webservice | ✓ | 2_0 |
Shippingstatus webservice | ✓ | 1_6 |
Delivery options | ||
Deliverydate webservice | ✓ | 2_1 |
Location webservice | ✓ | 2_1 |
Timeframe webservice | ✓ | 2_0 |
Bulkmail webservice | ✗ | N/A |
示例
use Xewl\Postnl\Postnl;
use Xewl\Postnl\ComplexTypes;
// Create client class using credentials received from PostNL.
$client = new Postnl(
12345678, // Customer number
'ABCD', // Customer code
'Acme BV', // Customer name
'Acme', // Username
'Password', // Password
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());