微信H5支付遇到的坑

桃扇骨 2022-05-31 06:25 807阅读 0赞

网页唤醒微信APP时报错

报错提示:商家参数格式有误,请联系商家解决
解决方案:

  1. 当前调起H5支付的referer为空导致,一般是因为直接访问页面调起H5支付,请按正常流程进行页面跳转后发起支付,或自行抓包确认referer值是否为空
  2. 如果是APP里调起H5支付,需要在webview中手动设置referer,如
    (Map extraHeaders = new HashMap();
    extraHeaders.put(“Referer”, “商户申请H5时提交的授权域名”);
    //例如 http://www.baidu.com ) )
    – 需要注意,如果使用微信官方提供的示例H5:
    http://wxpay.wxutil.com/mch/pay/h5.v2.php
    得配置与之相对应的域名: wxpay.wxutil.com

spbill_create_ip参数的获取

当时使用官方提供的方式,在Java后端获取手机端的IP,结果一直报错:网络环境未能通过安全验证,请稍后再试。
后来尝试,在网页前端使用了一个搜狐的JS库,然后用参数传递给后端,问题解决。

支付后的页面跳转

微信H5之后后的回调地址,是可以自定义的,而且可以添加自定义参数。注意:redirect_url后面加的网址需要encode一下
代码片段:

  1. logger.info("微信支付回调链接为:" + callBackUrl);
  2. try {
  3. callBackUrl = URLEncoder.encode(callBackUrl, "UTF-8");
  4. }
  5. catch (UnsupportedEncodingException e) {
  6. logger.error("微信回调链接encode出错", e);
  7. }
  8. wechatUrl = wechatUrl + "&redirect_url=" + callBackUrl;

由于设置redirect_url后,回跳指定页面的操作可能发生在:

  1. 微信支付中间页调起微信收银台后超过5秒
  2. 用户点击“取消支付“或支付完成后点“完成”按钮。
    因此无法保证页面回跳时,支付流程已结束,所以商户设置的redirect_url地址不能自动执行查单操作,应让用户去点击按钮触发查单操作。回跳页面展示效果可参考下图:
    这里写图片描述
    附:
    微信H5支付官方文档

发表评论

表情:
评论列表 (有 0 条评论,807人围观)

还没有评论,来说两句吧...

相关阅读

    相关 H5支付

    1. 调起微信支付的域名要和微信支付配置的一致,导致无法本地测试 解决方案: 修改本地host文件将配置的域名指向本机, 手机wifi使用本机代理上网。 [IJP

    相关 支付宝, h5浏览器支付

    1.微信浏览器支付,后端返回相关信息之后直接访问后端返回的mweb\_url即可,注意,若是报错:商家存在未配置的参数,请联系商家解决,则需要在商户产品配置里面,添加h5的域名

    相关 Android h5支付

    一、需求背景 H5现在承载着很多的需求活动,要想在h5界面中做支付可以使用js调用原生的支付也可以使用Android webview做支付。[微信H5支付官网][H5]

    相关 H5支付遇到

    网页唤醒微信APP时报错 报错提示:商家参数格式有误,请联系商家解决 解决方案: 1. 当前调起H5支付的`referer`为空导致,一般是因为直接访问页面调起H

    相关 H5支付流程

    微信H5支付流程 1、前端处理:通过短链进入支付; 2、前端调用后台:选择微信支付,触发后台接口(传递:第7步的跳转url); 3、后台调用微信:后台接口拼接参数(