johnpaulmedina/laravel-usps

Laravel 10 的 USPS API

v10.0 2023-06-30 02:56 UTC

This package is auto-updated.

Last update: 2024-09-20 22:12:54 UTC


README

Laravel-USPS 是一个 composer 包,允许您集成 USPS 地址/运输 API/运费计算器。此包由 @author Vincent Gabriel 从 https://github.com/VinceG/USPS-php-api 转移而来。

  • 需要有效的 USPS API 用户名
  • 已在 Laravel 10 上测试

安装

首先通过 Composer 安装此包。从终端运行以下命令

composer require johnpaulmedina/laravel-usps

Laravel 集成

对于 Laravel 5.5 及更高版本,此包将自动发现并注册。

要在您的 Laravel 5.4 项目中设置此包,您需要添加服务提供者。打开 config/app.php 文件,并将新项添加到 providers 数组中。

Johnpaulmedina\Usps\UspsServiceProvider::class,

然后,您还必须在 config/app.php 中指定别名。将新项添加到 Aliases 数组中。

'Usps' => Johnpaulmedina\Usps\Facades\Usps::class,

这将允许通过添加 Facade Use Usps; 来进行集成。

Laravel 配置

config/services.php 中添加您的 USPS 用户名配置。

'usps' => [
		'username' => "XXXXXXXXXXXX",
		'testmode' => false,
	],

示例控制器用法

Laravel 完成的唯一方法是 Usps::validateUsps::rate,这些方法定义在 vendor/johnpaulmedina/laravel-usps/src/Usps/Usps.php 中。由于此包是为内部使用开发的,我没有引入所有功能,但您非常欢迎贡献您需要的功能,我将合并它们。我建议查看 @VinceG 的原始 PHP 包装器 USPS PHP-Api,因为我移植了这些类并将它们自动加载到 Usps.php 文件中。

<?php

namespace App\Http\Controllers;

use App\Http\Requests;
use Illuminate\Support\Facades\Request;
use Johnpaulmedina\Usps;

class USPSController extends Controller
{
    public function index() {
        return response()->json(
            Usps::validate( 
                Request::input('Address'), 
                Request::input('Zip'), 
                Request::input('Apartment'), 
                Request::input('City'), 
                Request::input('State')
            )
        );
    }

    public function trackConfirm() {
        return response()->json(
            Usps::trackConfirm( 
                Request::input('id')
            )
        );
    }

    public function trackConfirmRevision1() {
        return response()->json(
            Usps::trackConfirm( 
                Request::input('id'),
                'Acme, Inc'
            )
        );
    }
    
    public function rate(Request $request) {
    
        $usps_rate = Usps::rate(
            [
                'Service' => $request->input('Service', 'PRIORITY COMMERCIAL'),
                'FirstClassMailType' => $request->input('FirstClassMailType', ''),
                'ZipOrigination' => $request->input('ZipOrigination', '91601'),
                'ZipDestination' => $request->input('ZipDestination', $zipcode),
                'Pounds' => $request->input('Pounds', $weight),
                'Ounces' => $request->input('Ounces', 0),
                'Container' => $request->input('Container', 'VARIABLE'),
                'Machinable' => $request->input('Machinable', 'True'),
            ]
        );


        $usps_return_rate = Arr::get($usps_rate, 'rate.RateV4Response.Package.Postage.Rate');
        $usps_return_weight = Arr::get($usps_rate, 'rate.RateV4Response.Package.Pounds');


        return response()->json([
            'rate' => $usps_return_rate,
            'weight'=> $usps_return_weight,
            'usps' => $usps_rate
        ]);
	
    }
    
}

贡献者

@pdbreen @bredmor @scs-ben @daveore090

@VinceG 原始 README.MD

USPS PHP API

此包装器允许您对 USPS API 执行一些基本调用。目前支持的一些功能包括

  • 运费计算器(国内外都支持)
  • 通过地址查找邮编
  • 通过邮编查找城市/州
  • 验证地址
  • 创建优先级运输标签
  • 创建开放并分发运输标签
  • 创建国际运输标签(快递、优先、平邮)
  • 服务交付计算器
  • 确认跟踪

要求

  • PHP >= 8.1
  • USPS API 用户名
    • Laravel 10

作者