调用微信统一下单接口生成预支付订单:有没有遇到这个问题呢?

微信支付签名算法文档: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签名算法实现相关推荐

  1. JAVA微信支付(微信公众号支付JSAPI)

    JAVA开发微信支付-公众号支付/微信浏览器支付(JSAPI) 写本篇博客其一是因为最近做的项目在用这个功能,通过本篇博客进行一个全局的梳理,其二呢,也就是想趁着思路清晰,把心得记录下来,分享给大家, ...

  2. Java微信支付——公众号支付JSAPI

    一.获取微信支付四大参数 首先获取两个账号: 1.微信公众号已认证的服务号,并且需要开通微信支付功能: 微信公众平台:1)账户.密码 :  2)公众APPID : 3)APPSECEPT 2.微信商户 ...

  3. java微信公众号支付开发平台_Java微信公众平台开发之公众号支付(微信内H5调起支付)...

    官方文档 准备工作:已通过微信认证的公众号,必须通过ICP备案域名(否则会报支付失败) 借鉴了很多大神的文章,在此先谢过了 整个支付流程,看懂就很好写了 一.设置支付目录 在微信公众平台设置您的公众号 ...

  4. java 后台 小程序微信支付

    java 后台 小程序微信支付 步骤说明: 微信公众平台支付接口调试工具 #1.生成字符串: appid=appId&body=测试商品名称&mch_id=商户号&nonce_ ...

  5. java app支付_Java 微信支付之APP支付服务端 (一)

    Java 微信支付之APP支付服务端 (一) 如图所示,这是服务端要集成的所有微信接口.至于在开放平台申请就不做赘述了.主要流程,1.下单,2.异步通知,3.查询. 一.微信统一下单请求交易 /** ...

  6. 微信网页扫码支付(公众号)JAVA实现

    今天我们来说说微信网页扫码支付,这个支付的步骤和微信公众号网页是差不多的,也和微信小程序的步骤是一致的,不过appid是微信公众号的,我自己收集的微信开发文档希望对大家有用: https://blog ...

  7. 微信java版_JAVA版微信支付V3-完全版

    本人做的是微信V3版本的微信支付,也是目前最新的微信支付接口.官方文档下载地址 微信支付成功后  你的邮件会有以下信息: 1. 信息包括:商户ID(mch_id).申请编号.登录帐号.登录密码.商户A ...

  8. JAVA版微信支付V3—JSAPI支付

    本人用的开发框架是:struts2(用了struts2的0配置,对于struts的0配置不熟悉的可以看看这个博客了解下 http://www.cnblogs.com/fpjason/archive/2 ...

  9. java版+支付宝支付和微信支付(一)(含源码)

    最近公司在做支付模块,在接入过程中遇到了很多坑,费了不少事,现在分享一下接入方法,也记录一下,以后可能还用的到.用的是支付宝的即时到帐支付功能和微信的扫码支付功能,相比起来,个人感觉支付宝的文档和接入 ...

最新文章

  1. Android SurfaceView 的应用
  2. android mvp模式例子_关于Android市场这件事,没有饱和的市场只有饱和的思维
  3. 向maven中央仓库提交jar
  4. 会员系统用php框架,代码基地会员中心的PHP签到系统结合thinkphp框架
  5. 对于销售,什么是你应该考虑的最重要事情?
  6. Zabbix3.2邮件告警python脚本
  7. MyBaits resultMap 返回值与对象不匹配处理
  8. h5自我介绍作品_自我介绍h5模板
  9. 【iOS】iOS8 与以前版本比较,添加的新特性
  10. 第三届传智杯初赛A组G题 - 森林
  11. GitHub基本操作
  12. 小程序 (基础认识)
  13. hc595 c语言程序,74HC595级联动态显示的C程序
  14. render_template()
  15. android动画机制,Android动画机制探究
  16. F2FS源码分析-1.3 [F2FS 元数据布局部分] Checkpoint结构
  17. CAD二次开发之LISP读取excel数据
  18. android 相册 恢复,Android手机照片恢复一例
  19. AUC的计算方法及相关总结
  20. 等价类划分经典实例-三角形测试用例设计

热门文章

  1. java虚拟机类加载机制_《深入理解java虚拟机》学习笔记一/类加载机制
  2. Linux下Cpabe Toolkit安装教程
  3. 机器人学一些概念1——自由度冗余,映射和操作算子
  4. dfmea文件_DFMEA和PFMEA的“六步法”其实很不一样
  5. 填谷式无源pfc电路_有源PFC电路上各个元件的作用-安泰维修
  6. 4.1.3 OS之文件目录目录结构(单级-两级-多级-无环图)、索引节点FCB瘦身
  7. android去广告软件下载,Android文本编辑器(QuickEdit)V1.1.4 精简去广告版
  8. 算法练习day12——190331(哈希函数、哈希表、布隆过滤器、一致性哈希)
  9. matlab 自动扫雷,MATLAB自动扫雷(2)——排雷插旗
  10. 手机版网页开发_华为低调发布鸿蒙OS手机开发者Beta版,明年覆盖1亿台设备