c# - UPS 地址街道级别验证

标签 c#

这可能是一个非常普遍的问题,但有人很幸运地使用了 UPS 街道级验证 API 吗?我研究了其中的部分内容:http://www.codeproject.com/KB/aspnet/Benz_CPE.aspx?msg=3658759&display=Mobile

还有这个: https://www.ups.com/upsdeveloperkit/downloadresource?loc=en_US

UPS 对他们自己的示例代码没有太大帮助。即使在获得访问 key 后,他们的样本仍坚持提供的状态无效的样本数据(即使具有测试环境可接受的状态)。寻找更多线索。

最佳答案

UPS 通知我,C# 示例配置为“城市化”,仅适用于波多黎各。我修改了代码如下:

class XAVWSClient
{
    static void Main()
    {
        try
        {
        XAVService xavSvc = new XAVService();
        XAVRequest xavRequest = new XAVRequest();
        UPSSecurity upss = new UPSSecurity();
UPSSecurityServiceAccessToken upssSvcAccessToken = new UPSSecurityServiceAccessToken();
        upssSvcAccessToken.AccessLicenseNumber = ;
        upss.ServiceAccessToken = upssSvcAccessToken;
        UPSSecurityUsernameToken upssUsrNameToken = new UPSSecurityUsernameToken();
        upssUsrNameToken.Username = ;
        upssUsrNameToken.Password = ;
        upss.UsernameToken = upssUsrNameToken;
        xavSvc.UPSSecurityValue = upss;
        RequestType request = new RequestType();

        //Below code contains dummy data for reference. Please update as required.
        String[] requestOption = { "1" };
        request.RequestOption = requestOption;
        xavRequest.Request = request;
        AddressKeyFormatType addressKeyFormat = new AddressKeyFormatType();
        String[] addressLine = { "3930 KRISTI COURT" };
        addressKeyFormat.AddressLine = addressLine;
        addressKeyFormat.PoliticalDivision2 = "SACRAMENTO";
        addressKeyFormat.PoliticalDivision1 = "CA";
        addressKeyFormat.PostcodePrimaryLow = "95827";
        addressKeyFormat.ConsigneeName = "Some Consignee";
        addressKeyFormat.CountryCode = "US";
        xavRequest.AddressKeyFormat = addressKeyFormat;
  System.Net.ServicePointManager.CertificatePolicy = new    TrustAllCertificatePolicy();

        //serialize object (Debugging)
  System.Xml.Serialization.XmlSerializer x = new     System.Xml.Serialization.XmlSerializer(xavRequest.GetType());
        Stream stream = File.Open("SerializedXAVRequest.xml", FileMode.Create);
        x.Serialize(stream, xavRequest);

        XAVResponse xavResponse = xavSvc.ProcessXAV(xavRequest);

 Console.WriteLine("Response Status Code " +  xavResponse.Response.ResponseStatus.Code);
 Console.WriteLine("Response Status Description " + xavResponse.Response.ResponseStatus.Description);
        Console.ReadLine();

虽然我现在可以验证我的凭据,但我无法生成多个结果,而且我不确定它是否正在进行任何验证,因为即使我输入了虚假地址,我也会收到以下内容:

响应状态代码 1 响应状态描述成功

当我的问题达到这一点时,我会发布另一个问题。到那时,这个问题就有了答案。

关于c# - UPS 地址街道级别验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8481442/

相关文章:

带有 JObject 元素的 C# JsonResult 返回空数组

c# - 如何在运行时引用mvc中的程序集

c# - Azure:通过证书从云工作人员连接到 key 保管库

c# - 如何从我的自定义 C# 类调用 response.redirect

C# 动态站点地图内存泄漏

c# - 如何获得指向 C 函数的指针?

c# - 将标准输入复制到标准输出会导致奇怪的结果

c# - 使用事件处理程序接收到的 TCP 客户端数据

c# - 使用自动映射器将复杂的 DTO 映射到实体

c# - 从派生类调用的虚拟方法中的 typeof this