Last active
October 31, 2024 02:46
-
-
Save myesn/ea5a68f68ce621ebf28ef73c9a160fad to your computer and use it in GitHub Desktop.
通过 User-Agent 请求头区分扫码端应用,可实现一码适配多平台支付
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const http = require("http"); | |
const hostname = "0.0.0.0"; // 允许局域网内访问 | |
const port = 3000; | |
const server = http.createServer((req, res) => { | |
let clientDisplayName = undefined; | |
const userAgent = req.headers["user-agent"]; | |
if (userAgent.includes("MicroMessenger")) { | |
// user-agent: Mozilla/5.0 (iPhone; CPU iPhone OS 17_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.52(0x18003426) NetType/WIFI Language/zh_CN | |
clientDisplayName = "微信扫码"; | |
} else if (userAgent.includes("AliApp")) { | |
// alipay | |
// user-agent: Mozilla/5.0 (iPhone; CPU iPhone OS 17_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/21G93 Ariver/1.1.0 AliApp(AP/10.6.36.6000) Nebula WK RVKType(1) AlipayDefined(nt:WIFI,ws:414|832|2.0) AlipayClient/10.6.36.6000 Alipay Language/zh-Hans Region/CN NebulaX/1.0.0 DTN/2.0 | |
clientDisplayName = "支付宝扫码"; | |
} else { | |
clientDisplayName = "未知客户端扫码\r\n" + userAgent; | |
} | |
// 返回响应 | |
res.statusCode = 200; | |
res.setHeader("Content-Type", "text/plain; charset=utf-8;"); | |
res.end(clientDisplayName); | |
}); | |
server.listen(port, hostname, () => { | |
console.log(`服务器运行在 http://${hostname}:${port}/`); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment