java 微信支付 md5_微信支付MD5签名算法实现
调用微信统一下单接口生成预支付订单:有没有遇到这个问题呢?
微信支付签名算法文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3
/**
* 微信支付签名算法sign
* @param parameters
* @return
*/
public String createSign(SortedMapparameters){
StringBuffer sb = new StringBuffer();
Set es = parameters.entrySet();//所有参与传参的参数按照accsii排序(升序)
Iterator it = es.iterator();
while(it.hasNext()) {
Map.Entry entry = (Map.Entry)it.next();
String k = (String)entry.getKey();
Object v = entry.getValue();
if(null != v && !"".equals(v)
&& !"sign".equals(k) && !"key".equals(k)) {
sb.append(k + "=" + v + "&");
}
}
sb.append("key=" + this.wxpayKey);
System.out.println("签名字符串:"+sb.toString());
String sign = md5Password(sb.toString()).toUpperCase();
return sign;
}
/**
* 生成32位md5码
*
* @param key
* @return
*/
public static String md5Password(String key) {
char hexDigits[] = {
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
};
try {
byte[] btInput = key.getBytes();
// 获得MD5摘要算法的 MessageDigest 对象
MessageDigest mdInst = MessageDigest.getInstance("MD5");
// 使用指定的字节更新摘要
mdInst.update(btInput);
// 获得密文
byte[] md = mdInst.digest();
// 把密文转换成十六进制的字符串形式
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte byte0 = md[i];
str[k++] = hexDigits[byte0 >>> 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
return new String(str);
} catch (Exception e) {
return null;
}
}
总结:主要是利用了java的SortedMap实现元素排序的有序性;
java 微信支付 md5_微信支付MD5签名算法实现相关推荐
- JAVA微信支付(微信公众号支付JSAPI)
JAVA开发微信支付-公众号支付/微信浏览器支付(JSAPI) 写本篇博客其一是因为最近做的项目在用这个功能,通过本篇博客进行一个全局的梳理,其二呢,也就是想趁着思路清晰,把心得记录下来,分享给大家, ...
- Java微信支付——公众号支付JSAPI
一.获取微信支付四大参数 首先获取两个账号: 1.微信公众号已认证的服务号,并且需要开通微信支付功能: 微信公众平台:1)账户.密码 : 2)公众APPID : 3)APPSECEPT 2.微信商户 ...
- java微信公众号支付开发平台_Java微信公众平台开发之公众号支付(微信内H5调起支付)...
官方文档 准备工作:已通过微信认证的公众号,必须通过ICP备案域名(否则会报支付失败) 借鉴了很多大神的文章,在此先谢过了 整个支付流程,看懂就很好写了 一.设置支付目录 在微信公众平台设置您的公众号 ...
- java 后台 小程序微信支付
java 后台 小程序微信支付 步骤说明: 微信公众平台支付接口调试工具 #1.生成字符串: appid=appId&body=测试商品名称&mch_id=商户号&nonce_ ...
- java app支付_Java 微信支付之APP支付服务端 (一)
Java 微信支付之APP支付服务端 (一) 如图所示,这是服务端要集成的所有微信接口.至于在开放平台申请就不做赘述了.主要流程,1.下单,2.异步通知,3.查询. 一.微信统一下单请求交易 /** ...
- 微信网页扫码支付(公众号)JAVA实现
今天我们来说说微信网页扫码支付,这个支付的步骤和微信公众号网页是差不多的,也和微信小程序的步骤是一致的,不过appid是微信公众号的,我自己收集的微信开发文档希望对大家有用: https://blog ...
- 微信java版_JAVA版微信支付V3-完全版
本人做的是微信V3版本的微信支付,也是目前最新的微信支付接口.官方文档下载地址 微信支付成功后 你的邮件会有以下信息: 1. 信息包括:商户ID(mch_id).申请编号.登录帐号.登录密码.商户A ...
- JAVA版微信支付V3—JSAPI支付
本人用的开发框架是:struts2(用了struts2的0配置,对于struts的0配置不熟悉的可以看看这个博客了解下 http://www.cnblogs.com/fpjason/archive/2 ...
- java版+支付宝支付和微信支付(一)(含源码)
最近公司在做支付模块,在接入过程中遇到了很多坑,费了不少事,现在分享一下接入方法,也记录一下,以后可能还用的到.用的是支付宝的即时到帐支付功能和微信的扫码支付功能,相比起来,个人感觉支付宝的文档和接入 ...
最新文章
- Android SurfaceView 的应用
- android mvp模式例子_关于Android市场这件事,没有饱和的市场只有饱和的思维
- 向maven中央仓库提交jar
- 会员系统用php框架,代码基地会员中心的PHP签到系统结合thinkphp框架
- 对于销售,什么是你应该考虑的最重要事情?
- Zabbix3.2邮件告警python脚本
- MyBaits resultMap 返回值与对象不匹配处理
- h5自我介绍作品_自我介绍h5模板
- 【iOS】iOS8 与以前版本比较,添加的新特性
- 第三届传智杯初赛A组G题 - 森林
- GitHub基本操作
- 小程序 (基础认识)
- hc595 c语言程序,74HC595级联动态显示的C程序
- render_template()
- android动画机制,Android动画机制探究
- F2FS源码分析-1.3 [F2FS 元数据布局部分] Checkpoint结构
- CAD二次开发之LISP读取excel数据
- android 相册 恢复,Android手机照片恢复一例
- AUC的计算方法及相关总结
- 等价类划分经典实例-三角形测试用例设计
热门文章
- java虚拟机类加载机制_《深入理解java虚拟机》学习笔记一/类加载机制
- Linux下Cpabe Toolkit安装教程
- 机器人学一些概念1——自由度冗余,映射和操作算子
- dfmea文件_DFMEA和PFMEA的“六步法”其实很不一样
- 填谷式无源pfc电路_有源PFC电路上各个元件的作用-安泰维修
- 4.1.3 OS之文件目录目录结构(单级-两级-多级-无环图)、索引节点FCB瘦身
- android去广告软件下载,Android文本编辑器(QuickEdit)V1.1.4 精简去广告版
- 算法练习day12——190331(哈希函数、哈希表、布隆过滤器、一致性哈希)
- matlab 自动扫雷,MATLAB自动扫雷(2)——排雷插旗
- 手机版网页开发_华为低调发布鸿蒙OS手机开发者Beta版,明年覆盖1亿台设备