alhoqbani/smsa-webservice

smsaexpress.com 跟踪 Web 服务(SOAP API)

0.0.3 2022-12-04 13:22 UTC

This package is auto-updated.

Last update: 2024-09-04 17:11:48 UTC


README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

SMSAExpress 跟踪 Web 服务。

开发中。请不要在生产环境中使用。

此库提供了一种流畅且直观的机制,用于与 SMSAExpress 电子商务 Web API: SMSAwebService 进行交互。

通过此 API,您可以程序化地创建新的运单、跟踪运单和取消运单。

API 遵循 SOAP 协议规范,并且使用 PHP 难以直接遵循或使用。

这是一个非官方库,并且与 SMSAExpress 无关联。使用 SMSAwebService 需遵守其条款和条件。

凭证

在使用 API 之前,您需要从 SMSAExpress 获取一个 passKey

安装

通过 Composer

$ composer require alhoqbani/smsa-webservice

使用方法

<?php

use \Alhoqbani\SmsaWebService\Smsa;

$smsa = new Smsa($passKey);

获取状态

通过空运单号获取运单当前状态

$result = $smsa->status('290019315792');
var_dump($smsa->data);

获取跟踪信息

通过空运单号获取运单跟踪信息

$track = $smsa->track('290019315792');

if (track->success) {
    var_dump($track->data);
} else {
    var_dump($track->error);
}

获取 PDF 打印的 AWB

获取 PDF 打印的 AWB

try {
    $pdf = $smsa->awbPDF('290019315810');
    header('Content-type: application/octet-stream');
    header('Content-disposition: attachment;filename=awb.pdf');
    echo $pdf->data; die();

} catch (\Alhoqbani\SmsaWebService\Exceptions\RequestError $e) {
    echo $e->getMessage();
    var_dump($e->smsaResponse)
}

创建新运单

创建运单并获取 SMSA AWB 号码

您创建一个 Shipment 对象,并将其传递给 $smsa->createShipment()。运单需要一个 Customer 实例,并且可选地需要一个 Shipper 对象。

<?php

use \Alhoqbani\SmsaWebService\Smsa;
use \Alhoqbani\SmsaWebService\Models\Shipment;
use \Alhoqbani\SmsaWebService\Models\Customer;
use \Alhoqbani\SmsaWebService\Models\Shipper;

$smsa = new Smsa($passKey);
// Create a customer
$customer = new Customer(
    'Customer Name', //customer name
    '0500000000', // mobile number. must be > 9 digits
    '10 King Fahad Road', // street address
    'Jeddah' // city
);

$shipment = new Shipment(
    time(), // Refrence number
    $customer, // Customer object
    Shipment::TYPE_DLV // Shipment type.
      );

$awb = $smsa->createShipment($shipment);

echo $awb->data; // 290019315792

为了添加更多字段

$customer
    ->setEmail('customer@example.com')
    ->setAddressLine2('Building 10, Apartment 1')
    ->setPOBox('12345')
    ->setZipCode('11411')
    ->setTel1('0110000000')
    ->setTel2('0120000000');

// To add shipper details to the shipment
$shipper = new Shipper(
    'Shipper Name (LLC)', // shipper name
    'Shipper Employee', // contact name
    '1 Main Road', // address line 1
    'Riyadh', // city
    'Saudi Arabia', // country
    '0110000000' // phone
);

$shipment->setShipper($shipper);

取消运单

通过空运单号取消运单

$result = $smsa->cancel('AWB NUMBER')
var_dump($result->jsonSerialize())

获取城市

获取零售列表的城市列表

$smsa->shouldUseExceptions = false; // Disable throwing exceptions by the library

$cities = $smsa->cities();

if( $cities->success) {
    var_dump($cities->data)
} else {
    var_dump($cities->error)
}

获取零售

按每个城市获取零售列表

$retails = $smsa->retails();
var_dump($retails); 
// or by city (route code):
$retails =  $smsa->retailsIn('TUU');

示例应用

您可以通过此 仓库 查看使用 Laravel 构建的应用示例。

变更日志

请参阅 CHANGELOG 以获取有关最近更改的更多信息。

测试

尚未进行测试 :(:

待办事项

  • 测试 !!
  • 完成剩余操作。

贡献

请参阅 CONTRIBUTINGCODE_OF_CONDUCT 以获取详细信息。

致谢

许可

MIT 许可证 (MIT)。请参阅 许可文件 以获取更多信息。