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
dev-master
2015-11-17 17:51 UTC
Requires
- yiisoft/yii2: *
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