alhoqbani / smsa-webservice
smsaexpress.com 跟踪 Web 服务(SOAP API)
0.0.3
2022-12-04 13:22 UTC
Requires
- php: ^7.1.3|^8.0|^8.1
- wsdltophp/packagebase: ^1.0
Requires (Dev)
- phpunit/phpunit: ^9.0
- squizlabs/php_codesniffer: ^2.3
- wsdltophp/packagegenerator: ^2.9
This package is auto-updated.
Last update: 2024-09-04 17:11:48 UTC
README
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 以获取有关最近更改的更多信息。
测试
尚未进行测试 :(:
待办事项
- 测试 !!
- 完成剩余操作。
贡献
请参阅 CONTRIBUTING 和 CODE_OF_CONDUCT 以获取详细信息。
致谢
许可
MIT 许可证 (MIT)。请参阅 许可文件 以获取更多信息。