0

我第一次尝试在我的 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": ["帐户 ID 为 Shark92651 的帐户已存在。您可以使用 PUT 请求更新现有帐户参数"]}

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

4

1 回答 1

0

当您将承运人帐户连接到 Shippo 时,您可以使用承运人帐户端点以编程方式或通过仪表板进行连接。在任何一种情况下,您都需要注意是否已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/查看 API 参考参考

于 2017-09-28T20:58:29.877 回答