微信公众号支付浏览器识别 自动获取(php实现)

这里不讲具体实现只讲如何测试微信内置浏览器如何自动获取对应支付方式的实现。

事情是这样的,因为目前需要做一个支付公众号支付,原来有支付宝pc,支付宝h5,支付宝app,微信H5,微信app,微信pc,鉴于微信公众号是微信内置浏览器访问需要有微信浏览器的模拟环境才可以,也就是说你如果想要封装一个总的支付方法并且可以自动检测,检测微信内置浏览器获取对应的支付方式是其中必要的一环。

微信内置浏览器(wxpay_jsapi)

核心代码

if(非微信内置浏览器支付){
	排除wxpay_jsapi支持ali_h5,wx_h5
}else{
	if(判断是否是微信小程序){
		//排除 wxpay_h5  alipay_h5  wxpay_jsapi支持小程序
	}else{
		//微信内置浏览器
		排除alipay_h5,wxpay_h5 支持wxpay_jsapi
	}
	
	//
}
public function getPaymentOpenList($condition = array()) {
        $condition['payment_state'] = self::STATE_OPEN;
        if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') == false) {
            $condition['payment_code'] = array('not in',array('wxpay_jsapi','wxpay_minipro','allinpay_h5')); 
        }else{
            if( strpos($_SERVER['HTTP_USER_AGENT'], 'miniprogram') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'miniProgram') !== false ){
                $condition['payment_code'] = array('not in',array('wxpay_h5','alipay_h5','wxpay_jsapi'));
           }else{
                $condition['payment_code'] = array('not in',array('wxpay_h5','alipay_h5'));
           }
         }
	  return db('payment')->where($condition)->select();
   }       

查了很多网址,

有说这样的,

第一步;
写一个静态页面
<script type="text/javascript">
        window.onload = function() {
            isWeixinBrowser();
        }
        //判断是否微信浏览器
        function isWeixinBrowser() {
            var ua = navigator.userAgent.toLowerCase();
            var result = (/micromessenger/.test(ua)) ? true : false;
            if (result) {
                console.log('你正在访问微信浏览器');
            }
            else {
                console.log('你访问的不是微信浏览器');
            }
            return result;
        }
    </script>

第二步选择谷歌浏览器
More Tools -----Network condition打开Network condition窗口
User agent选项,选择Custom(自定义),然后在下面的文本框中输入Android或者Ios的UA就可以了

了解安卓微信和Ios微信的UA(User agent:用户代理)

安卓微信UA: mozilla/5.0 (linux; u; android 4.1.2; zh-cn; mi-one plus build/jzo54k) applewebkit/534.30 (khtml, like gecko) version/4.0 mobile safari/534.30 micromessenger/5.0.1.352  

Ios微信UA:  mozilla/5.0 (iphone; cpu iphone os 5_1_1 like mac os x) applewebkit/534.46 (khtml, like gecko) mobile/9b206 micromessenger/5.0 

第三步测试,本人亲测有效,但是因为我的程序是post请求而且还要传输header参数,没法在浏览器模拟,即使我安装了advanced rest client application 也无法实现。
然后我访问了程序按着测试的步骤又试了一遍还是获取不到。
所以这个暂时还没发能达到实现微信浏览器的功能。

然后我默默的打开了微信web开发工具。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值