Javascript 联邦快递地址验证多个结果
因此,我有一个使用联邦快递api地址验证的函数,我试图返回多个结果,但无论我键入什么地址,不管歧义性如何,我只得到一个结果。我尝试设置soap请求的元素以返回更多结果,但我想我遗漏了一些东西 任何能够告诉我为什么返回的街道地址有时会重复的人都可以获得额外积分。 我会给它地址“1234 StreetName”,它会在响应中返回“1234 StreetName 1234 StreetName”Javascript 联邦快递地址验证多个结果,javascript,xml,soap,fedex,Javascript,Xml,Soap,Fedex,因此,我有一个使用联邦快递api地址验证的函数,我试图返回多个结果,但无论我键入什么地址,不管歧义性如何,我只得到一个结果。我尝试设置soap请求的元素以返回更多结果,但我想我遗漏了一些东西 任何能够告诉我为什么返回的街道地址有时会重复的人都可以获得额外积分。 我会给它地址“1234 StreetName”,它会在响应中返回“1234 StreetName 1234 StreetName” /* Define SOAP parameters */ var fedexURL = 'https:/
/* Define SOAP parameters */
var fedexURL = 'https://gateway.fedex.com:443/web-services';
var key = 'XXXXXXXXXXXXXXXXX';
var password = 'XXXXXXXXXXXXXXXXXXXX';
var accountNumber = XXXXXXX;
var meterNumber = XXXXXXXXXX;
var checkResidentialStatus = 1;
var addressID = 'address1';
// get address value from address fields
var streetLines = nlapiGetFieldValue('custpage_custrecord_inv_address') + nlapiGetFieldValue('custpage_custrecord_inv_address');
var city = nlapiGetFieldValue('custpage_custrecord_inv_city');
var state = nlapiGetFieldValue('custpage_custrecord_inv_state_display');
var postalCode = nlapiGetFieldValue('custpage_custrecord_inv_zip');
var countryCode = nlapiGetFieldValue('custpage_custrecord_inv_country_display');
var soap = '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://fedex.com/ws/addressvalidation/v2">'+
'<SOAP-ENV:Body>'+
'<AddressValidationRequest>'+
'<WebAuthenticationDetail>'+
'<UserCredential>'+
'<Key>'+key+'</Key>'+
'<Password>'+password+'</Password>'+
'</UserCredential>'+
'</WebAuthenticationDetail>'+
'<ClientDetail>'+
'<AccountNumber>'+accountNumber+'</AccountNumber>'+
'<MeterNumber>'+meterNumber+'</MeterNumber>'+
'</ClientDetail>'+
'<TransactionDetail>'+
'<CustomerTransactionId>WSVC_addressvalidation</CustomerTransactionId>'+
'</TransactionDetail>'+
'<Version>'+
'<ServiceId>aval</ServiceId>'+
'<Major>2</Major>'+
'<Intermediate>0</Intermediate>'+
'<Minor>0</Minor>'+
'</Version>'+
'<RequestTimestamp>2009-07-28T09:30:47-05:00</RequestTimestamp>'+
'<Options>'+
'<VerifyAddresses>1</VerifyAddresses>'+
// '<CheckResidentialStatus>1</CheckResidentialStatus>'+
'<MaximumNumberOfMatches>3</MaximumNumberOfMatches>'+
'<StreetAccuracy>EXACT</StreetAccuracy>'+
'<DirectionalAccuracy>EXACT</DirectionalAccuracy>'+
'<CompanyNameAccuracy>EXACT</CompanyNameAccuracy>'+
// '<ConvertToUpperCase>1</ConvertToUpperCase>'+
'<RecognizeAlternateCityNames>1</RecognizeAlternateCityNames>'+
'<ReturnParsedElements>1</ReturnParsedElements>'+
'</Options>'+
'<AddressesToValidate>'+
'<AddressId>'+ addressID +'</AddressId>'+
// '<CompanyName>String</CompanyName>'+
'<Address>'+
'<StreetLines>'+streetLines+'</StreetLines>'+
'<City>'+city+'</City>'+
'<StateOrProvinceCode>'+state+'</StateOrProvinceCode>'+
'<PostalCode>'+postalCode+'</PostalCode>'+
'<CountryCode>'+countryCode+'</CountryCode>'+
'<Residential>1</Residential>'+
'</Address>'+
'</AddressesToValidate>'+
'</AddressValidationRequest>'+
'</SOAP-ENV:Body>'+
'</SOAP-ENV:Envelope>';
var headers = [];
headers['Content-Type'] = 'application/soap+xml';
headers['User-Agent-x'] = 'SuiteScript-Call';
// send request and parse response to json xml object
var response = nlapiRequestURL(fedexURL, soap, headers);
var xml = response.getBody();
xml = jq.parseXML(xml);
/*定义SOAP参数*/
var fedexURL=https://gateway.fedex.com:443/web-服务业;;
变量键='XXXXXXXXXXXXXX';
var密码='xxxxxxxxxxxxxxxxx';
var accountNumber=XXXXXXX;
var meterNumber=XXXXXXXXX;
var checkResidentialStatus=1;
var addressID='address1';
//从地址字段获取地址值
var streetLines=nlapiGetFieldValue('custpage\u custrecord\u inv\u address')+nlapiGetFieldValue('custpage\u custrecord\u inv\u address');
var city=nlapiGetFieldValue('custpage_custrecord_inv_city');
var state=nlapiGetFieldValue('custpage\U custrecord\U inv\U state\U display');
var postalCode=nlapiGetFieldValue('custpage\U custrecord\U inv\U zip');
var countryCode=nlapiGetFieldValue('custpage\U custrecord\U inv\U country\U display');
var soap=''+
''+
''+
''+
''+
''+键+''+
''+密码+''+
''+
''+
''+
''+帐号+''+
''+meterNumber+''+
''+
''+
“WSVC_地址验证”+
''+
''+
“阿瓦尔”+
'2'+
'0'+
'0'+
''+
“2009-07-28 09:30:47-05:00”+
''+
'1'+
// '1'+
'3'+
“准确”+
“准确”+
“准确”+
// '1'+
'1'+
'1'+
''+
''+
''+addressID+''地址+
//“字符串”+
''+
''+街线+''+
''+城市+''+
''+状态+''+
''+后代码+''+
''+国家代码+''+
'1'+
''+
''+
''+
''+
'';
var头=[];
标题['Content-Type']='application/soap+xml';
标题['User-Agent-x']='SuiteScript Call';
//向json xml对象发送请求和解析响应
var response=nlapiRequestURL(fedexURL、soap、headers);
var xml=response.getBody();
xml=jq.parseXML(xml);
我也遇到过类似的问题,我记得几年前在使用API时得到了多个结果,并对每个地址和当前API、示例或文档中没有的其他细节进行了评分。我从联邦快递代表处确认,“那是一个旧版本”,并且当前版本的地址验证API(截至2015年9月)显然只返回一个地址
(虽然我不确定重复的街道名称,但我个人没有经历过。)重复的地址是因为:
var streetLines=nlapiGetFieldValue('custpage\u custrecord\u inv\u address')+nlapiGetFieldValue('custpage\u custrecord\u inv\u address') 请给出一些请求和响应的例子,我也有同样的问题。我尝试过将streetaccuracy和DirectionalAccurance从中等调整为精确和宽松,但对于每个地址,我总是得到一个单一的结果。