使用阿里云 地址标准化 服务,解析物流面单信息-通用版

安装依赖包#

composer require alibabacloud/client

解析物流面单信息#

use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;

class Addresspurification {

    // 行政区划识别
    public function getAddressDivisionCode($address){
        AlibabaCloud::accessKeyClient('<your-access-key-id>', '<your-access-key-secret>')
            ->regionId('cn-hangzhou')
            ->asDefaultClient();

        try {
            $result = AlibabaCloud::rpc()
                ->product('address-purification')
                ->version('2019-11-18')
                ->action('GetAddressDivisionCode')
                ->host('address-purification.cn-hangzhou.aliyuncs.com')
                ->options([
                    'query' => [
                        'AppKey' => "<your-app-key>",
                        'ServiceCode' => "addrp",
                        'Text' => $address,
                    ],
                ])
                ->request();

            $resultArr = $result->toArray();
            $addressArr = json_decode($resultArr["Data"],true);

            $addressStr = $addressArr['division_info']['division_name'];
            $addressStrImplode = explode(';',$addressStr);

        } catch (ClientException $e) {
            echo $e->getErrorMessage() . PHP_EOL;
        } catch (ServerException $e) {
            echo $e->getErrorMessage() . PHP_EOL;
        }
    }

    // 物流面单信息提取
    public function extractExpress($address){
        AlibabaCloud::accessKeyClient('<your-access-key-id>', '<your-access-key-secret>')
            ->regionId('cn-hangzhou')
            ->asDefaultClient();

        try {
            $result = AlibabaCloud::rpc()
                ->product('address-purification')
                ->version('2019-11-18')
                ->action('GetAddressDivisionCode')
                ->host('address-purification.cn-hangzhou.aliyuncs.com')
                ->options([
                    'query' => [
                        'AppKey' => "<your-app-key>",
                        'ServiceCode' => "addrp",
                        'Text' => $address,
                    ],
                ])
                ->request();
            $addressArr = json_decode($result["Data"],true);
            $addressStr = $addressArr['express_extract'];
            return $addressStr;
        } catch (ClientException $e) {
            echo $e->getErrorMessage() . PHP_EOL;
        } catch (ServerException $e) {
            echo $e->getErrorMessage() . PHP_EOL;
        }
    }

}
本作品采用《CC 协议》,转载必须注明作者和本文链接
www.haowuliaoa.com
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。