Express,React"/>
使用Express,React
我正在使用HelloSign API生成Webview以便在React Native中进行合同签署。端点如下。
app.get('/api/contract/signcontract', Contract.viewAndSignContract);
此端点在生成embedlink(与问题无关)后被命中,并且呈现骨架index.jade并传递hellosign.open embedlink(在传递到端点之前先对URI进行编码,因此进行解码)
exports.viewAndSignContract = function(req, res, next) {
const embedLink = decodeURIComponent(req.query.url);
res.render('index', {embedLink});
}
[使用hellosign.open()渲染hellosign嵌入式流。我相信您已经看到了这一方面,它完全是股票代码。端点是通过Web视图上的源URL命中的,这是本机代码,但足以说明一切都很正常。
<WebViewBridge
ref="webviewbridge"
onBridgeMessage={this.onBridgeMessage.bind(this)}
source={{ uri: `${ROOT_URL}/api/contract/signcontract?url=${encodeURIComponent(this.props.partner.embedLink)}` }}
style={{ flex: 1 }}
/>
错误是,几乎每当用户打开嵌入式流时,至少有2个get请求:
第一个是偶然的,并非每次都这样。只是重定向。
"GET /api/contract/signcontract?url= HTTP/1.1" 304 - "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) Mobile/14C89"
这是两个问题:
"GET /api/contract/signcontract?ux_version=2?parent_url=http%3A%2F%2Flocalhost%3A3000%2Fapi%2Fcontract%2Fsigncontract&skip_domain_verification=1&client_id=ID_HIDDEN&user_culture=en_US&debug=true&js_version=1.2.5 HTTP/1.1" 304 - "http://localhost:3000/api/contract/signcontract?url=" "Mozilla/5.0 (iPhone; CPU iPhone OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) Mobile/14C89"
和这里真正的错误是这个/ contract / undefined,尽管我不明白为什么访问一个网页时会有多个GET请求。
"GET /api/contract/undefined?ux_version=2&parent_url=http%3A%2F%2Flocalhost%3A3000%2Fapi%2Fcontract%2Fsigncontract&skip_domain_verification=1&client_id=ID_HIDDEN&user_culture=en_US&debug=true&js_version=1.2.5 HTTP/1.1" 404 262 "http://localhost:3000/api/contract/signcontract?ux_version=2?parent_url=http%3A%2F%2Flocalhost%3A3000%2Fapi%2Fcontract%2Fsigncontract&skip_domain_verification=1&client_id=ID_HIDDENc&user_culture=en_US&debug=true&js_version=1.2.5" "Mozilla/5.0 (iPhone; CPU iPhone OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) Mobile/14C89"
这些是本地终端日志,但是查看Heroku日志却是同一故事。没有/contract/:params
路由,因此我看不到/signcontract
的格式和undefined
的格式如何。这些请求总是在完全相同的时间戳上发生,一个请求不会始终在另一个时间戳之前始终发生,因此会触发。我还想提一提,它不会破坏整个应用程序。
这两个GET请求始终存在,但是在最坏的情况下,它将在Web视图中短暂显示Cannot GET /api/contract/undefined?rest_of_params
,然后重定向到真正的hellosign嵌入式流,一旦出现蓝月亮,它将不会重定向,并且将停留在“无法GET”屏幕。这一切对我来说似乎都是违反直觉的,我无法查明问题的根源。
我希望您的问题此后得到解决。
[但是,从这个问题来看,似乎要在后端生成sign_url之前调用要生成iFrame的初始API调用。因此,在这种情况下进行两次GET调用的原因是:一个没有sign_url,一个带有sign_url。
- 生成请求
- 为相应的signature_id生成一个sign_url
- 将sign_url传递到客户端以填充iFrame
如前所述,联系HelloSign支持的最佳方法是直接与我们的API小组联系。谢谢!
更多推荐
使用Express,React
发布评论