移动端网页微信支付兼容处理方案

868 阅读1分钟

javascript

测试设备:iphone X ,版本:13.2.2

一、在ios移动端下微信支付默认流程

正常 支付完成,或者中止支付,正常回到原页面

手机QQ 手机百度 UC 360 QQ浏览器 搜狗浏览器
正常 正常 正常 正常 正常 正常

异常

支付完成,或者中止支付,会跳转到safari或者刷新原页面,导致无法弹框

safari 谷歌 火狐 百度浏览器 夸克 猎豹 手机百度
刷新页面 跳safari 刷新页面加跳safari 刷新页面 跳safari 闪退,网上说也会跳safari 打开页面就是进safari

二、 在安卓端TIM和QQ使用微信网页支付

  1. 微信支付拉起收银台,再回来QQ页面,会刷新页面。通过ua中是否包含tim/qq/,加上判断是否安卓客户端,来判断是否在安卓端TIM和QQ内进行的微信支付,此时前端加上redirect_url。
function isQQclient() {
	  var ua = navigator.userAgent.toLowerCase(); 
	  if(ua.indexOf("tim/") > -1 || ua.indexOf("qq/") > -1){
	    return true
	  }
}

二、处理办法

  1. 在ios移动端下的微信支付,如果当前浏览器非手机QQ|手机百度|UC|360|QQ浏览器|搜狗浏览器,则统一由web来增加redirect_url重定向,并且携带订单信息等参数,当用户微信支付完成后,跳转到设定的页面。
  2. 在安卓QQ和TIM的微信支付,同样加上redirect_url,来处理刷新页面的问题。