微信QQ支付宝三合一收款二维码实现原理

14 篇文章 1 订阅
订阅专栏

收款码三合一大致原理如下:

第一步、解析用户上传的微信支付、QQ钱包、支付宝收款二维码,获取收款链接地址。

第二步、用自己的网站程序生成一张二维码的图片,二维码链接大概如下:

http://接口域名/qr/KpZPaiLR.html

这个链接的意思就是传一个加密字符串(唯一的键)到后端控制器,然后就开始判断扫描二维码的用户是微信访问,还是QQ,或者支付宝,根据用户访问性质的不同,跳转到相应的收款链接上。也就是说,你是微信扫的,我就跳转到微信的页面!

生成二维码的页面代码: 

<!doctype html>
<html>

	<head>
		<meta charset="utf-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="width=device-width, initial-scale=1">
		<title>微信QQ支付宝三合一收款码合成</title>
		<style>
			* {
				margin: 0;
				padding: 0;
				font-family: Microsoft yahei;
			}
			
			body {
				background-color: #fff;
			}
			
			.code-item {
				width: 100%;
				max-width: 400px;
				margin: 0 auto;
				padding-bottom: 1px;
				display: none;
				background-color: #5c92ef;
			}
			
			.code-title {
				height: 100px;
				background-color: #f2f2f2;
				background-position: center;
				background-repeat: no-repeat;
				background-size: 50%;
			}
			
			.code-area {
				text-align: center;
			}
			
			.code-area>img {
				margin: 80px 0;
				width: 60%;
				min-width: 100px;
			}
			
			.code-footer {
				height: 80px;
				text-align: center;
				background-color: #fff;
				color: #666;
				line-height: 80px;
				font-size: 20px;
				margin: -2px 2px 2px 2px;
			}
			
			.code-title {
				background-image: url("https://z3.ax1x.com/2021/07/02/R6wMUs.png");
			}
			
			#code-qq {
				background-color: #54b4ef;
			}
			
			#code-wechat {
				background-color: #54bc6e;
			}
		</style>
		<script>
			var setting = {
				// 在以下双引号中粘贴【QQ钱包】收款链接
				qqUrl: "https://i.qianbao.qq.com/wallet/sqrcode.htm?m=tenpay&a=1&u=15577969&ac=CAEQ8ea2Bxjy_7f5BQ%3D%3D_xxx_sign&n=AHer.&f=wallet",

				// 在以下双引号中粘贴【微信】收款链接
				wechatUrl: "wxp://f2f0-UmkL9Q03rD7k4_WpACEuNpw9hwG4jWs",

				// 在以下双引号中粘贴【支付宝】收款链接
				aliUrl: "https://qr.alipay.com/fkx1184170x01edfokwqd3e",

				// 用于动态生成二维码的API,如果api链接失效,请自行更换
				qrcodeApi: "https://api.pwmqr.com/qrcode/create/?url="
				/*
				备用二维码api:
				https://api.pwmqr.com/qrcode/create/?url=
				https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=
				https://my.tv.sohu.com/user/a/wvideo/getQRCode.do?text=
				*/
			}
		</script>
	</head>

	<body>
		<!-- 万能收款码展示区域 -->
		<div class="code-item" id="code-all">
			<div class="code-title"></div>
			<div class="code-area">
				<img id="page-url" src="" title="三合一收款码">
			</div>
			<div class="code-footer">扫描以上二维码向我付款</div>
		</div>

		<!-- QQ钱包二维码展示区域 -->
		<div class="code-item" id="code-qq">
			<div class="code-title"></div>
			<div class="code-area">
				<img id="qq-url" src="" title="QQ钱包二维码">
			</div>
			<div class="code-footer">长按以上二维码向我付款</div>
		</div>

		<!-- 微信二维码展示区域 -->
		<div class="code-item" id="code-wechat">
			<div class="code-title"></div>
			<div class="code-area">
				<img id="wechat-url" src="" title="微信支付二维码">
			</div>
			<div class="code-footer">长按以上二维码向我付款</div>
		</div>

		<script>
			if(navigator.userAgent.match(/Alipay/i)) {
				// 支付宝
				window.location.href = setting.aliUrl;
			} else if(navigator.userAgent.match(/MicroMessenger\//i)) {
				// 微信
				console.log(setting.qrcodeApi + urlEncode(setting.wechatUrl));
				document.getElementById("wechat-url").src = setting.qrcodeApi + urlEncode(setting.wechatUrl);
				document.getElementById("code-wechat").style.display = "block";
			} else if(navigator.userAgent.match(/QQ\//i)) {
				// QQ
				document.getElementById("qq-url").src = setting.qrcodeApi + urlEncode(setting.qqUrl);
				document.getElementById("code-qq").style.display = "block";
			} else {
				// 其它,显示“万能码”
				document.getElementById("page-url").src = setting.qrcodeApi + urlEncode(window.location.href);
				document.getElementById("code-all").style.display = "block";
			}

			/*****************************************
			 * url编码函数
			 * 输入参数:待编码的字符串
			 * 输出参数:编码好的
			 ****************************************/
			function urlEncode(String) {
				return encodeURIComponent(String).replace(/'/g, "%27").replace(/"/g, "%22");
			}
		</script>

	</body>

</html>
博客
工作室Github开源项目,走过路过千万别错过哟!
11-02 3716
最近开始使用github仓库管理项目,个人开发的Project都直接开源了,运用到了很多技术栈,非常适用刚入门的新手小白学习参考。如果我的项目对你有所帮助,欢迎给个Star,非常感谢!如代码有不足之处,也可以指出来,大家一起交流学习。
博客
各个开发工具格式化代码的快捷键
07-26 4943
IntelliJ IDEA:Ctrl+Alt+Lphpstorm:Ctrl+Alt+Landroid studio:Ctrl+Alt+Leclipse:Ctrl + Shift + FHBuilder:Ctrl + Shift + FVisual Studio:ctrl+K+F(或者ctrl+K+D)微信小程序工具:Shift+Alt+F之所以收集这些,主要是因为使用的开发工具比较多,经常换着写,一下子就把快捷键给搞混了。...
博客
Thinkphp5在mode模型里查询数据库字段不为空
09-14 500
【代码】Thinkphp5在mode模型里查询数据库字段不为空。
博客
wordpress框架自定义添加page分页功能
07-24 1032
我这个函数是按网站需求做了一些调整和修改,因为我首页只显示三个分类,直接用$wp_query->max_num_pages查总页码的话是不准的,所以你要根据自己的网站数据来调整这个函数的代码。
博客
使用bat处理批量下载表情包图片
07-19 1001
如果是手工一个一个下载的话,要浪费很多时间,我们直接有windows系统上使用bat批处理命令实现。批量下载表情包.bat。批量下载表情包.bat。
博客
PHP解决模拟from表单get跳转时,浏览器提示不安全问题
07-06 732
【代码】PHP解决模拟from表单get跳转时,浏览器提示不安全问题。
博客
html+js自动弹出加QQ群的链接,每天只弹出一次
06-14 1306
【代码】html+js自动弹出加QQ群的链接,每天只弹出一次。
博客
解决windows10打开VMware Workstation的虚拟机就蓝屏问题
06-05 3979
打开虚拟机VMware,点击运行“Windows Server 2008 R2 x64”虚拟机,会提示“需要关闭hyper-V虚拟机才能运行”,因此接下来我们要关闭hyper-V。控制面板 → 程序和功能 → 启动或关闭Windows功能,“Hyper-V”取消勾选,勾选“Windows 虚拟机监控程序平台”和“虚拟机平台”,然后重启电脑。右键桌面的Wmware图标,选择属性 → 兼容性 → 兼容模式,勾选“以兼容模式运行这个程序”,选择Windows 8。☑ Windows 虚拟机监控程序平台。
博客
Thinkphp5根据IP地址获取定位地理位置,精准到城市
05-13 1798
根据IP地址获取用户所在的城市地理位置,网上有很多免费的API接口可以实现,但是接口响应比较慢,接口也受网速等因素影响,有时会很卡很卡,直接给用户造成非常不好的网站流畅度体验。因此,推荐大家直接使用离线IP库进行查询,查询速度快,而且也很准确。1、将cznet.zip上传到Thinkphp的扩展目录extend并解压;
博客
Thinkphp防XSS跨站脚本攻击漏洞
05-12 1838
XSS(Cross Site Scripting, 跨站脚本攻击), 在 Web攻击中比较常见的方式, 通过此攻击可以控制用户终端做一系列的恶意操作, 如 可以盗取, 篡改, 添加用户的数据或诱导到钓鱼网站等。上面那段黑客的xss脚本代码,主要是为了获取网站cookie,然后实现匿名访问。
博客
Thinkphp检测Token令牌,防跨站跨账户漏洞
05-11 435
以前真的不懂,也没想明白为什么要检查Token,感觉多此一举,毕竟用户都是要登录网站,才能进行操作,今天才发现自己的想法太天真了!不做Token检测的话,别人只要知道你的接口或者控制器方法名,很容易就可以进行跨站或者跨账户操作,比如张三,可以直接修改李四的登录状态,下面一起来学习如何避免这个漏洞。或者在ajax参数里加上token。2、所有的控制器都要继承这个。
博客
ueditor富文本编辑器上传木马图片或木马文件漏洞
04-27 1437
ueditor插件目录一般都自带index.html文件(完整demo文件),这个文件原来是用来测试插件功能的,但。插件目录下的index.html文件,删除不影响ueditor富文本编辑器的正常功能;
博客
Thinkphp获取项目最近更改变动的所有文件
04-25 526
企业级的网站项目都是要不断优化迭代更新的,做为一名后端程序员,在编写更新模块时,如何能快速获取最近修改的文件,然后打包压缩成更新补丁呢?
博客
CSS美化div滚动条样式
04-25 353
【代码】CSS美化div滚动条样式。
博客
如何无缝切换网站服务器?
03-11 469
三、新服务器的网站部署完成,并且能正常访问后,就是要考虑数据同步的问题了,网站是有用户在使用的,所以不能直接关掉旧服务器,修改的域名DNS也没那么快生效,用户访问的还是旧的服务器,有些站长可能会使用。(3)、将旧服务器网站配置里的数据库IP地址修改成新服务器的IP,目的就是让旧服务器的网站调用新服务器里的数据库,实现数据同步,远程访问其他服务器的数据库,网站相对来说会比较卡,但影响不是很大;四、修改域名DNS,解析到新服务器的IP上,我之前就是忘记了这一步,所以用户才反映说我网站变卡了。
博客
C#将Dictionary字典集合转换为json字符串
03-07 2537
需要引用Newtonsoft.Json.dll库(请自行下载对应的版本)
博客
C# list集合根据对象某个属性进行排序(降序或升序)
02-23 546
用委托和lambda来实现:public List<Vip>vipList = new List<Vip>();//排序vipList.Sort( delegate(Vip st1, Vip st2){ //降序排列 return st2.money.CompareTo(st1.money); //升序排列(颠倒 st1 和 st2 即可) //return st1.money.CompareTo(s.
博客
C#让子窗口紧靠父窗口右边(贴边显示),并随父窗口移动而移动
02-23 1364
C#开发简单又愉快,但随着软件的强大,功能也会越来越多,如果全都是子窗口弹窗显示,会让用户觉得很不友好,看着也不舒服。比较好的开发方案是使用“面板+用户组件”,整个软件就只有一个窗口,但这种方案的前提是要重构布局和代码,对于已经成型的软件,再去做这些工作,估计要花费很多时间。因为我要加的子窗口比较小,为了简单省事,我想直接让子窗口贴靠在父窗口右侧。
博客
使用WordPress快速搭建外贸网站教程
02-23 2533
一、下载安装1、首先前往官方下载wordPress框架,下载地址:Download | WordPress.org建议下载英文版本的,后台也建议安装英文语言的,为什么呢?因为咱们要搭建的是外贸网站,给外国人看的,如果你版本和后台设置为中文的,前台也会自动跟随被翻译成中文,另外比较重要的一点,我之前测试过,如果选择中文的版本,有很多外国的主题模板和插件安装会有问题。2、把下载好的安装包上传到我们的服务器,解压。3、我使用的搭建环境是宝塔Linux CentOS 7.9(Apache2.
博客
腾讯QQ生成二维码图片的api接口
02-18 627
腾讯QQ生成二维码图片的api接口

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

分类专栏

  • Android 64篇
  • PHP
  • PHP基础 101篇
  • ThinkPHP 78篇
  • Yii2 1篇
  • wordPress 3篇
  • discuz! 14篇
  • 前端开发
  • HTML 14篇
  • HTML5 15篇
  • CSS 26篇
  • Javascript 52篇
  • jQuery 28篇
  • Ajax 2篇
  • Element-UI(框架) 1篇
  • Layui(框架) 7篇
  • bootstrap(框架) 44篇
  • Vue.js 19篇
  • 微信小程序 46篇
  • 数据库
  • mysql 18篇
  • SQL Server 9篇
  • MongoDB 2篇
  • Java
  • JSP 6篇
  • java基础 30篇
  • JavaEE 15篇
  • SSM 5篇
  • SSH 9篇
  • Spring Boot 5篇
  • ASP 6篇
  • C# 96篇
  • Redis 3篇
  • Hadoop 7篇
  • Linux 28篇
  • Git 15篇
  • 面试题 3篇
  • 服务器 9篇
  • 汇编语言 3篇
  • 开发工具 1篇
  • IDEA 8篇
  • Eclipse 8篇
  • Android Studio 10篇
  • 技术教程 16篇
  • 操作系统 15篇
  • 生活常识 9篇

最新评论

  • Discuz!自动生成网站地图sitemap.xml文件

    Jenny66888: 遗憾不能用微信直接支付红包

  • Discuz!自动生成网站地图sitemap.xml文件

    Jenny66888: thanks very much!

  • Linux系统使用crontab命令实现秒级定时任务(例如:每隔几秒执行数据采集)

    xiao_cai_ji_isme: 可是我的命令有很多行怎么办

  • 微信小程序通过微信添加地址(wx.chooseAddress用法)

    qq_54349540: js代码不全啊

  • 【IntelliJ IDEA工具】spring boot使用JPA自动生成实体类(数据库表逆向工程自动生成带注释的实体类)

    weixin_43033611: 博主知不知道Generate POJOs.groovy如何调用idea的格式化模板(ctrl+alt+L)

最新文章

  • Thinkphp5在mode模型里查询数据库字段不为空
  • wordpress框架自定义添加page分页功能
  • 使用bat处理批量下载表情包图片
2023年21篇
2022年86篇
2021年108篇
2020年222篇
2019年161篇
2018年258篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳SEO优化公司上海设计公司网站报价洛阳企业网站制作推荐滨州网站制作梧州营销网站公司淮南百度竞价包年推广大运网页制作价格沧州优化南平seo网站推广推荐沧州SEO按效果付费公司甘南优化报价伊犁百度标王哪家好网站seo优化公司巴中品牌网站设计多少钱铜仁关键词排名价格内江网页设计哪家好丽水模板制作哪家好唐山seo价格深圳网络营销多少钱沈阳网站定制阿坝网络广告推广报价六安网站关键词优化宁德建设网站岳阳seo价格焦作优化哪家好金华百姓网标王推广公司布吉网站搜索优化推荐安阳百度竞价哪家好大理推广网站报价思茅SEO按天扣费价格安庆网站搜索优化价格歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化