SkillAgentSearch skills...

Postnl

Library to connect to PostNL's SOAP service called CIF

Install / Use

/learn @DivideBV/Postnl
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

PostNL CIF

Latest Stable Version Total Downloads Latest Unstable Version License

This is a library to interface with the SOAP services offered by PostNL, called CIF.

New authorization

Since version 2.0 of this library, the new authorization method (using tokens instead of username/password) is used.

Installation

Install the latest version with

composer require dividebv/postnl

Implementation Status

This library is not complete. This table lists which services are implemented and which aren't. The list of existing services is taken from PostNL's developer center.

| Service | Implemented | Version | |-----------------------------------------------|:-----------:|:-------:| | Addresses € ||| | Adrescheck Nationaal | ✗ | N/A | | Adrescheck Basis Nationaal | ✗ | N/A | | Adrescheck Internationaal | ✗ | N/A | | Persoon op Adrescheck Basis | ✗ | N/A | | Geo Adrescheck Nationaal | ✗ | N/A | | Creditworthiness & Business information € ||| | 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 | | Mail ||| | Bulkmail webservice | ✗ | N/A |

Example

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());

View on GitHub
GitHub Stars31
CategoryDevelopment
Updated1y ago
Forks38

Languages

PHP

Security Score

80/100

Audited on Jun 17, 2024

No findings