fedex地址验证多个结果

时间:2014-06-09 19:17:20

标签: javascript xml soap fedex

所以我有一个使用fedex api地址验证的函数,我试图找回多个结果,但无论我输入的是什么地址,无论模糊不清,我只得到1个结果。我已经尝试设置肥皂请求的元素给我更多的结果,但我想我错过了一些东西。

任何能够告诉我为什么返回的街道地址有时会重复的奖励积分。 我会给它地址'1234 StreetName'并在回复中返回'1234 StreetName1234 StreetName'

/* 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);

2 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,我记得几年前使用API​​获得了多个结果,以及每个地址的评分和当前API中似乎没有的其他详细信息,例如或文档。我从联邦快递代表处证实,这是一个旧版本&#34;和当前版本的地址验证API(截至2015年9月)显然只返回一个地址

(不确定重复的街道名称,但我没有亲身经历过。)

答案 1 :(得分:0)

重复地址是因为:  var streetLines = nlapiGetFieldValue(&#39; custpage_custrecord_inv_address&#39;)+ nlapiGetFieldValue(&#39; custpage_custrecord_inv_address&#39;);