支付宝、微信支付用同一二维码支付

  中午去吃饭的时候,发现一家店里只有一个支付二维码,支付宝和微信扫一扫之后都能支付 Oops!和同事讨论了一下,回头自己又做了测试。其实原理很简单。

  首先二维码是一个URL地址。无论是支付宝还是微信扫码后,都直接请求这个URL地址,在这个URL里根据HTTP请求头判断是扫码的是支付宝还是微信。如果是支付宝,就调用支付宝流程,如果是微信,就调用微信支付流程。

1     $userAgent = $_SERVER['HTTP_USER_AGENT'];
2     $userAgent = strtolower($userAgent);
3     if(strpos($userAgent, 'micromessenger') !== false){
4         //微信支付逻辑
5         echo "weixin";
6     }
7     if(strpos($userAgent, 'alipayclient') !== false){
8         //支付宝支付逻辑
9     }

微信浏览器请求和支付宝请求的区别

微信浏览器请求头userAgent

Mozilla/5.0 (Linux; Android 5.1.1; 2014813 Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile MQQBrowser/6.2 TBS/88888888 Safari/537.36 MicroMessenger/6.5.4.1000 NetType/WIFI Language/zh_CN

支付宝请求头userAgent

Mozilla/5.0 (Linux; U; Android 5.1.1; zh-cn; 2014813 Build/LMY47V) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 UCBrowser/1.0.0.100 U3/0.8.0 Mobile Safari/534.30 Nebula AlipayDefined(nt:WIFI,ws:360|640|2.0) AliApp(AP/10.0.2.012305) AlipayClient/10.0.2.012305 Language/zh-Hans useStatusBar/true

 

转载于:https://www.cnblogs.com/lhat/p/6404174.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值