我正在使用HelloSign API生成一个在React Native中签名的WebView。端点如下。
app.get('/api/contract/signcontract', Contract.viewAndSignContract);
在生成嵌入链接(与发出无关的无关)之后,该端点被命中,并且呈现骨架索引。
exports.viewAndSignContract = function(req, res, next) {
const embedLink = decodeURIComponent(req.query.url);
res.render('index', {embedLink});
}
使用HelloSign.open()呈现HelloSign嵌入式流。我相信您已经看到的这一方面是完全库存代码。端点是通过网络浏览量上的源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 /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/undfeined ,尽管我不明白为什么访问一个网页有多个获取请求。
"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
的。这些请求总是在完全相同的时间戳上发生,一个不会始终如一地发生在另一个之前,它们会翻牌。ID还喜欢提到它不会打破整个应用程序。
这两个获取请求始终存在,但是在最糟糕的情况下,它将在网络视图中简要显示Cannot GET /api/contract/undefined?rest_of_params
,然后重定向到真正的HelloSign Embedded Flow,一旦在蓝色月亮中,它将不会重定向,并且会保持在"无法获得" 屏幕。这一切似乎对我很违反直觉,我无法确定问题来自何处。
这是我希望您的问题已经解决。
然而,在查看此问题后,似乎在后端生成sign_url之前调用了初始的API调用要生成的iframe。因此,在这种情况下,两个接到两个呼叫的原因是:一个没有sign_url,一个带有sign_url。
。- 生成请求
- 为各自的signature_id生成sign_url
- 将sign_url传递到客户端以供iframe填充
如前所述,联系HelloSign支持的最佳方法是直接与我们的API团队联系。谢谢!