webreinvent / laravel-usps
Laravel框架的USPS API包装器
v1.1.2
2023-06-30 06:08 UTC
Requires
- guzzlehttp/guzzle: ^7.2
- illuminate/support: ^8.12 | ^9.0 | ^10.0
- spatie/array-to-xml: ^2.16
This package is auto-updated.
Last update: 2024-08-30 01:07:18 UTC
README
此包提供了一个非常简单的美国邮政服务API包装器。目前,此包仅提供地址验证功能,但很快将包含USPS API提供的所有功能。
先决条件
请确保在www.usps.com/webtools/注册以从美国邮政服务获取您的唯一用户ID。此用户ID是使用此包所必需的。
安装
composer require webreinvent/laravel-usps
配置
有三个重要的配置。
-
您的USPS用户ID
- 如果您尚未收到您的USPS用户ID,请按照先决条件部分中的链接进行注册。使用此包是必需的。
-
是否希望启用API请求的SSL验证
- 出于安全原因,此设置默认为
true
。您可以通过将verrifyssl
配置设置更改为false
来覆盖此行为。这样做请自行承担风险。
- 出于安全原因,此设置默认为
-
您正在工作的环境
- 选项为
'local'和'production'
,这些选项告诉包使用哪个API URL,分别对应测试和生产环境。如果没有找到对env
的配置,它将默认为laravel识别的环境。此设置优先于您的.env
文件中的APP_ENV
。
- 选项为
我们建议将所有配置设置放在您的.env
文件中,并使用Laravel的env()
辅助函数来访问这些值。
在config/services.php
中添加这三个设置。
'usps' => [ 'userid' => env('USPS_USER_ID'), // string 'verifyssl' => env('USPS_VERIFY_SSL'), // bool 'env' => env('USPS_ENV') //string ];
用法
此包提供的当前功能包括
地址验证
Address
类处理创建和格式化地址数据。将地址详情的关联数组传递给构造函数。数组键是区分大小写的。以下是一个创建地址并进行验证API请求的示例。
use WebReinvent\Usps\Address; $address = new Address([ 'Address2' => '6406 Ivy Lane', 'City' => 'Greenbelt', 'State' => 'MD', 'Zip5' => 20770 ]); $response = $address->validate();
USPS API支持每个请求最多5个地址验证。如果您需要同时验证多个地址,请将地址数组传递给Address
构造函数。
use WebReinvent\Usps\Address; $address1 = [ 'Address2' => '6406 Ivy Lane', 'City' => 'Greenbelt', 'State' => 'MD', 'Zip5' => 20770 ]; $address2 = [ 'Address2' => '2185 Sandy Drive', 'City' => 'Franklin', 'State' => 'VA', 'Zip5' => 32050 ]; $addresses = new Address([$address1, $address2]); $response = $addresses->validate();
响应将包含纠正的地址,如果没有提供足够的信息或地址不存在,则返回错误。
响应格式化
您可以通过传递一个可选的、不区分大小写的参数到验证方法来指定响应的格式。默认格式是一个关联数组。
$address = new Address([/* address info */ ]); $json = $address->validate('json'); $object = $address->validate('object'); $string = $address->validate('string');