Laravel Cloud 来了!为 Laravel 应用提供零配置的托管基础​​设施。 立即部署

Laravel USPS:USPS API 的现代化封装

最后更新于 经过

Laravel USPS:USPS API 镜像的现代化封装

Laravel USPS 约翰·保罗·梅迪纳 是一个功能齐全的 Laravel 包,封装了 USPS API v3——一个现代化的 OAuth2 认证 REST/JSON API。

该软件包涵盖 20 个 API 域和 80 多个端点,包括地址验证、包裹跟踪、运单标签、定价和承运商取件安排。其底层可自动处理 OAuth2 令牌管理,并将令牌缓存约 50 分钟,以减少不必要的身份验证请求。

安装

作曲家 要求 johnpaulmedina/laravel-usps

发布配置文件:

php 工匠 供应商:发布 --tag=usps-config

然后添加您的 USPS OAuth2 凭据 .env 您可以从美国邮政服务开发者门户网站获取这些信息:

USPS_CLIENT_ID =您的客户ID
USPS_CLIENT_SECRET =您的客户端密钥

地址验证

地址验证是最常见的应用场景之一。 Usps 立面暴露了 validate() 该方法接受一个地址字段的普通数组,并返回一个标准化的、更正后的地址以及 DPV(投递点验证)确认信息:

使用 Johnpaulmedina\Usps\Facades\Usps ;
$结果 = 美国邮政 :: 证实 ([
'地址' => '西北第37街78号' ,
'城市' => '迈阿密' ,
'状态' => '在' ,
'拉链' => '33127' ,
]);

成功后,响应中将包含更正后的地址以及其他投递点验证 (DPV) 信息:

{
“地址” :{
“地址2” : “西北第37街78号” ,
“城市” : “迈阿密” ,
“状态” : “FL” ,
“Zip5” : 33127 ,
“Zip4” : 3178
},
"附加信息" :{
“交付点” : "00" ,
“运营商路线” : “C000” ,
“DPVC确认” : “和” ,
“DPVCMRA” : “N” ,
“商业” : “N” ,
“中央交付点” : “N” ,
“空缺” : “N”
}
}

DPVConfirmation 确认该地址是否为美国邮政服务 (USPS) 可投递的真实地址: Y 完整比赛, D 如果缺少附属单元(公寓/套房), S 如果辅助单元不匹配,并且 N 如果地址不是有效的收货地址。

如果提交的地址有误, corrections 密钥也会出现在响应中。

输入归一化

所有输入在发送到 USPS API 之前都会自动规范化——州名(包括领土和军事代码)转换为双字母缩写,ZIP+4 字符串拆分为其组成部分,国家/地区名称转换为 ISO alpha-2 代码,日期规范化为 ISO 8601 格式:

美国邮政 :: 证实 ([
'地址' => '西北第37街78号' ,
'城市' => '迈阿密' ,
'状态' => '佛罗里达' , // 已转换为 'FL'
'拉链' => '33127-3178' , // 拆分为 Zip5:33127,Zip4:3178
]);

对于反向查找——即根据邮政编码获取城市和州——有以下几种方法: cityStateLookup() :

$结果 = 美国邮政 :: 城市州查找 '33127' (英文):
{
“城市” : “迈阿密” ,
“状态” : “FL” ,
“拉链” : 33127
}

包裹追踪

跟踪功能通过 Fluent 子客户端访问。调用 tracking() 在立面上获得 Tracking 实例,然后调用 track() 包含一系列跟踪请求对象。USPS API 在单个请求中最多支持 35 个货件:

$结果 = 美国邮政 :: 追踪 () -> 追踪 ([
[ '追踪号码' => '9400111899223456789012' ],
[ '追踪号码' => '9400111899223456789099' ],
]);

回复内容包括每批货物的当前状态、位置和配送信息:

{
“追踪号码” : "9400111899223456789012" ,
“地位” : “发表” ,
状态摘要 : “您的物品已于 2026 年 3 月 28 日上午 11:23 送达佛罗里达州迈阿密 33127。” ,
“trackSummary” :{
“事件” : “送货上门/送至门廊” ,
“eventDate” : 2026年3月28日 ,
“事件时间” : 上午 11:23 ,
“eventCity” : “迈阿密” ,
“eventState” : “FL” ,
“eventZIPCode” : 33127
}
}

如果您需要注册货运电子邮件提醒,同样适用。 Tracking 实例具有 registerNotifications() 该方法接受跟踪号码和通知偏好设置。

工匠指令

该软件包附带了一些便捷的 Artisan 命令,无需编写任何代码即可快速查找:

# 验证地址
php 工匠 usps:验证 “西北第37街78号” --state=FL --zip=33127
# 追踪包裹
php 工匠 usps:track 9400111899223456789012
查找邮政编码
php 工匠 usps:zip 33127

地址验证和跟踪只是该软件包涵盖的二十个 API 领域中的两个。您还可以生成国内和国际货运标签、计算运费、安排承运商取件、管理纠纷等等——所有操作均可通过同一个基于外观的界面完成。

您可以在以下位置找到来源: GitHub 完整文档请见此处。 johnpaulmedina.github.io/laravel-usps

Yannick Lyn Fatt 的照片

Laravel News 的特约撰稿人和全栈 Web 开发人员。

归档于:
立方体

Laravel 时事通讯

加入超过 4 万名开发者的行列,不错过任何新的技巧、教程等内容。

图像
廷克威尔

这款编辑器专为快速反馈和快速迭代而设计,让您尽享编码和调试的乐趣。它就像您应用程序的一个外壳——但具备多行编辑、代码自动完成等更多功能。

参观廷克韦尔
Tinkerwell 徽标

廷克威尔

Laravel 开发者必备的代码运行器。可在本地和生产环境中体验 AI、自动补全和即时反馈功能。

廷克威尔
几天内即可获得 Laravel 代码审查徽标的专家指导

几天内即可获得 Laravel 代码审查方面的专家指导

专家级代码审查!两位拥有 10 年以上 Laravel 开发经验的开发者将为您提供清晰、实用的反馈,帮助团队构建更优质的应用程序。

几天内即可获得 Laravel 代码审查方面的专家指导
PhpStorm 标志

PhpStorm

首选的 PHP IDE,对 Laravel 及其生态系统提供广泛的开箱即用支持。

PhpStorm
Laravel Cloud 标志

Laravel 云

轻松创建和管理服务器,并在几秒钟内部署 Laravel 应用程序。

Laravel 云
了解 Softtech 的标志

了解软科技

Acquaint Softtech 提供 AI 就绪的 Laravel 开发人员,48 小时内即可上手,每月费用为 3000 美元,没有冗长的销售流程,并提供 100% 退款保证。

了解软科技
Kirschbaum 标志

樱桃树

提供创新和稳定性,确保您的Web应用程序取得成功。

樱桃树
Shift 标志

转移

还在运行旧版本的 Laravel?立即实现 Laravel 自动升级和代码现代化,让您的应用程序保持最新状态。

转移
鱼叉:新一代时间跟踪和发票标志

Harpoon:新一代时间跟踪和发票系统

新一代时间跟踪和计费软件,帮助您的机构规划和预测盈利的未来。

Harpoon:新一代时间跟踪和发票系统
Lucky Media 标志

幸运传媒

Get Lucky Now——拥有十余年经验的 Laravel 开发理想之选!

幸运传媒
SaaSykit:Laravel SaaS 入门套件徽标

SaaSykit:Laravel SaaS 入门套件

SaaSykit 是一个多租户 Laravel SaaS 入门套件,包含运行现代 SaaS 所需的所有功能,例如支付、美观的结账界面、管理面板、用户仪表盘、身份验证、现成组件、统计数据、博客、文档等等。

SaaSykit:Laravel SaaS 入门套件
PHPantom:一个基于 Rust 镜像构建的快速 PHP 语言服务器

PHPantom:一个用 Rust 构建的快速 PHP 语言服务器

阅读文章
Axios npm 包已被远程访问木马镜像入侵

Axios npm 包已被远程访问木马入侵

阅读文章
使用 Laravel 12、MongoDB Atlas Vector Search 和 Voyage AI 图片构建 AI 聊天代理

使用 Laravel 12、MongoDB Atlas Vector Search 和 Voyage AI 构建 AI 聊天代理

阅读文章
PHP调试器:一款轻量级的Xdebug替代方案,专为速度而打造。

PHP调试器:一款轻量级的Xdebug替代方案,专为速度而打造

阅读文章
Laravel USPS:USPS API 镜像的现代化封装

Laravel USPS:USPS API 的现代化封装

阅读文章
Debugbar 发布 v4.2.0 版本,并新增了 Boost 技能图像。

Debugbar 发布 v4.2.0 版本,并新增了一项 Boost 技能。

阅读文章