webreinvent/laravel-usps

Laravel框架的USPS API包装器

v1.1.2 2023-06-30 06:08 UTC

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

配置

有三个重要的配置。

  1. 您的USPS用户ID

    • 如果您尚未收到您的USPS用户ID,请按照先决条件部分中的链接进行注册。使用此包是必需的。
  2. 是否希望启用API请求的SSL验证

    • 出于安全原因,此设置默认为true。您可以通过将verrifyssl配置设置更改为false来覆盖此行为。这样做请自行承担风险。
  3. 您正在工作的环境

    • 选项为'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');