收藏
回答

微信H5纯签约接口唤起微信签约成功后如何跳转回浏览器指定页面?

看H5纯签约接口文档,只看到入参中的return_appid可以用于签约结束的返回路径,但这个参数是用来返回app的,未发现可控制返回浏览器指定页面的入参,是否可以在签约结束返回指定页面

回答关注问题邀请回答
收藏

1 个回答

  • Memory (私信不回复)
    Memory (私信不回复)
    2023-03-15

    参考下述QA

    Q:h5纯签约或公众号纯签约签约完成后点击完成按钮返回的是商户首页(域名),不是发起签约请求的页面

    A:

    1.浏览器发起签约场景:

    问题根因:referer由于客户端webview内核安全策略变更,需要源页面进行授权后,才能获取完整URL,否则无法在签约完成后,原路跳回商户的H5页面,浏览器由于兼容性问题导致微信侧获取的referer只有域名部分,丢失了path部分,所以返回的是商户域名页

    微信支付侧协助寻找了以下解决方案,建议商户试试,如仍有问题需商户自行联系浏览器厂商处理:

    商户跳转前的源H5页面,需要在html中做referrer-policy的授权声明:

    方法一(推荐):

    <meta name="referrer" content="no-referrer-when-downgrade">>

    方法二:

    <meta name="referrer" content="unsafe-url">


    安全策略详情可参考:https://developers.google.com/web/updates/2020/07/referrer-policy-new-chrome-default


    Referrer-Policy声明的用法可参考:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Referrer-Policy

    注意:

    ① 商户需要检查一下html里面是否有多个meta name="Referrer"的声明(比如声明了一个<meta name="Referrer" content="origin" />,会覆盖开头的声明,需要删掉)

    ② 检查发起签约页面跳转微信时是否有处理过(比如中转页面或着在后台跳转的),必须是商户前端发起的跳转,否则不会生效

    ③由于iOS15对referrer policy更加严格,referer只带了host没有带path,但iOS14以及之前版本的referer带了host和path,导致了iOS15以上目前只能返回商户域名页面


    2.商户发起签约页面地址中有片段标识符:

    片段标识符(URI Fragment,即URL中#号后面的部分)仅用作浏览器端的处理,不会参与到服务端请求中,故签约完成回跳不会带上这部分信息。


    2023-03-15
    有用 1
    回复
登录 后发表内容