如何判断扫码的客户端是微信还是支付宝
User Agent格式
User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。
浏览器的 UA 字串
标准格式为: 浏览器标识 (操作系统标识; 加密等级标识; 浏览器语言) 渲染引擎标识 版本信息
微信APP:Mozilla/5.0 (iPhone; CPU iPhone OS 11_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15G77 MicroMessenger/6.7.2 NetType/4G Language/zh_CN 支付宝APP:Mozilla/5.0 (iPhone; CPU iPhone OS 11_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15G77 NebulaSDK/1.8.100112 Nebula PSDType(1) AlipayDefined(nt:4G,ws:320|504|2.0) AliApp(AP/10.1.32.600) AlipayClient/10.1.32.600 Alipay Language/zh-Hans
- 获取user-Agent 之后,
- 通过识别MicroMessenger或者AlipayClient这样的关键字应该就可以判断是微信还是支付宝
async index() { let header = this.ctx.request.header let userAgent = header['user-agent'] let content = '我既不是微信也不是支付宝' if ( userAgent.match(/MicroMessenger/) == 'MicroMessenger' ) { console.log('WeiXIN') content = '微信扫码' } //判断是不是支付宝 if (userAgent.match(/AlipayClient/) == 'AlipayClient') { console.log('Alipay') content = '支付宝扫码' } let title = '我是首页' await this.ctx.render('index', { title: title, content: content }) }