สำหรับเอกสารที่สมบูรณ์ของจุดสิ้นสุดทั้งหมดที่นำเสนอโดย Stuart API คุณสามารถเยี่ยมชมเอกสาร Stuart API
เยี่ยมชม Changelog
cd demo
docker build -t stuartphpdemo .
export PATH_TO_PROJECT= " /PUT/HERE/YOUR/PATH/TO/PROJECT/stuart-client-php "
docker run -v $PATH_TO_PROJECT /src:/app/vendor/stuartapp/stuart-client-php/src stuartphpdemoผ่านนักแต่งเพลง:
$ composer require stuartapp/stuart-client-phpหากไม่ได้ติดตั้งนักแต่งเพลงให้ติดตั้ง:
$ curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composerเพิ่มไลบรารีลงในโครงการของคุณ:
$ composer require stuartapp/stuart-client-phpในการโหลดคลาสทั้งหมดจากไลบรารีนี้เพียงแค่เรียกใช้ AutoLoad ที่จุดเริ่มต้นของรหัส Stuart
<?php
require __DIR__ . ' /vendor/autoload.php ' ;
$ environment = Stuart Infrastructure Environment:: SANDBOX ;สำหรับ Sandbox (สภาพแวดล้อมการทดสอบผู้ให้บริการจัดส่งเป็นบอท) https://dashboard.sandbox.stuart.com/settings/api
สำหรับการผลิต (โลกแห่งความเป็นจริงผู้ให้บริการจัดส่งจริง) https://dashboard.stuart.com/settings/api
$ environment = Stuart Infrastructure Environment:: SANDBOX ;
$ api_client_id = ' REPLACE_BY_YOU_CLIENT_ID_HERE ' ; // can be found here: https://admin.sandbox.stuart.com/client/api
$ api_client_secret = ' REPLACE_BY_YOUR_CLIENT_SECRET_HERE ' ; // can be found here: https://admin.sandbox.stuart.com/client/api
$ authenticator = new Stuart Infrastructure Authenticator ( $ environment , $ api_client_id , $ api_client_secret );
$ httpClient = new Stuart Infrastructure HttpClient( $ authenticator )
$ client = new Stuart Client ( $ httpClient ); นอกจากนี้คุณยังสามารถส่งอินสแตนซ์ไคลเอ็นต์ Guzzle ของคุณเองไปยังตัวสร้าง StuartHttpClient :
$ guzzleClient = new Guzzle Client ();
$ httpClient = new Stuart Infrastructure HttpClient ( $ authenticator , $ guzzleClient );สิ่งนี้มีประโยชน์หากคุณต้องการแนบมิดเดิ้ลแวร์เข้ากับไคลเอนต์ Guzzle
ขอแนะนำให้เพิ่มกลไกการแคชสำหรับกระบวนการตรวจสอบสิทธิ์ ในการทำเช่นนั้นเพียงแค่ขยายคลาส PsrSimpleCacheCacheInterface และใช้เวอร์ชันของคุณเอง
มีแคชที่ใช้ดิสก์ที่มีอยู่นอกกล่องเพื่อให้คุณใช้ ในการใช้งานเพียงแค่แก้ไขการเริ่มต้นคลาสการรับรองความถูกต้องและผ่านการใช้งานแคชในตัวสร้าง:
$ diskCache = new Stuart Cache DiskCache ( " stuart_cache.txt " );
$ authenticator = new Stuart Infrastructure Authenticator ( $ environment , $ api_client_id , $ api_client_secret , $ diskCache ); คุณสามารถเริ่มต้นคลาส DiskCache, Authenticator และ HttpClient โดยผ่านค่า true ไปยังพารามิเตอร์ตัวสร้างล่าสุดของคลาสเหล่านี้
สำคัญ : แม้ว่าคุณจะสามารถสร้างงานที่มีชุดพารามิเตอร์น้อยที่สุดเรา ขอแนะนำ ให้คุณกรอกข้อมูลให้มากที่สุดเท่าที่จะทำได้เพื่อให้แน่ใจว่ากระบวนการส่งมอบเป็นไปด้วยดี
$ job = new Stuart Job ();
$ job -> addPickup ( ' 46 Boulevard Barbès, 75018 Paris ' );
$ job -> addDropOff ( ' 156 rue de Charonne, 75011 Paris ' )
-> setPackageType ( ' small ' );
$ client -> createJob ( $ job ); $ job = new Stuart Job ();
$ job -> addPickup ( ' 46 Boulevard Barbès, 75018 Paris ' )
-> setComment ( ' Wait outside for an employee to come. ' )
-> setContactCompany ( ' KFC Paris Barbès ' )
-> setContactFirstName ( ' Martin ' )
-> setContactLastName ( ' Pont ' )
-> setContactPhone ( ' +33698348756 ' );
$ job -> addDropOff ( ' 156 rue de Charonne, 75011 Paris ' )
-> setPackageType ( ' small ' )
-> setComment ( ' code: 3492B. 3e étage droite. Sonner à Durand. ' )
-> setContactCompany ( ' Durand associates. ' )
-> setContactFirstName ( ' Alex ' )
-> setContactLastName ( ' Durand ' )
-> setContactPhone ( ' +33634981209 ' )
-> setPackageDescription ( ' Pizza box. ' )
-> setClientReference ( ' 12345678ABCDE ' ); // Must be unique
$ client -> createJob ( $ job );สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการจัดตารางงานคุณควรตรวจสอบเอกสาร API ของเรา
$ job = new Stuart Job ();
$ pickupAt = new DateTime ( ' now ' , new DateTimeZone ( ' Europe/Paris ' ));
$ pickupAt -> add ( new DateInterval ( ' PT2H ' ));
$ job -> addPickup ( ' 46 Boulevard Barbès, 75018 Paris ' )
-> setPickupAt ( $ pickupAt );
$ job -> addDropOff ( ' 156 rue de Charonne, 75011 Paris ' )
-> setPackageType ( ' small ' );
$ client -> createJob ( $ job );สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการจัดตารางงานคุณควรตรวจสอบเอกสาร API ของเรา
โปรดทราบว่าคุณลักษณะนี้สามารถใช้กับดรอปออฟได้เพียงครั้งเดียวเท่านั้น
$ job = new Stuart Job ();
$ dropoffAt = new DateTime ( ' now ' , new DateTimeZone ( ' Europe/Paris ' ));
$ dropoffAt -> add ( new DateInterval ( ' PT2H ' ));
$ job -> addPickup ( ' 46 Boulevard Barbès, 75018 Paris ' );
$ job -> addDropOff ( ' 156 rue de Charonne, 75011 Paris ' )
-> setPackageType ( ' small ' )
-> setDropoffAt ( $ dropoffAt );
$ client -> createJob ( $ job ); $ job = new Stuart Job ();
$ job -> addPickup ( ' 46 Boulevard Barbès, 75018 Paris ' );
$ job -> addDropOff ( ' 156 rue de Charonne, 75011 Paris ' )
-> setPackageType ( ' small ' );
$ job -> setFleets ( array ( 1 ));
$ client -> createJob ( $ job ); $ job = new Stuart Job ();
$ job -> addPickup ( ' 46 Boulevard Barbès, 75018 Paris ' );
$ now = new DateTime ();
$ later = new DateTime ();
$ later = $ later -> modify ( ' +15 minutes ' );
$ job -> addDropOff ( ' 156 rue de Charonne, 75011 Paris ' )
-> setPackageType ( ' small ' )
-> setEndCustomerTimeWindowStart ( new DateTime ())
-> setEndCustomerTimeWindowEnd ( $ later );
$ client -> createJob ( $ job ); $ job = new Stuart Job ();
$ job -> addPickup ( ' 46 Boulevard Barbès, 75018 Paris ' )
-> setComment ( ' Wait outside for an employee to come. ' )
-> setContactCompany ( ' KFC Paris Barbès ' )
-> setContactFirstName ( ' Martin ' )
-> setContactLastName ( ' Pont ' )
-> setContactPhone ( ' +33698348756 ' );
$ job -> addDropOff ( ' 156 rue de Charonne, 75011 Paris ' )
-> setPackageType ( ' small ' )
-> setComment ( ' code: 3492B. 3e étage droite. Sonner à Durand. ' )
-> setContactCompany ( ' Durand associates. ' )
-> setContactFirstName ( ' Alex ' )
-> setContactLastName ( ' Durand ' )
-> setContactPhone ( ' +33634981209 ' )
-> setPackageDescription ( ' Red packet. ' )
-> setClientReference ( ' 12345678ABCDE ' ); // Must be unique;
$ job -> addDropOff ( ' 12 avenue claude vellefaux, 75010 Paris ' )
-> setPackageType ( ' small ' )
-> setComment ( ' code: 92A42. 2e étage gauche ' )
-> setContactFirstName ( ' Maximilien ' )
-> setContactLastName ( ' Lebluc ' )
-> setContactPhone ( ' +33632341209 ' )
-> setPackageDescription ( ' Blue packet. ' )
-> setClientReference ( ' ABCDE213124 ' ); // Must be unique
$ client -> createJob ( $ job );เมื่อคุณสร้างงานสำเร็จแล้วคุณสามารถเรียกคืนได้ด้วยวิธีนี้:
$ jobId = 126532 ;
$ job = $ client -> getJob ( $ jobId );หรือเมื่อคุณสร้างงานใหม่:
$ job = new Stuart Job ();
$ job -> addPickup ( ' 46 Boulevard Barbès, 75018 Paris ' );
$ job -> addDropOff ( ' 156 rue de Charonne, 75011 Paris ' )
-> setPackageType ( ' small ' );
$ jobWithRoute = $ client -> createJob ( $ job );
$ jobWithRoute -> getDeliveries (); Stuart API กำหนดเส้นทางที่ดีที่สุดในนามของคุณนั่นคือเหตุผลที่วิธีการ getDeliveries() จะส่งคืนอาร์เรย์ที่ว่างเปล่าเมื่องานยังไม่ได้สร้าง วิธี getDeliveries() จะส่งคืนอาร์เรย์ของ Delivery ทันทีที่งานถูกสร้างขึ้น
เมื่อคุณสร้างงานสำเร็จแล้วคุณสามารถยกเลิกได้ด้วยวิธีนี้:
$ jobId = 126532 ;
$ result = $ client -> cancelJob ( $ jobId ); ผลลัพธ์จะถือค่าบูลีน true หากงานถูกยกเลิก หากมีข้อผิดพลาดมันจะมีวัตถุข้อผิดพลาด
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการยกเลิกการทำงานโปรดดูส่วนเอกสารเฉพาะของเรา
ก่อนที่จะสร้างงานคุณสามารถตรวจสอบได้ (พื้นที่จัดส่งและรูปแบบที่อยู่ควบคุม) การตรวจสอบความถูกต้องของงานเป็น ทางเลือก และไม่ป้องกันคุณจากการสร้างงาน
$ job = new Stuart Job ();
$ job -> addPickup ( ' 46 Boulevard Barbès, 75018 Paris ' );
$ job -> addDropOff ( ' 156 rue de Charonne, 75011 Paris ' )
-> setPackageType ( ' small ' );
$ result = $ client -> validateJob ( $ job ); ผลลัพธ์จะถือค่าบูลีน true หากงานถูกต้อง หากมีข้อผิดพลาดมันจะมีวัตถุข้อผิดพลาด
เราสนับสนุนให้ตรวจสอบที่อยู่เพื่อตรวจสอบว่าเราสามารถรับ / ส่งมอบได้หรือไม่ หมายเลขโทรศัพท์เป็นทางเลือกเฉพาะสำหรับสถานที่เหล่านั้นที่ที่อยู่นั้นมีความเฉพาะเจาะจงเพียงพอ
$ client -> validatePickupAddress ( ' Pau Claris, 08037 Barcelona ' , ' +34677777777 ' );
$ client -> validatePickupAddress ( ' Pau Claris 186, 08037 Barcelona ' );
$ client -> validateDropoffAddress ( ' Pau Claris, 08037 Barcelona ' , ' +34677777777 ' );เมื่อคุณสร้างการจัดส่งสำเร็จแล้วคุณสามารถยกเลิกได้ด้วยวิธีนี้:
$ deliveryId = 126532 ;
$ result = $ client -> cancelDelivery ( $ deliveryId );ก่อนที่จะสร้างงานคุณสามารถขอราคาได้ การขอราคาเป็น ทางเลือก และไม่ป้องกันคุณจากการสร้างงาน
$ job = new Stuart Job ();
$ job -> addPickup ( ' 46 Boulevard Barbès, 75018 Paris ' );
$ job -> addDropOff ( ' 156 rue de Charonne, 75011 Paris ' )
-> setPackageType ( ' small ' );
$ pricing = $ client -> getPricing ( $ job );
$ pricing -> amount ; // example: 11.5
$ pricing -> currency ; // example: "EUR"ก่อนที่จะสร้างงานคุณสามารถขอเวลาโดยประมาณของการมาถึงที่ตำแหน่งรถกระบะ (แสดงเป็นวินาที) การขอ ETA เป็น ทางเลือก และไม่ป้องกันคุณจากการสร้างงาน
$ job = new Stuart Job ();
$ job -> addPickup ( ' 46 Boulevard Barbès, 75018 Paris ' );
$ job -> addDropOff ( ' 156 rue de Charonne, 75011 Paris ' )
-> setPackageType ( ' small ' );
$ eta = $ client -> getEta ( $ job );
$ eta -> eta ; // example: 672 นอกจากนี้คุณยังสามารถส่งคำขอด้วยตัวเองโดยไม่ต้องพึ่งพา StuartClient ช่วยให้คุณใช้จุดสิ้นสุดที่ยังไม่สามารถใช้ได้ใน StuartClient และเพลิดเพลินกับ StuartAuthenticator
$ apiResponse = $ httpClient -> performGet ( ' /v2/jobs?page=1 ' );
$ apiResponse -> success ();
$ apiResponse -> getBody ();