arkitecht/fedex-laravel

一个服务提供者,用于将 FedEx 服务集成到您的 Laravel 项目中

1.0.1 2016-10-23 19:17 UTC

This package is auto-updated.

Last update: 2024-09-05 07:17:53 UTC


README

一个服务提供者,用于将 FedEx 服务集成到您的 Laravel 项目中

快速安装

您可以通过 composer 最容易地安装此包

Laravel 5.x

composer require arkitecht/fedex-laravel

在项目中使用它

将服务提供者添加到您的 config/app.php 文件中

<?php

...
'providers' => [

        /*
         * Laravel Framework Service Providers...
         */
        //Illuminate\Foundation\Providers\ArtisanServiceProvider::class,
        Illuminate\Auth\AuthServiceProvider::class,
        Illuminate\Broadcasting\BroadcastServiceProvider::class,
        Illuminate\Bus\BusServiceProvider::class,

...
       Arkitecht\FedEx\Laravel\Providers\FedExServiceProvider::class,
    ],
?>

将 Facade 添加到您的 config/app.php 文件中

<?php

...
    'aliases' => [

        'FedEx'     => Arkitecht\FedEx\Laravel\Facades\FedEx::class

    ],
?>

发布配置文件

artisan vendor:publish

设置环境

在您的 .env 文件或 config/fedex.php 中添加以下设置键的值

  • FEDEX_API_KEY - 您的 FedEx API 密钥
  • FEDEX_API_PASSWORD - 您的 FedEx API 密码
  • FEDEX_ACCOUNT_NO - 您的 FedEx 账户号码
  • FEDEX_METER_NO - 您的 FedEx 米数号码
  • FEDEX_USE_BETA - (布尔值) 使用 FedEx 测试系统而不是生产系统

使用示例

获取 FedEx 价格

<?php

$rateRequest = FedEx::rateRequest();

$shipment = new \Arkitecht\FedEx\Structs\RequestedShipment();
$shipment->TotalWeight = new \Arkitecht\FedEx\Structs\Weight(\Arkitecht\FedEx\Enums\WeightUnits::VALUE_LB, $weight);

$shipment->Shipper = new \Arkitecht\FedEx\Structs\Party();
$shipment->Shipper->Address = new \Arkitecht\FedEx\Structs\Address(
    $shipper->address,
    $shipper->city,
    $shipper->state,
    $shipper->zip,
    null, 'US');

$shipment->Recipient = new \Arkitecht\FedEx\Structs\Party();
$shipment->Recipient->Address = new \Arkitecht\FedEx\Structs\Address(
    $recipient->address,
    $recipient->city,
    $recipient->state,
    $recipient->zip,
    null, 'US');

$lineItem = new \Arkitecht\FedEx\Structs\RequestedPackageLineItem();
$lineItem->Weight = new \Arkitecht\FedEx\Structs\Weight(\Arkitecht\FedEx\Enums\WeightUnits::VALUE_LB, $weight);
$lineItem->GroupPackageCount = 1;
$shipment->PackageCount = 1;

$shipment->RequestedPackageLineItems = [
    $lineItem
];

$rateRequest->Version = FedEx::rateService()->version;

$rateRequest->setRequestedShipment($shipment);

$rate = FedEx::rateService();

$response = $rate->getRates($rateRequest);

$rates = [];

if ($response->HighestSeverity == 'SUCCESS') {
    foreach ($response->RateReplyDetails as $rate) {
        $rates[$rate->ServiceType] = $rate->RatedShipmentDetails[0]->ShipmentRateDetail->TotalNetCharge->Amount;
    }
}