1

我们正在尝试使用 Shippo API 打印运输标签,但似乎无法正常工作。这里代码中使用的数据直接来自七宝官网。

我们将 Swift、Alamofire 和 SwiftyJSON 与我们 ios 应用程序中的 Swift 代码一起使用,并得到以下错误结果:

{
"detail" : "Shippo API could not process your request. Request ID: 8af7a4c883cd453bb492ad2782bd54d3"
}

我们搜索了 Shippo 网站、stackoverflow 和 Google,但找不到任何有关此错误的参考。

这是斯威夫特代码:

func shippoRequest() {

var headers: HTTPHeaders = [
"content-type": "application/json"
]

let credentials = "shippo_test_318550b6ebde57479ef555ae7f80e660c23ee6c6"
headers["Authorization"] = "ShippoToken \(credentials)"
let parameters: [String: Any] = [
"address_from": [
[
"name" : "Shippy Shipper",
"company": "Our Shippo App",
"street1" : "101 Lafayette Road",
"street2" : "",
"city" : "Rye",
"state" : "NH",
"zip" : "03870",
"phone" : "8443872777",
"country" : "US",
"email" : "cuzineed1@yahoo.com"
]
],
"address_to": [
[
"name": "Mrs. Hippo",
"street1": "965 Mission St.",
"city": "San Francisco",
"state": "CA",
"zip": "94103",
"country": "US",
"phone": "0987654321",
"email": "support@goshippo.com"
]
],
"async": false,
"parcels": [
[
"length": "5",
"width": "5",
"height": "5",
"distance_unit": "in",
"weight": "2",
"mass_unit": "lb"
]
]
]
let url = "https://api.goshippo.com/shipments"

Alamofire.request(url, method: .post, parameters: parameters , encoding: JSONEncoding.default, headers: headers)
.responseJSON { (response) in
switch response.result {
case .success(let value):
let swiftyJson = JSON(value)
print ("return as JSON using swiftyJson is: \(swiftyJson)")
case .failure(let error):
print ("error: \(error)")
}

}
}

我们尝试了许多不同的地址,往返甚至使用相同的数据在 Shippo 网站上使用测试链接,它确实有效。

如果 Shippo 返回此错误,我们希望有人以前见过它,或者 Shippo 应该能够解释是什么无效数据产生了此错误。

任何帮助将不胜感激。

谢谢

4

1 回答 1

0

我相信地址到/从字段中缺少“object_ purpose”属性。这在 API 的“2017-03-29”版本中已被弃用,因此它可能取决于您是否使用的是旧版本的 API。

https://goshippo.com/docs/changelog

于 2018-04-17T22:59:28.760 回答