微信支付 body不是UTF-8编码以及中文签名错误的问题
2019独角兽企业重金招聘Python工程师标准>>>
/** * MD5编码 * @param origin 原始字符串 * @return 经过MD5加密之后的结果 */ public static String MD5Encode(String origin) { String resultString = null; try { resultString = origin; MessageDigest md = MessageDigest.getInstance("MD5"); // resultString = byteArrayToHexString(md.digest(resultString.getBytes()));//原文件内容,可能原因是:win2003时系统缺省编码为GBK,win7为utf-8 resultString = byteArrayToHexString(md.digest(resultString.getBytes("utf-8")));//正确的写法 } catch (Exception e) { e.printStackTrace(); } return resultString; } private static String byteArrayToHexString(byte[] digest) {
StringBuffer hexValue = new StringBuffer();for (int i = 0; i < digest.length; i++) {int val = ((int) digest[i]) & 0xff;if (val < 16)hexValue.append("0");hexValue.append(Integer.toHexString(val));}return hexValue.toString();
}String sign = MD5Encode(parbuffer.toString());data.setSign(sign);HttpRequest httpRequest = HttpRequest.post("https://api.mch.weixin.qq.com/pay/unifiedorder");String x = xstream.toXML(data);httpRequest.body( StringUtil.convertCharset(x, "UTF-8", "ISO-8859-1"));HttpResponse response = httpRequest.send();String body = response.body();body = StringUtil.convertCharset(body, "ISO-8859-1", "UTF-8");
这样就把问题解决了 注意一下:给微信提交数据的时候需要是ISO-8859-1编码
httpRequest.body( StringUtil.convertCharset(x, "UTF-8", "ISO-8859-1"));
转载于:https://my.oschina.net/cng1985/blog/681415
微信支付 body不是UTF-8编码以及中文签名错误的问题相关推荐
- C# 微信JS-SDK之config接口注入权限验证invalid signature签名错误
文章目录 1.开发环境 2.我的代码 3.问题描述 4.问题分析 5.问题根源 6.解决办法 记一次使用微信JS-SDK分享接口,config接口注入权限验证失败, 提示invalid signatu ...
- 微信卡券开发-卡券领取config包装(附:卡券签名错误解决方案)
一.介绍 微信卡券领取的时候,调用js领取接口,需要给包装一个config,给js使用 开发的时候遇到了很多坑,在这里面记录一下 二.注意 1.卡券使用的jsapi_ticket,比较特殊,具体获取方 ...
- 微信支付 body不是UTF编码格式
eclipse环境 utf-8编码 数据库也是utf-8,Tomcat UTF-8编码 body编码不是UTF-8 解决地方有两个 一个是签名时MD5指定编码 加密前先转码(text 时候拼接数据) ...
- 微信支付-我遇到的那些问题
现在,越来越多公司,选择借微信的势来发展自己的平台,进入工作没多久,我也被告知了要对接微信支付的需求.原本以为这样的对接,跟着文档走,应该没多大的难度的,可是后来,我才发现,原来我太天真了.在此,留下 ...
- 微信支付生成签名和验签SDK源码分析
目录 一.签名分析 1.1 流程分析 1.构造签名串 2.计算签名值 3.设置请求头 二.源码级别分析 二.获取平台证书分析 三.验签分析 3.1 验签使用场景: 3.2 验证流程: 1.获取微信平台 ...
- 微信支付 postman_小刘同学微信支付接入全笔记
走上"码农"这条路已经快一年半啦,做过不少的Demo和项目,也接触了不少的业务场景,8000w的大数据量处理,QPS500+的并发优化,也算是在开发的这条路上踏出了入门向前的步伐: ...
- 实战微信支付 APIv3 接口(小程序的)
开场白直接引用官方文档的吧. 为了在保证支付安全的前提下,带给商户简单.一致且易用的开发体验,我们推出了全新的微信支付 APIv3 接口. 为啥不用官方 SDK? 官方 SDK 不错,只是依赖 Apa ...
- 微信小程序走工行渠道的微信支付
首先吐槽一个工行的效率问题,兜圈子,回复慢,人家事还多.对接和一堆业务员对接,完全不懂技术,说不到点上.给的账号三番五次是错的,并且文档描述也和实际demo不一致,完全靠百度一点一点磨出来的. 微信小 ...
- 手把手教你完成App支付JAVA后台-微信支付JAVA
上篇我们记录了手机端的微信支付的大致流程,期间可能会遇到各种各样的错误,但这些问题没有得到官方的重视,所以我们只能一步步自己排查,要有足够的耐心. 这篇内容看标题已经很明确了,由于微信是用xml通讯的 ...
最新文章
- SBO_SP_TransactionNotification 存储过程的应用
- 互联网协议 — 互联网的技术发展
- 中国石油管道科技研究中心2014届应届毕业生招聘(软件工程师岗)
- LSMW批处理使用方法(10)_步骤12、13
- Maven超详细配置
- linux服务器用户组和权限管,linux 用户管理,用户权限管理,用户组管理
- 从ASM拷贝文件的方法
- Python-爬取我去图书馆座位编码
- vspy如何在图形面板显示报文_盘点市售三款USBC 86型面板插座,支持iPhone 12快充...
- Azure CLI 简单入门
- Sharepoint 浅谈 [转]
- 【POJ 2449】第K短路【A*算法】
- c语言图像对比度增强,图像对比度增强实验分析报告.doc
- ArGIS Engine专题(8)之利用GP监督分类最大似然法实现根据矢量样本和影像提取植被类型
- COMSOL吸附模拟
- 员工意志和欲望的发展管理
- 【英语学习】英语语法术语表 English Grammar Terminology
- STM32L475 SPI驱动LCD ST7789V2详解
- CPU、GPU、TPU、NPU等到底是什么
- onlyoffice安装之二:centos7安装
热门文章
- [JS进阶] JS 之Blob 对象类型
- python变量类型声明_python基础知识:变量的定义以及类型
- java用cmd编译access数据库_java直接存取MS Access的mdb数据库文件
- Python中字符串的startswith()和endswith()方法
- 使用MyBatis Plus 3.2.0版本插件代码生成器生成实体类后,对于数据库中字段类型datetime的字段会转变为LocalDateTime类型
- CentOS7中解决root用户Operation not permitted
- Eclipse“ctrl+左键”链到实现类
- MyEclipse格式化代码设置
- left join嵌套selelct语句格式_SQL Formatting Rule 格式化行业规范
- 请键入 net helpmsg 3534 以获得更多的帮助。_身边有人得了抑郁症,可以做点什么帮助Ta?| 心理小课...