【问题标题】:INVALID_REQUEST_BODY in EnvelopeRecipients::updateEnvelopeRecipients::update 中的 INVALID_REQUEST_BODY
【发布时间】:2019-06-20 15:46:17
【问题描述】:

我正在使用 GET envelopes/{envelope_id}/recipients 端点获取信封收件人。

之后,我添加字段 clientUserId 并尝试更新信封,使用 POST 信封/{envelope_id}/recipients 的端点以及我从 GET 方法返回的相同数组作为正文。

但是返回如下错误:

“请求正文丢失或格式不正确。无法将当前 JSON 数组(例如 [1,2,3])反序列化为类型 'API_REST.Models.v2.recipientIdentityVerification',因为该类型需要 JSON 对象(例如 { "name":"value"}) 正确反序列化。

要修复此错误,请将 JSON 更改为 JSON 对象(例如 {"name":"value"})或将反序列化类型更改为数组或实现集合接口的类型(例如 ICollection、IList),例如可以从 JSON 数组反序列化的列表。也可以将 JsonArrayAttribute 添加到类型中以强制它从 JSON 数组中反序列化。

路径 'signers[0].identityVerification',第 1 行,位置 120。”

Obs:这在我上次测试(2018 年 12 月)时有效

更新:

我启用了日志,但似乎没有记录错误,如您所见,日志中的所有请求都是“OK”,我没有找到 POST 信封/{envelope_id}/recipients。

这里是日志文件:

Content of 07_OK_GetEnvelopeRecipients.txt:

【问题讨论】:

  • 很抱歉给您带来了麻烦。我们帮助您的唯一真正方法是让您提供呼叫的请求/响应数据。使用 DocuSign logging 功能获取此信息。然后更新您的问题以包含其他信息。
  • 嘿拉里!日志有帮助吗?
  • 很遗憾,您无法捕获错误日志。这就是你需要的。如果错误仍然发生,那么: 1. 下载日志以清除日志系统。 2. 重新运行您的应用程序以导致问题。 3. 再次下载日志,您应该会看到有问题的调用的日志。
  • 看到这是奇怪的事情,我仍然得到错误,但有问题的调用没有被记录。什么可能导致有问题的通话未被记录?

标签: php laravel docusignapi


【解决方案1】:

最后我找出了导致问题的原因:

显然,从 GET envelopes/{envelope_id}/recipients 返回的 JSON 将字段“identityVerification”作为数组返回。但 POST 仅在“identityVerification”是一个对象时才有效。

为了解决这个问题,我在发出 POST 调用之前做了以下操作:

$recipients['signers'][$i]['identityVerification'] = new stdClass();

【讨论】:

    【解决方案2】:

    由于您在 DocuSign 日志中看不到错误,而且从错误的措辞来看,我怀疑问题是在您的机器内部发生的,在请求发送到 DocuSign 之前。

    因此解决方案是在您的应用程序中进行调试。如需更多帮助,请提供导致错误发生的代码。

    【讨论】:

    • 感谢拉里的帮助!看看我的回答,也许这是API的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-27
    • 2017-09-28
    相关资源
    最近更新 更多