我正在致力于 FedEx Restful API 的集成。我必须调用上传图像 API,以便在使用 ETD 请求 FedEx 商业发票时可以在 Ship API 中使用自定义信头和签名。
FedEx 贸易文件上传 API:https://developer.fedex.com/api/en-us/catalog/upload-documents/v1/docs.html
FedEx 提供两个测试上传 API 端点:
上传文档:https://documentapitest.prod.fedex.com/sandbox/documents/v1/etds/upload
上传图片:https://documentapitest.prod.fedex.com/sandbox/documents/v1/lhsimages/upload
我能够通过 Postman 成功发送第一个请求(上传文档),但第二个请求失败。另外,我发现 FedEx 开发者门户示例中的请求正文与文档不同。
我正在使用 Postman 发送请求来测试 API,这是我的请求的样子(键值)
标题
正文(表单数据)
{"referenceId":"12345","name":"IMAGE_1_LETTERHEAD.PNG","contentType":"image/png","rules":{"workflowName":"LetterheadSignature"},"meta":{"imageType":"LETTERHEAD","imageIndex":"IMAGE_1"}}
文档值 JSON 是由此转换而来的:
{
"referenceId": "12345",
"name": "IMAGE_1_LETTERHEAD.PNG",
"contentType": "image/png",
"rules": {
"workflowName": "LetterheadSignature"
},
"meta": {
"imageType": "LETTERHEAD",
"imageIndex": "IMAGE_1"
}
}
响应错误:
{
"customerTransactionId": "123456",
"errors": {
"code": "1001",
"message": "Invalid request: invalid input : WorkFlow Name"
}
}
我还尝试使用 FedEx 提供的沙箱示例和如下所示的有效负载:
document: {"document": {"referenceId": "1234", "name": "LH2.PNG", "contentType": "image/png", "meta": { "imageType": "SIGNATURE","imageIndex": "IMAGE_1"}},"rules": {"workflowName": "LetterheadSignature" }}
attachment: file.PNG
但是,我仍然收到相同的错误代码,表示工作流程名称无效,所以请帮助我,我正在尝试,但我真的不知道我错过了什么。谢谢!
因此,在研究完全相同的主题并经过反复试验并联系联邦快递技术支持代理后,我终于找到了导致错误的原因。
这就是请求中参数的顺序。您必须将“文档”参数放在“附件”参数之前。
此外,正确的有效负载是沙盒控制台中的有效负载,而不是文档中的有效负载。接下来是一个工作“文档”字段的示例:
{
"document": {
"referenceId": "Test",
"name": "IMAGE_1.png",
"contentType": "image/png",
"meta": {
"imageType": "SIGNATURE",
"imageIndex": "IMAGE_1"
}
},
"rules": {
"workflowName": "LetterheadSignature"
}
}
希望有帮助!