kasim.yilmaz / pts-api
PTS全球速运API集成包
dev-master
2022-07-09 22:40 UTC
This package is auto-updated.
Last update: 2024-09-10 03:22:45 UTC
README
此项目包含基于SOAP的PTS API的主要方法。创建模型时使用了PTS WSDL模式。
在WSDL模式中应用更改很重要。因为模式上的任何更改都会影响参数排序。
1- 安装
与遵循psr-4标准的任何项目兼容
A-使用composer安装
composer require kasim.yilmaz/pts-api
B-不使用composer安装
将项目下载到您要包含的位置
require vendor/autoload.php
2- 初始化
在初始化PTS API对象之前,我们需要设置凭据
凭据将由PTS提供
use ksmylmz\ptsapi\PtsApi; use ksmylmz\ptsapi\Config; $config = new Config(); $config->setUsername("*******"); $config->setPassword("*******"); $config->setWsdl_url("********"); $ptsApi = new PtsApi($config);
3- 响应处理
PTSApi对象的全部方法都以类型返回
use ksmylmz\ptsapi\model\Response
您可以通过状态参数检查响应是否成功或故障状态。此外,响应对象包含请求和响应XML值。
例如。
$response = $ptsApi->GetConsignment("1234567", "2222222222"); if($response->status) { var_dump($response->body); }else { echo $response->error; } echo $response->lastRequest; echo $response->lastResponse;
4- 创建运输请求
use ksmylmz\ptsapi\enum\PaymentType; use ksmylmz\ptsapi\enum\ServiceTypes; use ksmylmz\ptsapi\model\Dimension; use ksmylmz\ptsapi\model\Shipment; use ksmylmz\ptsapi\model\ShipmentItem; use ksmylmz\ptsapi\model\UpdateInvoice; $shipment = new Shipment(); /** * ptsno = 0 means creating new shipment * setting ptsno with existing any ptsno, it means * update shipment */ $shipment->ptsno = 0; $shipment->servis = ServiceTypes::Eco; $shipment->yetkili = "receiver name"; $shipment->sirketadi = "receiver company A.Ş."; $shipment->adres = "test test adres test street no.1"; $shipment->sehir = "AMSTERDAM"; /* state code if exist $shipment->eyalet = "LA"; */ $shipment->postakodu = "11111"; $shipment->ulkekodu = "NL"; $shipment->toplamkg = 1; /** * Customer refferance or E-commerce * order no */ $shipment->siparisno = "abc124"; $shipment->malcinsi = "Dress"; $shipment->toplamadet = 10; $shipment->toplamdeger = 100; $shipment->parabirimi = "EUR"; $item = new ShipmentItem(); $item->aciklama = "Dress"; $item->birim = "PCS"; $item->birimfiyat = 10; $item->miktar = 10; /** * 12 digit HS code for conforming to Turkish norms */ $item->gtip = "621143000000"; $shipment->fatura = [ $item ]; $shipment->faturano = "abc20220202"; /** yyyy-mm-dd */ $shipment->faturatarihi = "2022-01-01"; $shipment->earsivpdf = "http://invoice-pdf-url/invoice.pdf"; /**getting label with creating shipment request */ $shipment->etiket = 1; $box1 = new Dimension(); $box1->en = 10; $box1->boy = 10; $box1->yukseklik = 10; $box1->kg = 1; $box2 = new Dimension(); $box2->en = 10; $box2->boy = 10; $box2->yukseklik = 10; $box2->kg = 3; $shipment->ebat = [ $box1, $box2 ]; $shipment->payType = PaymentType::PREPAID; $shipment->gumruktipi = CustomsType::DDP; $ptsApi->addShipment($shipment);
5- 使用提货请求创建运输
此方法需要特殊权限
所有参数与运输模型中的参数相同,除了以下标记的参数
use ksmylmz\ptsapi\model\ShipmentWithPickup; $shipment = new ShipmentWithPickup(); /***difference parameters from shipment **/ $shipment->gonderici_unvan ="sender compnay a.ş"; $shipment->gonderici_adres = "test sender adres test street no 1"; $shipment->gonderici_sehir = "ISTANBUL"; $shipment->gonderici_email = "sender@sender.com"; $shipment->gonderici_postakodu="341111"; $shipment->gonderici_telefon ="+905500000000"; $shipment->gonderici_ulkekodu ="TR"; $ptsApi->addShipmentWithPickup($shipment);
6- 跟踪请求
您可以通过传递客户参考或PTS参考来进行
use ksmylmz\ptsapi\enum\Language; $ptsApi->Tracking("customerRef", "PTSRef", Language::ENGLISH);
7- 获取标签请求
您可以通过传递客户参考或PTS参考来进行
标签代码参数值为1时返回PTS标签。对于最后一英里标签代码,您需要为每个标签代码获得PTS权限。
标签大小为4X6英寸热敏标签;通常为PDF格式。
$ptsApi->GetLabel("1234567", "222222222", 1);
8- 获取托运请求
您可以通过传递客户参考或PTS参考来进行
它以A4大小和PDF格式返回
$ptsApi->GetConsignment("1234567", "222222222");
9- 更新发票信息请求
有时,在创建运输时,您的发票可能尚未准备好。在这种情况下,您可以更新运输发票信息。
要使用此方法,运输必须作为未处理的物理状态
$updateInvoice = new UpdateInvoice(); $updateInvoice->ptsno = "22222222222"; $updateInvoice->siparisno = "abc123456"; $updateInvoice->faturano = "abc20220202"; /** yyyy-mm-dd */ $updateInvoice->faturatarihi = "2022-01-01"; $updateInvoice->arsivpdf = "http://invoice-pdf-url/invoice.pdf"; $ptsApi->updateInvoice($updateInvoice);