You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在ASP.NET Core中如何获取持卡人的浏览器详细信息(SagePay场景)

SagePay支付网关所需浏览器信息获取方案

一、各字段获取方法

前端JavaScript采集(多数客户端专属信息需通过JS获取)

  • Browser Color Depth:使用screen.colorDepth或screen.pixelDepth,现代浏览器中两者返回值一致。
  • Browser JavaEnabled:调用navigator.javaEnabled(),但目前主流浏览器已默认禁用Java插件,返回值基本为false。
  • Browser Javascript Enabled:只要能执行JS代码,就说明JS已启用;若需后端确认,可在页面加载后通过AJAX给后端发标记,或用<noscript>标签生成特殊请求告知后端JS未启用。
  • Browser Language:用navigator.language获取用户首选语言(如zh-CN),或navigator.languages获取完整语言设置数组。
  • Browser Screen Height/Width:分别通过screen.height和screen.width获取屏幕分辨率。
  • Browser TZ(时区偏移分钟数):调用new Date().getTimezoneOffset(),注意返回值为UTC时间减去本地时间,例如UTC+8时区返回-480。
  • Client WindowSize:用window.innerWidth和window.innerHeight获取当前浏览器视口宽高;兼容旧浏览器可使用document.documentElement.clientWidth和document.documentElement.clientHeight。
  • Browser UserAgent:通过navigator.userAgent获取,包含浏览器、操作系统等标识信息。

后端获取(依赖请求头或服务器环境)

  • Browser Accept Header:从HTTP请求头的Accept字段读取,不同后端语言的获取方式:
    • PHP:$_SERVER['HTTP_ACCEPT']
    • Node.js:req.headers.accept
    • Java Servlet:request.getHeader("Accept")
  • Browser IP:从服务器获取客户端请求IP,若使用反向代理(如Nginx),需读取X-Forwarded-For等代理头:
    • PHP:$_SERVER['REMOTE_ADDR'](直接连接IP)或$_SERVER['HTTP_X_FORWARDED_FOR'](代理后真实IP)
    • Node.js:req.ip或req.headers['x-forwarded-for']
  • Browser UserAgent:也可从请求头的User-Agent字段获取,和前端结果一致,后端获取更不易被篡改。

二、可用工具包

大部分信息通过原生JS和后端内置功能即可获取,无需额外工具包。若需简化UserAgent解析、兼容处理等场景,可考虑:

  • 前端:bowser库,能解析UserAgent字符串,快速判断浏览器类型、版本、操作系统等信息。
  • 后端:
    • PHP:get_browser()函数(需配置browscap.ini文件),可解析UserAgent并返回浏览器详细参数。
    • Node.js:useragent库,支持UserAgent的解析与格式化。

内容的提问来源于stack exchange,提问作者hanushi-thana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 06:31:14