gbro115 / twinjet-directconnect-php
TwinJet DirectConnect API 的 PHP 客户端
1.2.1
2020-10-03 23:16 UTC
Requires
- php: ^7.3
- ext-json: *
- guzzlehttp/guzzle: ^6.5|^7.0
- psr/log: ^1.0.1
Requires (Dev)
- ext-json: *
- phpunit/phpunit: >=8.5
This package is auto-updated.
Last update: 2024-09-25 08:13:37 UTC
README
为TwinJet DirectConnect提供的Composer-ready PHP包装器。
实现的方法
- 创建工作
- 工作状态
尚未实现
- 更新工作
- 取消工作
安装
推荐使用Composer安装库。
- 将此json添加到您的composer.json文件中
{
"require": {
"gbro115/twinjet-directconnect-php": "^1.1"
}
}
- 然后,从命令行运行此命令
composer install
- 最后,将此行添加到将使用SDK的php文件中
require 'vendor/autoload.php';
限制
并非所有操作都已实现。
异常处理
如果API返回错误或意外的响应,PHP API将抛出 \TwinJet\Exception。
示例用法
<?php
$apiToken = "YOUR_API_TOKEN";
$apiVersion = 1;
$dateFormat = 'Y-m-d H:i:s';
$job = new Job();
$job->setIsLive(true);
$job->setApiToken($apiToken);
$job->setOrderContactName("Contact name");
$job->setOrderContactPhone("5141234567");
$readyTime = date_create_from_format($dateFormat, '2020-01-25 15:16:17', new DateTimeZone('America/Toronto'));
$job->setReadyTime($readyTime);
$deliverFromTime = date_create_from_format($dateFormat, '2020-01-25 18:16:17', new DateTimeZone('America/Toronto'));
$job->setDeliverFromDateTime($deliverFromTime);
$deliverToTime = date_create_from_format($dateFormat, '2019-02-25 18:36:17', new DateTimeZone('America/Toronto'));
$job->setDeliverToDateTime($deliverToTime);
$job->setWebhookUrl("http://foo.com/callback");
$job->setReference("ReferenceCode");
//$job->setServiceId(2);
$job->setPaymentMethod(PaymentMethod::CUSTOMER_CASH);
$job->setOrderTotal(100);
$job->setDeliveryFee(10);
$job->setTip(1.5);
$item1 = new JobItem();
$item1->setSku("SKU1");
$item1->setDescription("SKU one");
$item1->setQuantity(1);
$job->addJobItem($item1);
$item2 = new JobItem();
$item2->setSku("SKU2");
$item2->setDescription("SKU two");
$item2->setQuantity(2);
$job->addJobItem($item2);
$job->setSpecialInstructions("Special instructions");
$job->setRequirePhotoOnDelivery(true);
$job->setExternalId("External ID");
$pickAddress = new Address();
$pickAddress->setAddressName("P. Sherman");
$pickAddress->setStreetAddress("32 Wallaby Way");
$pickAddress->setFloor("1");
$pickAddress->setCity("Sydney");
$pickAddress->setState("CA");
$pickAddress->setZipCode("123456");
$pickAddress->setContact("P. Sherman");
$pickAddress->setPhoneNumber("5141234567");
$pickAddress->setSpecialInstructions("Large delivery");
$deliveryAddress = new Address();
$deliveryAddress->setAddressName("Mr J. Recipient");
$deliveryAddress->setStreetAddress("101 Foo Street");
$deliveryAddress->setFloor("1");
$deliveryAddress->setCity("Melbourne");
$deliveryAddress->setState("CA");
$deliveryAddress->setZipCode("876543");
$deliveryAddress->setContact("Mr Recipient");
$deliveryAddress->setPhoneNumber("4381234567");
$deliveryAddress->setSpecialInstructions("Ring doorbell");
$job->setPickupAddress($pickAddress);
$job->setDeliveryAddress($deliveryAddress);
$job->setSpecialInstructions("Job-level special instructions");
$directConnect = new \TwinJet\DirectConnect($apiToken, $apiVersion);
$response = $directConnect->jobs()->newJob($job);
echo "Response was: " . json_encode($response);
<?php namespace TwinJet; $apiToken = "YOUR_API_TOKEN"; $apiVersion = 'v1'; $directConnect = new \TwinJet\DirectConnect($apiToken, $apiVersion); $jobStatusPayload = array( 'api_token'=>$apiToken, 'request_id'=>'1234' ); $newJobPayload = array( 'live'=>true, 'api_token'=>$apiToken, 'order_contact_name'=>'Joe Bloggs', 'order_contact_phone'=>'+13333333333', 'pick_address' => array( 'address_name'=>'Address line 1', 'street_address'=>'13 Wallaby Way', 'city'=>'Montreal', 'state'=>'QC', 'zip_code'=>'XXXXXX', 'contact'=>'Contact Name', 'floor'=>'Ground floor', 'phone_number'=>'+13333333333', ), 'deliver_address' => array( 'address_name'=>'Sherlock Holmes', 'street_address'=>'8 Baker Street', 'floor'=>'First floor', 'city'=>'Montreal', 'state'=>'QC', 'zip_code'=>'XXXXXX', 'contact'=>'Sherlock Holmes', 'phone_number'=>'+13333333333', ), 'ready_time' => '2020-01-17T20:33:39-05:00', 'deliver_from_time' => '2020-01-17T20:33:39-05:00', 'deliver_to_time' => '2020-01-17T21:03:39-05:00', 'order_total' => 62.29, 'payment_method' => '2', 'special_instructions' => "Special instructions", 'webhook_url' => 'https://callback.url', 'external_id' => 123456 ); //$result = $directConnect->jobs()->newJob($newJobPayload); //print_r($result); //$result = $directConnect->jobs()->getJobStatus($jobStatusPayload); //print_r($result);
查看examples.php以获取更多示例。