建行B2B支付回调参数乱码现象解析
log.Debug("Request Absolute Uri:" + this.Request.Url.AbsoluteUri);
//GBK解析
BinaryReader reader = new BinaryReader(this.Request.InputStream);
Byte[] bs = reader.ReadBytes((int)this.Request.InputStream.Length);
String parameter = HttpUtility.UrlDecode(Encoding.GetEncoding("ISO-8859-1").GetString(bs), Encoding.GetEncoding("GBK"));
NameValueCollection parameterDic = HttpUtility.ParseQueryString(parameter);
if (parameterDic != null && parameterDic.Count > 0)
{
foreach (String key in parameterDic.Keys)
{
log.Debug("Query Param Key:" + key + " Value:" + parameterDic[key]);
}
}
服务端通知采用的GET方式,更郁闷的时,建行竟然对中文参数不做UrlEncode操作,直接用GBK编码回调过来,害得我们浪费了很长时间,还是从最原始的字节码出发,代码如下:
log.Debug("Request Absolute Uri:" + this.Request.Url.AbsoluteUri);
IServiceProvider provider = (IServiceProvider)HttpContext.Current;
HttpWorkerRequest worker = (HttpWorkerRequest)provider.GetService(typeof(HttpWorkerRequest));
byte[] bs = worker.GetQueryStringRawBytes();
String queryString = Encoding.GetEncoding("GBK").GetString(bs);
log.Debug("Query String:" + queryString);
NameValueCollection querys = HttpUtility.ParseQueryString(queryString);
if (querys != null && querys.Count > 0)
{
foreach (String key in querys.AllKeys)
{
log.Debug("Query Param Key:" + key + " Value:" + querys[key]);
}
}
转载于:https://www.cnblogs.com/heroking2000/archive/2010/05/28/1746343.html
建行B2B支付回调参数乱码现象解析相关推荐
- 建行B2B支付回调参数乱码现象解析(转)
建行B2B支付采用Java开发,页面回调采用POST提交方式,编码为GBK.而我们的系统为ASP.NET,编码UTF-8.通过Request获取的参数是乱码,无奈之下,只能从InputStream解析 ...
- [转]建行B2B支付回调参数乱码现象解析
问题是这样出现的:在进行建行B2B网银在线支付时,建行在回调时采用POST方式提交,编码方式为GBK,而我们的系统为ASP.NET,编码UTF-8.通过Request获取的参数是乱码. 题是这 解决办 ...
- Request 接收参数乱码原理解析
起因: 今天早上被同事问了一个问题:说接收到的参数是乱码,让我帮着解决一下. 实际情景: 同事负责的平台是Ext.js框架搭建的,web.config配置文件里配置了全局为"GB2312&q ...
- 关于支付回调的一些思考
前段时间在工作中又一次接触到了公司关于支付相关的业务领域,于是又一次重新回顾了工作中使用的支付框架. 之前写过的很多篇文章都是先介绍整体背景,再深入到每一点去做分析,今天打算换种方式,尝试从 why ...
- 微信,支付宝支付回调的入参处理方法
微信的支付回调为xml格式.支付宝回调为json格式.返回的格式如何处理 首先看下回调的入参经过处理后长啥样. 微信的支付回调: 支付宝的支付回调: 微信的支付回调处理: StringBuilder ...
- 微信支付配置参数:支付授权目录、回调支付URL
一.开通微信支付的首要条件是:认证服务号或政府媒体类认证订阅号(一般认证订阅号无法申请微信支付) 二.微信支付分为老版支付和新版支付,除了较早期申请的用户为老版支付,现均为新版微信支付. 三.公众平台 ...
- 七牛文件上传回调以及解析回调参数
可参考七牛官网文档:https://developer.qiniu.com/kodo/sdk/1239/java 实现以下功能要引入七牛的sdk <!-- 七牛客户端组件包 -->< ...
- 企业微信通讯录回调密文解析及微信支付回调密文解析异常处理
企业微信通讯录回调密文解析及微信支付回调密文解析异常处理 产生异常表现: javax.crypto.IllegalBlockSizeException: Input length must be mu ...
- 汉字乱码现象的分类解析
一.汉字乱码现象的分类 汉字乱码现象大致可分成四类:网页.文本.文档和文件乱码.第一类是由于港台的繁体中文大五码(BIG5)与大陆简体中文(GB2312)不通用造成的:第二类是Win9X/Win2K系 ...
最新文章
- 从程序语言排行榜来解读IT及Web的发展
- Pokemon Go火了,他却要破产了...
- APPium-Xpath,swipe练习
- 曲线相似度衡量——曲线距离计算Fréchet distance详解与python计算
- mysql性能测试工具之sysbench
- 透明png图片和素材免费下载网站
- 分类,等级,或者有序变量如何进行多因素Cox回归 变量的类型决定了最终结果的reference
- 端到端语音识别 ESPnet ASR脚本流程(asr.sh)
- 什么是DOM0,DOM2,DOM3?
- js问号点的作用(?.)和问号问号(??)的用法
- 传奇服务器人物技能怎么修改,传奇服务端上线0级技能,直接设置3级技能的设置方法...
- 2022-2027中国内科缝合线行业应用形势与需求前景预测报告
- opencv-python——调用摄像头录制并保存视频
- 【Shader特效10】体积雾特效的使用
- Kubernetes单机创建MySQL+Tomcat演示程序:《Kubernetes权威指南》第一章demo报错踩坑
- Vue 艺术字体下载、设置
- 微信小程序登录一键登录,出现异常,报错40029,状态消息
- 以太坊柏林升级前的紧急刹车
- 江西省中小学生学籍管理使用相关
- java开发台球的图片_Java模拟桌球打击处理及绘制
热门文章
- ftp文档服务器设置,ftp服务器基本设置
- html文字置顶标签,HTML的marquee标签怎么用?
- 在java中添加源_关于Java:如何在Android Studio中添加链接的源文件夹?
- zip转直链php,蓝奏网盘直链转换器
- WIN10远程连接时提示内部错误
- WebStorm使用教程
- js获取checkbox值的方法
- 解决未知的服务器标记“asp:ListView”。
- PHP企业级开发环境配置全攻略-IDE+SVN++(转)
- android dialog 点击确定不消失,AlertDialog点击按钮不消失的实现方法