聚合支付二维码如何实现自动识别扫码客户端跳转相应支付页面
前言
前面有一篇《聚合支付之流程概述》和大家聊了一下关于聚 合 支 付的一个简单流程。很多小伙伴私信我,如何实现聚合支付码的自动跳转呢?
其实,刚开始接触的时候我也很迷茫,一个静态的二维码,如何去判断他是微信、支付宝、翼支付、云闪付亦或是其他银行的app扫码的动作?怎们进行页面的跳转就成了一个难题!!!
要实现的效果
先说说,要想实现的具体功能是如何的?
1、在我们预先生成的批量二维码,在没有绑定具体商户的情况下,扫描这个二维码,跳转到响应的宣传页面。
2、当我们预先生成的二维码绑定了具体商户的情况下,微信扫描二维码跳转到微信收银台页面,支付宝扫描二维码跳转支付宝收银台页面。其他的各款app如果做了相应的开发的,一样的逻辑,跳转相应的收银台支付页面。
3、当我们的没有对接过的app来扫码,则给他一个提示页面,告诉他请用我们对结果的,诸如微信、支付宝、翼支付、云闪付来扫一扫。
实现的过程逻辑
首先,我先告诉大家一个明确的结果,就是二维码的内容,其实很好理解,就是我们的请求接口域名+我们的二维码内容,如:"https://qr.xxx.abcpay.com/19090400655255256993"这么一个链接。
那么会有同学问了,这么一个链接如何实现跳转呢?
我来说一下我的思路,我们可以理解上面这个链接就是一个接口地址,19090400655255256993为此二维码的唯一标识,这个唯一标识可以理解为钱6位为当前日期,中间10位按照自己的规则,最后4位则为生成的顺序号。
根据唯一标识,查看是否绑定了商户,没有绑定商户则返回宣传页。
微信侧可以返回小程序的具体页面(或者也可以是固定的宣传页面),其他的客户端也可以跳转固定宣传页面。
当绑定了商户之后,则返回相对应的收银台,这里会给大家贴出代码!
实现代码
应该很简单,也很容易理解,就是判断userAgent是ALIPAYCLIENT还是MICROMESSENGER 就可以了。
ALIPAYCLIENT:支付宝支付
MICROMESSENGER:微信支付
前端页面的实现
前端扫描二维码显示了其对应的支付渠道,html的页面代码如下
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>支付方式的判断</title><meta name="viewport" content="width=device-width; initial-scale=1.0">
</head>
<body>
<div id="pay-id" style="margin-top: 100px;font-weight: bold;text-align: center;
font-size: 20px;">
</div>
</body>
<script type="text/javascript" >function payType() {var userAgent = window.navigator.userAgent.toUpperCase();if (userAgent.indexOf('ALIPAYCLIENT') > 0) {return '支付宝支付';}if (userAgent.indexOf('MICROMESSENGER') > 0) {return '微信支付';}return '不明支付方式';}var info = payType();var div = document.getElementById("pay-id");div.innerHTML = info;
</script>
</html>
后端代码实现
java后端代码的其实原理是和前端一致的,也就是判断 userAgent 是ALIPAYCLIENT还是MICROMESSENGER。
@RestController
public class InfoController {@RequestMapping("{id}")public String getPayType(@PathVariable("id") Long id,HttpServletRequest request) throws Exception {// TODO 具体的 业务逻辑这里省略。只保留了判断是微信还是支付宝的判断String userAgent = request.getHeader("User-Agent").toUpperCase();String payType = null;if (userAgent.indexOf("MICROMESSENGER") > 0) {payType = "微信支付";} else if (userAgent.indexOf("ALIPAYCLIENT") > 0) {payType = "支付宝支付";}//TODO 根据 payType 的支付方式生成相应支付订单return null;}
}
好了,今天关于聚合支付二维码如何实现自动识别扫码客户端跳转相应支付页面就到这里。
欢迎大家点击下方卡片,关注《coder练习生》
聚合支付二维码如何实现自动识别扫码客户端跳转相应支付页面相关推荐
- 聚合支付二维码生成原理
聚合支付二维码生成原理 聚合支付平台提供平台支付URL,生成统一的支付二维码.当消费者根据二维码扫描时,聚合支付平台根据扫描者浏览器类型判断支付类型,并提交参数给聚合支付平台支付处理接口处理.平台支付 ...
- 支付宝支付 第九集:产品数据和支付二维码对接
支付宝支付 第九集:产品数据和支付二维码对接 一.问题 javascript中单引号和双引号的区别是什么? vue中的:作用 v-bind指令 二.代码 目录结构 更新AlipayServiceImp ...
- 支付宝支付 第六集:生成支付二维码
支付宝支付 第六集:生成支付二维码 一.资源 支付宝沙箱显示APP-ID错误:我的原因是支付宝网关地址写错了 支付宝沙箱环境报 invalid-app-id 错误原因: 无效的AppID参数 错误 支 ...
- 支付二维码整合 - 三码合一支持支付宝、QQ、微信
支付二维码整合 - 三码合一支持支付宝.QQ.微信 1. 前提:获取各个二维码的具体内容 在写代码前,我们需要先获取不同支付方式的二维码内容.很简单,只需要打开各个支付码,截图,然后随便找个可以扫码的 ...
- pc端生成支付宝支付二维码
验签类RSA.php <?php namespace App\Library; class RSA{ /** * RSA签名 * @param $data 待签名数据 ...
- SpringBoot接入支付宝沙箱返回支付二维码
支付宝开放平台 扫码登录支付宝开放平台 沙箱环境 沙箱环境介绍 沙箱控制台 应用网关:该地址用于接收开放平台的异步通知.目前沙箱环境不需要配置此参数: 授权回调地址:第三方应用授权或获取用户信息中用于 ...
- 前端 js 微信 支付二维码
这里使用了 js 以及一个网上的工具包,巨j2简单的生成了微信的支付二维码 文章目录 这里使用了 js 以及一个网上的工具包,巨j2简单的生成了微信的支付二维码 下载微信二维码包 生成微信二维码 事后 ...
- 一条语句完成微信、支付宝支付,生成支付二维码
PayApiFun.dll这个动态库中包含了:微信付款码支付.生成微信支付二维码扫码支付.按商户单号查询微信支付状态.关闭未支付的微信订单.支付宝付款码支付.生成支付宝支付二维码扫码支付.按商户单号查 ...
- 支付宝支付二维码显示在商家网站页面,不跳转到支付宝?
如何控制二维码显示在商家电脑网站页面?根据官方文档说明,是可以实现的. 以下段落摘自支付宝官方文档 电脑网站支付本身是调用接口跳转到支付宝收银台页面显示二维码和账户登录方式支付的. 如果需要将该二维码 ...
最新文章
- MPSOC之3——centos环境配置及petalinux安装及使用
- python里的resize_Python玩转蔡徐坤
- PHP保留小数三种方法
- POI文件导入:代码实现-解析Excel构造用户列表
- 日期相减 python_如果将excel的数字转化为日期(高级教程)
- Android官方开发文档Training系列课程中文版:支持不同的设备之支持不同的平台版本
- einops.rearrange、repeat、reduce==>对维度进行操作
- python中的ls是什么意思_Python学习之旅:使用Python实现Linux中的ls命令
- VLAN间路由:每个VLAN一个物理连接,单臂路由,三层交换
- [数位dp][状压dp] Jzoj P3458 密码
- 动态规划实战10 leetcode-64. Minimum Path Sum
- 微信小程序如何引入直播组件?
- 简洁但功能强大的EditPlus
- ERROR 2002 HY000 Can't connect to local MySQL server thro
- Android 仿照微信查看大图
- 哈希算法原理与应用:确保数据完整性和安全性的关键技术
- MySQL关系型数据库
- Unreal Engine UE4开发技巧
- FreeMind无法打开
- windows快捷键+组合键+搜索命令
热门文章
- 详解模板引擎工作机制
- 使用Newtonsoft.Json.dll(JSON.NET)动态解析JSON、.net 的json的序列化与反序列化(一)
- 华为麦芒 6 上手评测:能否继续麦芒 5 的辉煌?
- B16小鼠黑色素瘤细胞膜包覆纳米载体|MV3黑色素瘤细胞膜磁性纳米粒 粒径控制:100-150 nm
- 【openpyxl】python处理excel——删除指定行
- 如何用css设置文字的聚光灯效果
- 战神引擎服务器维护中怎么解决,战神引擎提示:获取该区补丁失败.的解决方法...
- 一年级的小孩没有练过书法,写字写这样行吗?
- 校园一卡通的快速破解
- 查看服务器的内网及外网IP