我正在使用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>
以下是日志文件:
答案 0 :(得分:1)
最后,我找出导致问题的原因:
很明显,从GET envelopes/{envelope_id}/recipients
返回的JSON将以数组形式返回字段“ identityVerification”。但是POST仅在“ identityVerification”是一个对象的情况下有效。
要解决该问题,我在进行POST调用之前做了以下操作:
$recipients['signers'][$i]['identityVerification'] = new stdClass();
答案 1 :(得分:0)
由于您没有在DocuSign日志中看到错误,而且从错误的措辞中也看不到,所以我怀疑在将请求发送到DocuSign之前,您的计算机中正在发生问题。
因此解决方案是在应用程序中进行调试。如需更多帮助,请提供您的代码,该错误会引起错误。