前端 H5 使用微信支付成功,返回页面时出现异常。

有一个需求,要求 H5 页面在外部浏览器里(非微信/支付宝),调用手机的微信/支付宝进行付款。

经过前后端的努力,支付宝完美实现了这个功能。这个正常的流程是:

  1. 在浏览器 app 的页面里不打开新标签页直接访问接口拿到的付款链接。
  2. 链接打开后呼出支付宝 app 由用户操作付款并点击完成按钮。
  3. 跳转回原本的浏览器 app 并访问付款成功页面。

我以为到微信上会更简单,因为只需要前端拼接 redirect_url ,结果效果非常不完美。我把 官方文档 看了几次,百度谷歌的也看了个遍,只能把付款功能实现到这个程度:

  • iOS 的 Chrome 在第 3 步会跳到 Safari 并打开 redirect_url (貌似其他浏览器最终都会跳回 Safari,未经过大量验证)。
  • iOS 的 Safari 上,步骤 123 一切正常。
  • Android 的 Chrome 在第 3 步里跳转 app 成功,但是不会访问 redirect_url ,而是访问原来的页面。
  • Android 的 Firefox 上,步骤 123 一切正常。

我的源码是这样的:

window.location.href = `${支付链接}&redirect_url=${encodeURIComponent(
    `${window.location.origin}/#/done?orderId=${参数}`
)}`;

请问,iOS 的 Chrome 浏览器如何在微信支付成功后跳转回自己本身(我也试过网友说的去掉跳转链接里的 https:// 但是的确不跳转 Safari 了却也不跳转回 Chrome),以及 Android 的 Chrome 浏览器如何在微信支付成功后打开指定的 redirect_url 而不是访问原页面?

阅读 6.6k
1 个回答

HASH路由的问题 可以尝试 回调到一个静态页面 在这个页面再做自己的逻辑

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题