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