exertis/yii2-experian-qas

Experian QAS Pro On Demand 后端查找 SOAP 服务集成到 Yii 框架。另请参阅 http://support.qas.com/experian_qas_pro_ondemand__php_only__technical_update_2021.htm

安装: 17

依赖项: 0

建议者: 0

安全性: 0

星标: 0

关注者: 5

分支: 0

类型:yii2-extension

dev-master 2015-11-17 17:51 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:12:33 UTC


README

为 Yii2 和 Packagist 打包 Experian QAS Pro On Demand

粗略使用示例

此示例基于 Yii2 框架,因此 \Yii::$app->params['qas.username']\Yii::$app->params['qas.password'] 将从 Yii 参数文件中提取 用户名密码

此示例执行设置和搜索。

        define("CONTROL_WSDL_URN", "https://your.wsdl.storage/ProOnDemandService.wsdl");

        $qas = new \exertis\experianqas\QuickAddress(CONTROL_WSDL_URN);

        if (empty($qas)) {
            throw new Exception('QAS: Initial connection failed');
        }

        $qas->setQASCredentials(\Yii::$app->params['qas.username'], \Yii::$app->params['qas.password']);

        // Find out available DataSets
        $aDataSets = $qas->getAllDataSets();
        $sPromptSet = $qas->getPromptSet('GBR');
        $layouts = $qas->getAllLayouts('GBR');

        # Perform the initial search (singleline engine, flattened picklists)
        $qas->setEngineType(QAS_SINGLELINE_ENGINE);
        $qas->setFlatten(TRUE);
        $picklist = $qas->searchSingleline('GBR', [$postcode], 'Optimal');

结果是“选择列表”,您可以按以下方式处理:

        if (!empty($picklist->atItems) && is_array($picklist->atItems)) {
            // loop through each possible matched address
            $addresses = [];

            foreach ($picklist->atItems as $atItem) {

                //$formattedAddress = $qas->getFormattedAddress('QADefault', $atItem->Moniker);
                $formattedAddress = $qas->getFormattedAddress('FullPAF', $atItem->Moniker); // FormattedAddress

                $address = [

                        'picklistvalue' => $atItem->Picklist,
                        'flatNumber' => $formattedAddress->atAddressLines[5]->Line, // Sub-building name
                        'houseName' => $formattedAddress->atAddressLines[7]->Line, // Building name
                        'houseNumber' => $formattedAddress->atAddressLines[8]->Line, // Building number
                        'streetName' => $formattedAddress->atAddressLines[15]->Line, // Thoroughfare
                        'locality' => $formattedAddress->atAddressLines[18]->Line, // Dependent locality
                        'town' => $formattedAddress->atAddressLines[20]->Line, // Town
                        'county' => $formattedAddress->atAddressLines[21]->Line, // County
                        'id' => $atItem->Moniker,
                ];

                $addresses[] = $address;
            } // foreach