我第一次尝试在我的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运营商已添加到我的帐户中,以便我可以在货件中使用它?
答案 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/filtering和https://goshippo.com/docs/carrier-accounts找到有关过滤结果的详情,或查看https://goshippo.com/docs/reference上的API参考资料