信封收件人中的INVALID_REQUEST_BODY:更新

时间:2019-05-22 16:31:15

标签: php laravel docusignapi

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

此后,我添加字段clientUserId并尝试使用POST信封/ {envelope_id} /收件人的端点(具有从GET方法返回的与正文相同的数组)来更新信封。 / p>

但返回以下错误:

“请求正文缺失或格式不正确。无法将当前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。”

糟糕:这是我上次测试(2018年12月)时有效的

更新:

我启用了日志,但是似乎未记录错误,如您所见,日志中的所有请求都为“ OK”,并且我没有找到POST信封/ {envelope_id} /收件人。 / p>

以下是日志文件:

LOGs Files

Content of 07_OK_GetEnvelopeRecipients.txt:

2 个答案:

答案 0 :(得分:1)

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

很明显,从GET envelopes/{envelope_id}/recipients返回的JSON将以数组形式返回字段“ identityVerification”。但是POST仅在“ identityVerification”是一个对象的情况下有效。

this is the problem

要解决该问题,我在进行POST调用之前做了以下操作:

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

答案 1 :(得分:0)

由于您没有在DocuSign日志中看到错误,而且从错误的措辞中也看不到,所以我怀疑在将请求发送到DocuSign之前,您的计算机中正在发生问题。

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