johnpaulmedina / laravel-usps
Laravel 10 的 USPS API
v10.0
2023-06-30 02:56 UTC
Requires
- php: ^8.1
- illuminate/support: ^10.0
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::validate
和 Usps::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
作者
- Vincent Gabriel http://vadimg.com(原始 PHP 包装器)