PHP code example of ktscript / fedex-rest

1. Go to this page and download the library: Download ktscript/fedex-rest library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

ktscript / fedex-rest example snippets


use FedexRest\Authorization\Authorize;

$authorize = new Authorize();
$authorize->setClientId('your_client_id')
    ->setClientSecret('your_client_secret')
    ->useProduction() // Use production environment (optional, defaults to sandbox)
    ->authorize();

$token = $authorize->access_token;

use FedexRest\Services\Track\TrackByTrackingNumberRequest;

$tracking = new TrackByTrackingNumberRequest();
$tracking->setAccessToken($token)
    ->setTrackingNumber('1234567890') // Single tracking number
    ->

use FedexRest\Services\Ship\CreateTagRequest;
use FedexRest\Entity\Person;
use FedexRest\Entity\Address;
use FedexRest\Entity\Item;
use FedexRest\Entity\Weight;
use FedexRest\Services\Ship\Type\ServiceType;
use FedexRest\Services\Ship\Type\PackagingType;
use FedexRest\Services\Ship\Type\PickupType;

// Create shipper address
$shipperAddress = new Address();
$shipperAddress->setStreetLines('123 Main St')
    ->setCity('Memphis')
    ->setStateOrProvince('TN')
    ->setPostalCode('38116')
    ->setCountryCode('US');

// Create shipper
$shipper = new Person();
$shipper->setPersonName('John Doe')
    ->setPhoneNumber(1234567890)
    ->withAddress($shipperAddress);

// Create recipient address
$recipientAddress = new Address();
$recipientAddress->setStreetLines('456 Oak Ave')
    ->setCity('Los Angeles')
    ->setStateOrProvince('CA')
    ->setPostalCode('90001')
    ->setCountryCode('US');

// Create recipient
$recipient = new Person();
$recipient->setPersonName('Jane Smith')
    ->setPhoneNumber(9876543210)
    ->withAddress($recipientAddress);

// Create item weight
$weight = new Weight();
$weight->setUnit('LB')
    ->setValue(5);

// Create item
$item = new Item();
$item->setItemDescription('Sample Product')
    ->setWeight($weight);

// Create shipping label
$shipment = new CreateTagRequest();
$shipment->setAccessToken($token)
    ->setAccountNumber(123456789)
    ->setShipper($shipper)
    ->setRecipients($recipient)
    ->setLineItems($item)
    ->setServiceType(ServiceType::_FEDEX_GROUND)
    ->setPackagingType(PackagingType::_FEDEX_BOX)
    ->setPickupType(PickupType::_USE_SCHEDULED_PICKUP)
    ->setShipDatestamp('2024-01-15')
    ->useProduction() // Optional: use production environment
    ->request();

use FedexRest\Services\AddressValidation\AddressValidation;
use FedexRest\Entity\Address;

$address = new Address();
$address->setStreetLines('123 Main St')
    ->setCity('Memphis')
    ->setStateOrProvince('TN')
    ->setPostalCode('38116')
    ->setCountryCode('US');

$validation = new AddressValidation();
$validation->setAccessToken($token)
    ->setAddress($address)
    ->useProduction() // Optional: use production environment
    ->request();

use FedexRest\Services\Location\LocationSearchRequest;
use FedexRest\Services\Location\Type\LocationType;
use FedexRest\Entity\Address;

// Search by address
$address = new Address();
$address->setStreetLines('123 Main St')
    ->setCity('Memphis')
    ->setStateOrProvince('TN')
    ->setPostalCode('38116')
    ->setCountryCode('US');

$locationSearch = new LocationSearchRequest();
$result = $locationSearch->setAccessToken($token)
    ->setAddress($address)
    ->setDistance(10, LocationSearchRequest::UNITS_KM)
    ->setLocationTypes([LocationType::FEDEX_OFFICE, LocationType::FEDEX_SELF_SERVICE_LOCATION])
    ->setResultsLimit(15)
    ->useProduction()
    ->request();

// Or search by coordinates
$result = $locationSearch->setAccessToken($token)
    ->setCoordinates(35.1495, -90.0490)
    ->setDistance(5, LocationSearchRequest::UNITS_MI)
    ->request();

// Or search by phone number
$result = $locationSearch->setAccessToken($token)
    ->setPhoneNumber('9015551234')
    ->request();

// Use sandbox (default)
$request->request();

// Use production
$request->useProduction()->request();

// Using Laravel's Conditionable trait (when available)
$request->when($isProduction, fn($req) => $req->useProduction())
    ->request();

$response = $request->asRaw()->request();
// Returns GuzzleHttp\Psr7\Response object

use FedexRest\Exceptions\MissingAccessTokenException;

try {
    $response = $request->request();
} catch (MissingAccessTokenException $e) {
    // Handle missing access token
}

$shipment = new CreateTagRequest();
$params = $shipment->getRequestParams();
// Modify $params array as needed
$shipment->setRequestParams($params)
    ->setAccessToken($token)
    ->request();

use FedexRest\Services\Track\TrackByTrackingNumberRequest;

$tracking = new TrackByTrackingNumberRequest();
$tracking->setAccessToken($token)
    ->setTrackingNumber('1234567890')
    ->when(config('app.env') === 'production', fn($req) => $req->useProduction())
    ->request();