You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过UPS API获取交付证明(POD)PDF文件?

解决UPS Track API获取交付证明(POD)PDF的问题

问题根源

你当前使用的Request Option 15仅用于获取签名追踪信息,并不包含交付证明(POD)的文档数据。要获取POD PDF,需要更换为支持返回文档的请求选项。

解决方案步骤

  1. 修改请求选项
    UPS Track API中,使用Request Option "1"(返回完整追踪详情,包含所有可用文档)或者Request Option "7"(专门请求交付证明相关内容),都可以让响应中返回Document对象。将代码中的请求选项替换为对应值:

    String[] requestOption = { "1" }; // 或者用 "7"
    request.RequestOption = requestOption;
    
  2. 解析并保存POD PDF
    当请求成功后,trackResponse.Shipment[0].Document会包含POD的Base64编码内容,你可以将其解码并保存为PDF文件:

    if (trackResponse.Shipment[0].Document != null && trackResponse.Shipment[0].Document.Length > 0)
    {
        // 获取Base64编码的PDF内容
        string podBase64 = trackResponse.Shipment[0].Document[0].Content;
        // 解码Base64为字节数组
        byte[] podBytes = Convert.FromBase64String(podBase64);
        // 保存为PDF文件
        File.WriteAllBytes(@"C:\Path\To\Save\POD.pdf", podBytes);
        Console.WriteLine("交付证明PDF已保存");
    }
    else
    {
        Console.WriteLine("未找到交付证明文档,请确认运单已完成交付");
    }
    

完整修改后的代码示例

TrackService track = new TrackService();
TrackRequest tr = new TrackRequest();
UPSSecurity upss = new UPSSecurity();
UPSSecurityServiceAccessToken upssSvcAccessToken = new UPSSecurityServiceAccessToken();
upssSvcAccessToken.AccessLicenseNumber = "Your access license number";
upss.ServiceAccessToken = upssSvcAccessToken;
UPSSecurityUsernameToken upssUsrNameToken = new UPSSecurityUsernameToken();
upssUsrNameToken.Username = "Your username";
upssUsrNameToken.Password = "Your password";
upss.UsernameToken = upssUsrNameToken;
track.UPSSecurityValue = upss;

RequestType request = new RequestType();
String[] requestOption = { "1" }; // 替换为支持POD的请求选项
request.RequestOption = requestOption;
tr.Request = request;
tr.InquiryNumber = "Your track inquiry number";

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12 | System.Net.SecurityProtocolType.Tls | System.Net.SecurityProtocolType.Tls11;
TrackResponse trackResponse = track.ProcessTrack(tr);

Console.WriteLine("交易状态: " + trackResponse.Response.ResponseStatus.Description);
Console.WriteLine("运输服务: " + trackResponse.Shipment[0].Service.Description);

// 处理交付证明PDF
if (trackResponse.Shipment[0].Document != null && trackResponse.Shipment[0].Document.Length > 0)
{
    string podBase64 = trackResponse.Shipment[0].Document[0].Content;
    byte[] podBytes = Convert.FromBase64String(podBase64);
    File.WriteAllBytes(@"POD_Document.pdf", podBytes);
    Console.WriteLine("交付证明PDF已成功保存");
}
else
{
    Console.WriteLine("当前运单无可用交付证明,请确认运单已完成交付");
}

Console.ReadKey();

注意事项

  • 确保运单已经完成交付,未完成的运单不会返回交付证明文档。
  • 部分UPS服务可能不支持交付证明功能,需确认你的运单对应的服务类型包含该权益。

内容的提问来源于stack exchange,提问作者Alexander

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 16:35:50