我们所有的代码都在沙箱里工作。我们已经完成了在DocuSign上成功进入生产的所有步骤。Docusign Rest API在进入生产环境后返回一个空白响应(相同的代码在沙箱中运行良好)
在购买了Docusign的“基本API”计划后,我们尝试使用同样的curl脚本,这些脚本在生产中的沙箱环境中运行良好。使用GetUserInfo确定基本URI(ca.docusign.net),尝试了RESTAPI/V2/、RESTAPI/V2.1/,并且也尝试了不指定版本,总是得到空白响应(除非我们发送了无效的承载令牌,请参见下面的#3)。生产令牌字符串似乎很好,因为GetUserInfo在生产中工作,没有授权错误。
1)沙箱(工作正常,API返回信封ID):curl--header“authorization:Bearer[TokenTextString]”--header“content-type:application/json”--data-binary@jsonreq.txt--request POST https://demo.docusign.net/restapi/v2/accounts/[account_id]/envelops-k{“envelopeID”:“6E1AA70D-CC9E-4A57-A371-1DEED8E49424”,“URI”:“
2)生产环境(获得空白响应):curl--header“authorization:Bearer[TokenTextString]”--header“content-type:application/json”--data-binary@t:\at\oct2017!docusign\jsonreq.txt--请求POST https://ca.docusign.net/restapi/v2/accounts/[account_id]/envelopers-k
3)有趣的是,如果我将承载令牌更改为无效的东西(即删除前导的'e'),我会得到一个响应“user_authentication_failed”:
curl--header“authorization:Bearer[TokenTextString_e_removed]”--header“content-type:application/json”--data-binary@t:\at\oct2017!docusign\jsonreq.txt--request POST https://ca.docusign.net/restapi/v2/accounts/[account_id]/envelopers-k{“errorcode”:“user_authentication_failed”,“message”:“用户名和密码之一或两者无效。访问令牌无效”}
注意:使用userinfo请求获取生产RestAPI(ca.docusign.net)的基URI
curl--标题“authorization:Bearer[TokenTextString]”--请求GET https://account.docusign.com/oauth/userinfo-k{“sub”:“21219113-31d7-427d-bdad-16dab4654485”,“name”:“xxxx xxxx”,“given_name”:“xxxx”,“family_name”:“xxxx”,“created”:“2019-12-10t22:18:51.623”,“email”:“xxxx@xxxxx.com”,“accounts”:[{“
我把我的沙箱和直播帐号在每一个屏幕上的所有设置都并排比较了一下,发现将集成密钥复制到活动帐户时,身份验证必须默认为“授权代码授予”(Docusign GO-live进程),在更新为“隐式授予”并再次执行步骤(RSA Keys/JWT gen等)后,才能够获得成功的信封请求。
抛开一切的是Docusign API不返回响应而不是错误(除非承载令牌无效或过期,然后将得到错误响应),如果返回了错误,将会在更早之前提示需要通过精细的齿梳设置。