如何检索我在Shippo帐户中设置的UPS运营商

时间:2017-09-28 19:33:54

标签: shippo

我第一次尝试在我的c#开发中使用Shippo,我能够使用默认的USPS运营商生成标签,但我无法使用我在其网站上设置的UPS帐户。

我使用此代码检索所有运营商,但我创建的UPS帐户不在列表中,尽管我在网上看到它。

ShippoCollection<CarrierAccount> carriers = resource.AllCarrierAccount();

这会返回5个默认帐户,虽然我可以看到它显示我已停用的那些为active = false,所以我知道它是从我的帐户中提取的,但该集合不包括我在线看到的UPS帐户

如果我尝试创建UPS运营商,我会收到运营商已经存在的错误:

// Setup our UPS account as carrier
Hashtable accountTable = new Hashtable ();
accountTable.Add ("carrier", "ups");
accountTable.Add ("account_id", "******");
accountTable.Add ("parameters", new Hashtable()
{
    {"password", "*****"},
    {"account_number", "*****"},
    {"surepost", false},
    {"cost_center", "shippo"},
    {"USPS_endorsement", "3"}
});
accountTable.Add ("test", true);
accountTable.Add ("active", true);

CarrierAccount upsAccount = resource.CreateCarrierAccount(accountTable);

异常抛出: Shippo.dll中出现未处理的“Shippo.ShippoException”类型异常

其他信息:{“non_field_errors”:[“具有account_id shark92651的帐户已存在。您可以使用PUT请求更新现有帐户参数”]}

如何检索我看到的UPS运营商已添加到我的帐户中,以便我可以在货件中使用它?

1 个答案:

答案 0 :(得分:0)

将运营商帐户连接到Shippo时,您可以使用Carrier Accounts endpoint或通过信息中心以编程方式执行此操作。在任何一种情况下,您都要小心是否启用了test

如果您正在使用测试Shippo令牌,则您的UPS帐户很可能不会被标记为test: true,这会阻止其显示在可用运营商列表中。

如果您确定它处于正确模式并且您正在使用正确的令牌,那么您还要确保通过{results: 10}(或更高的价值,如果您有更多的运营商帐户连接)。由于您使用的是C#,因此类似于:

APIResource resource = new APIResource("<Shippo Token>");
Hashtable parameters = new Hashtable();
parameters.Add('results', 10);
ShippoCollection<CarrierAccount> carrierAccounts = resource.AllCarrierAccount(parameters);

foreach (CarrierAccount account in carrierAccounts) {
    // Do stuff to find the CarrierAccount that you're looking to retrieve.
}

您可以在https://goshippo.com/docs/filteringhttps://goshippo.com/docs/carrier-accounts找到有关过滤结果的详情,或查看https://goshippo.com/docs/reference上的API参考资料