uniapp中微信H5支付,跳转支付页报:商家参数格式有误的问题解决

最近在做商城的时候,需要接入微信H5支付,其中有一个环节就是在请求服务端拿到“支付链接MWEB_URL”之后,进行跳转的时候,会出现如下图所示的问题

报错

官方有给出了解决方案,自己尝试了摸索了好长时间,总结一下处理方式。

一、下单之后,给出一个弹窗,在弹窗里面使用一个按钮绑定点击事件,点了此按钮之后进入跳转方法。

//代码示例
//之所以弄一个按钮点击之后再跳,是为了规避自动跳转会丢失referer的问题。

二、跳转处理(非iOS平台使用window.open进行跳转,iOS平台使用window.location.href)

//跳转到支付页面
goToPayPage() {
      //设置回跳地址,支付完成之后回跳到哪?
      let redirectUrl =
        '&redirect_url=' +
        encodeURIComponent(
            'http://xxx.com'
        )
      //拼接上回跳地址
      let linkUrl = this.linkUrl + redirectUrl
      const system = uni.getSystemInfoSync()
      if (system.platform == 'ios') {
        //如果是iOS平台,使用location.href,iOS里面限制了window.open的使用。
        window.location.href = linkUrl
      } else {
        window.open(linkUrl)
      }
}

三、如果是在APP里面打开的H5页面,APP端需要做处理。

需要在webview中手动设置referer,
如(Map extraHeaders = new HashMap();
extraHeaders.put("Referer", "商户申请H5时提交的授权域名"))

你可能感兴趣的:(uniapp中微信H5支付,跳转支付页报:商家参数格式有误的问题解决)