我们正在尝试弄清楚Docusign
是否可以在生产场景中使用,以满足客户的需求。
我们有一个用于签署文档的UI5应用程序。我们已经在Docusign
的演示示例中创建了一个模板。
然而,当我们尝试从应用程序创建信封时,我们得到的是400 Error
Unable to parse multipart body
。现在,当在POSTMAN应用程序中使用相同的有效负载时,信封会成功创建。传递的标头也是相同的。
在Ui5应用程序中:
var settings = {
"async": true,
"crossDomain": true,
"url": "/docusign/envelopes",
"method": "POST",
"timeout": 0,
"headers": {
"Authorization": "User DnVj27euWrCi4ANoMV5puvxVxYAcUCG3PlkUSpWpC08=, Organization 6ba64ce816dec995b17d04605e329a30, Element X4XuUq/T5UUh2o9xwaamZCCRwOKUCPr1Kv1Nj+qHPj0=",
"Content-Type": "application/json"
},
"data": JSON.stringify({
"status": "sent",
"compositeTemplates": [{
"compositeTemplateId": "1",
"inlineTemplates": [{
"recipients": {
"signers": [{
"email": "johndoe@testmail.com",
"name": "John Doe",
"recipientId": "1",
"roleName": "Signer",
"clientUserId": "12345",
"tabs": {
"textTabs": [{
"tabLabel": "firstName",
"value": "John"
}, {
"tabLabel": "lastName",
"value": "Doe"
}, {
"tabLabel": "phoneNo",
"value": "022-635363"
}, {
"tabLabel": "email",
"value": "test@gmail.com"
}]
}
}]
},
"sequence": "1"
}],
"serverTemplates": [{
"sequence": "1",
"templateId": "0bf97611-a457-4e8e-ac7e-1593c17ba3f6"
}]
}]
})
};
var deferred = $.Deferred();
$.ajax(settings).done(function (response) {
deferred.resolve(response);
}.bind(this)).fail(function (error) {
deferred.reject(error);
}.bind(this));
Postman :
如果能帮助解决这个问题,我们将不胜感激。
4条答案
按热度按时间rdlzhqv91#
你能不能在json设置之外进行字符串化,也许在把所有东西都放在设置中之前,把你的调用分解一下。
例如,尝试重新调整jquery AJAX 调用:
我相信这将引导您得出最终的“综合”答案。
bxjv4tth2#
如果从Postman和UI 5应用程序发送完全相同的JSON,那么您将得到相同的结果,但是您不是,所以有些不同。
可能UI 5系统将API作为mime多部分请求发送,但没有正确设置JSON请求部分的内容类型。
验证:使用DocuSign API logger查看DocuSign接收的内容。比较UI 5和Postman发送的请求。
修复方法:您需要设置额外的UI 5参数,这样请求就不会以多部分MIME消息的形式发送。或者发送带有所需设置的多部分消息。请参阅文档并查看multi-part example。
PS:请把你的问题的答案和你的问题的解决方案(一旦你找到了)贴出来,以帮助其他人在未来。谢谢!!
fae0ux8s3#
我能够直接使用Docusign API(https://demo.docusign.net/restapi/v2/accounts)修复此问题。我之前使用SAP Openconnector连接到Docusign。https://api.openconnectors.eu3.ext.hanatrial.ondemand.com/elements/api-v2
谢谢大家的帮助。
gojuced74#
最近我也遇到了同样的问题,几乎决定给予,但最后,我设法找到了一种方法来解决它!问题是,您需要以下面的方式执行 AJAX 调用:
也许它将来会对某人有用;)