网站首页 > 技术教程 正文
转载|出处:http://t.cn/R8MGN2W
最近折腾了一下合并收款码,简单记录一下折腾的过程,方法不唯一,只是提供一种思路,如果各位大佬有更加简单粗暴的办法,那就更好了。
原理
首先解析出三个二维码的内容,用 Nginx 判断 User agent 后,返回302,跳转到对应的 URL。
支付宝
支付宝的收款码内容大概是这个样子的:
HTTPS://QR.ALIPAY.COM/FKX04064LA1PNS8SI7BLE4
抓了一下支付宝的 UA,大概是这个样子的:
Mozilla/5.0 (Linux; U; Android 6.0.1; zh-CN; A0001 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/40.0.2214.89 UCBrowser/11.3.8.909 UCBS/2.10.1.4 Mobile Safari/537.36 Nebula AlipayDefined(nt:WIFI,ws:432|0|2.5) AliApp(AP/10.0.12.042101) AlipayClient/10.0.12.042101 Language/en useStatusBar/true
然后就有了下面这段 Nginx 配置
if ( $http_user_agent ~* "AlipayClient" ) { return 302 "HTTPS://QR.ALIPAY.COM/FKX04064LA1PNS8SI7BLE4"; }
经过测试,支付宝正常弹出支付窗口。
微信&QQ
同理,得到了下面这段 Nginx 配置
if ( $http_user_agent ~* "MicroMessenger" ) { return 302 "wxp://f2f0adN69vNDsE9d2xVmp258P9cAqEU_07EU"; } if ( $http_user_agent ~* "QQ" ) { return 302 "https://i.qianbao.qq.com/wallet/sqrcode.htm?m=tenpay&a=1&u=1798390978&ac=EE86F6B43A000048EEABEE3E0CA8BE91F063DC3C6DACAD291A98B1CDF4108FA9&n=Zohar Wang&f=wallet"; }
但是经过测试,微信和 QQ 都不能正常弹出支付窗口,搜了一下,貌似是因为调用微信和 QQ 的支付需要申请一个特殊的支付接口,而且相当麻烦,不然只能扫收款码进行支付。
但是,长按二维码识别,也是可以正常弹出支付窗口,于是,曲线救国,用 Photoshop 做了两张图:
然后,用 Nginx 判断 User agent 后,跳转到相应的图片。
经过测试,微信和 QQ 正常弹出支付窗口。
小插曲
我最初使用的是 pay.iwch.me 这个域名做跳转,但微信扫描后出现下图的风险通知:
更换至 pay.yecdn.com 域名后,没有再次出现这个风险通知,初步怀疑是 iwch.me 域名没有备案,而 yecdn.com 有备案的原因。但是因为我没有其他有备案的域名做测试,所以不能确定是不是因为域名没备案而导致的风险通知。
总结
完整的 Nginx 配置如下:
server { listen 80; listen [::]:80; listen 443 ssl http2; listen [::]:443 ssl http2; server_name pay.yecdn.com; server_tokens off; location /generate_204 { return 204; } location /zohar { if ( $http_user_agent ~* "AlipayClient" ) { return 302 "HTTPS://QR.ALIPAY.COM/FKX04064LA1PNS8SI7BLE4"; } if ( $http_user_agent ~* "MicroMessenger" ) { return 302 "https://static.yecdn.com/static/pay/zohar-wechat.png"; } if ( $http_user_agent ~* "QQ" ) { return 302 "https://static.yecdn.com/static/pay/zohar-qq.png"; } } location / { return 200 Success; default_type text/html; } include enable-ssl-yecdn.conf; }
最后,生成一个跳转域名的二维码即可使用。
参考:http://t.cn/R8Mqhfc
猜你喜欢
- 2024-10-11 从零开始搭建HTTPS服务(20台机小型网吧搭建无盘系统教程从零开始)
- 2024-10-11 LNMP环境(nginx)安装SSL安全证书,全站开启HTTPS访问
- 2024-10-11 ubuntu,添加并使用https(ubuntu 添加环境变量)
- 2024-10-11 https免费证书获取(免费https证书地址栏显示不安全)
- 2024-10-11 如何在HAProxy LOAD_BALANCER上设置SSL-HTTPS?
- 2024-10-11 用Https方式访问Harbor-1.9版本(直接访问https://www.muoujiejie.com)
- 2024-09-21 Nginx鉴权,验证token(nginx 验证用户凭据)
- 2024-09-21 使用cert-manager实现Ingress https--详解
- 2024-09-21 一个命令,让你的网站支持https(这是一个命令,斯塔纳的进攻是个命令德语怎么说)
- 2024-09-21 nginx反向代理 https内部定向到http报302问题解决方案,「亲测」
你 发表评论:
欢迎- 最近发表
-
- Win10 TH2正式版官方ESD映像转换ISO镜像方法详解
- 使用iso镜像升级到Windows 10的步骤
- macOS Ventura 13.2 (22D49) Boot ISO 原版可引导镜像
- 安利一个用ISO镜像文件制作引导U盘的的小工具RUFUS
- CentOS 7使用ISO镜像配置本地yum源
- 用于x86平台的安卓9.0 ISO镜像发布下载:通吃I/A/N、完全免费
- AlmaLinux 9.6发布:升级工具、初步支持IBM Power虚拟化技术
- Rufus写入工具简洁介绍与教程(写入模式)
- 新硬件也能安装使用了,Edge版Linux Mint 21.3镜像发布
- 开源工程师:Ubuntu应该抛弃32位ISO镜像
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)