thirtybees/postnl-api-php

此包已被废弃,不再维护。作者建议使用firstred/postnl-api-php包。

PostNL REST API PHP 绑定

v1.3.11 2022-01-21 13:53 UTC

README

Build Status Documentation Status codecov latest stable version license mit

关于

这个PHP库旨在提供PostNL的REST和SOAP API的简单连接方式。通过在处理运单信息时抽象掉不必要的复杂性并提高容错性,您可以在几分钟内快速使用PostNL。
在底层,这个库使用异步通信和负载分割来提高性能。

重要通知

PHP绑定可以连接到PostNL的SOAP和REST API。

状态

服务 REST状态 SOAP状态 版本
地址
Adrescheck Nationaal N/A N/A N/A
Adrescheck Basis Nationaal N/A N/A N/A
Adrescheck Internationaal N/A N/A N/A
Geo Adrescheck Nationaal N/A N/A N/A
信用与商业信息
Bedrijfscheck Nationaal N/A N/A N/A
Kredietcheck Zakelijk N/A N/A N/A
发送与跟踪
条形码web服务 1.1
标签web服务 2.2
确认web服务 2.0
运单状态web服务 2.0
运单web服务 ✓* 2.0
配送选项
配送日期web服务 2.2
位置web服务 2.1
时间段web服务 2.1
结账web服务 计划中 计划中* 1.0
邮件
批量邮件web服务 N/A N/A N/A

* SOAP版本不可用。将回退到REST API。

说明

  • 克隆此仓库
  • 运行composer install(没有composer?访问https://getcomposer.org.cn/
  • 可选地运行composer require guzzlehttp/guzzle以使用Guzzle而不是直接使用cURL
  • 您已经准备就绪!本README中有一个小型示例。查看完整文档以获取快速入门指南

文档

示例

允许用户使用默认REST API下载标签

<?php

use Firstred\PostNL\PostNL;
use Firstred\PostNL\Entity\Customer;
use Firstred\PostNL\Entity\Address;
use Firstred\PostNL\Entity\Shipment;
use Firstred\PostNL\Entity\Dimension;

require_once __DIR__.'/vendor/autoload.php';

$customer = Customer::create([
    'CollectionLocation' => '123456',
    'CustomerCode'       => 'DEVC',
    'CustomerNumber'     => '11223344',
    'ContactPerson'      => 'Peter',
    'Address'            => Address::create([
        'AddressType' => '02',
        'City'        => 'Hoofddorp',
        'CompanyName' => 'PostNL',
        'Countrycode' => 'NL',
        'HouseNr'     => '42',
        'Street'      => 'Siriusdreef',
        'Zipcode'     => '2132WT',
    ]),
    'Email'              => 'info@voorbeeld.nl',
    'Name'               => 'Michael',
]);

$apikey = 'YOUR_API_KEY_HERE';
$sandbox = false;

$postnl = new PostNL($customer, $apikey, $sandbox);

$barcode = $postnl->generateBarcodeByCountryCode('NL');

$shipment = Shipment::create([
    'Addresses'           => [
        Address::create([
            'AddressType' => '01',
            'City'        => 'Utrecht',
            'Countrycode' => 'NL',
            'FirstName'   => 'Peter',
            'HouseNr'     => '9',
            'HouseNrExt'  => 'a bis',
            'Name'        => 'de Ruijter',
            'Street'      => 'Bilderdijkstraat',
            'Zipcode'     => '3521VA',
        ]),
    ],
    'Barcode'             => $barcode,
    'Dimension'           => new Dimension(/* weight */ '2000'),
    'ProductCodeDelivery' => '3085',
]);

header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="label.pdf"');
echo base64_decode($postnl->generateLabel(
    /* The actual shipment */ $shipment, 
    /* The output format */ 'GraphicFile|PDF',
    /* Immediately confirm the shipment */ true
)
    ->getResponseShipments()[0]
    ->getLabels()[0]
    ->getContent()
);
exit;

完整文档

完整文档可在此页面上找到: https://postnl-php.readthedocs.io/

构建文档

文档会自动构建并在readthedocs.io上托管。您可以通过安装Sphinx并运行以下命令来构建本地的HTML副本:

pip install -r docs/requirements.txt

安装需求,然后

sphinx-build -b html docs builddir

builddir目录中构建HTML输出。

许可协议

本库使用MIT许可协议进行许可。

完整许可协议文本

MIT许可协议(MIT)。版权所有 (c) 2017-2022 Michael Dekker (https://github.com/firstred)

特此免费许可,任何人获得本软件及其相关文档文件(以下简称“软件”)的副本,均可自由处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向软件提供方授予上述权限,前提是遵守以下条件:

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何形式的保证,无论是明示的、暗示的,包括但不限于适销性、适用于特定目的和不侵犯他人权利的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他法律行为,由此软件或软件的使用或其它方式引起的,无论是在软件中还是在软件的使用过程中。