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

  中午去吃饭的时候,发现一家店里只有一个支付二维码,支付宝和微信扫一扫之后都能支付 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

 

posted @   刘一二  阅读(1339)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示