待签名参数按照字段名的ascii码从小到大排序
public static String getSign(Map<String, String> params) {
Map<String, String> sortMap = new TreeMap<String, String>();
sortMap.putAll(params);
// 以k1=v1&k2=v2...方式拼接参数
StringBuilder builder = new StringBuilder();
for (Map.Entry<String, String> s : sortMap.entrySet()) {
String k = s.getKey();
String v = s.getValue();
if (StringUtils.isBlank(v)) {// 过滤空值
continue;
}
builder.append(k).append("=").append(v).append("&");
}
if (!sortMap.isEmpty()) {
builder.deleteCharAt(builder.length() - 1);
}
return builder.toString();
} public static void main(String[] args) {
Map<String,String> paraMap = new HashMap<String,String>();
paraMap.put("total_fee","200");
paraMap.put("appid", "wxd678efh567hg6787");
paraMap.put("body", "测试");
paraMap.put("out_trade_no","20150806125346");
System.out.println(getSign(paraMap));
}
待签名参数按照字段名的ascii码从小到大排序的更多相关文章
- java map里面进行ASCII 码从小到大排序(字典序)
public static String getAsciiSort(Map<String, Object> map) { List<Entry<String, Object&g ...
- 微信支付签名算法JavaScript版,参数名ASCII码从小到大排序;0,A,B,a,b;
// 支付md5加密获取sign paysignjs: function (jsonobj) { var signstr = this.obj2str(jsonobj) signstr = signs ...
- c# 参数名ascii码从小到大排序(字典序)拼接
代码如下: /// <summary> /// c# 参数名ascii码从小到大排序(字典序)拼接 /// </summary> /// <param name=&quo ...
- .Net将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),并使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA
前言: 前段时间因为项目进度比较繁重所以一直都没有时间更新博客,内心深深的负重感,没有履行年初立下的flag.不过这个月会把上个月没有完成的任务补上来,咱们可不是喜欢拖欠任务的攻城狮.哈哈,废话不多说 ...
- C# 参数按照ASCII码从小到大排序(字典序)
在对接第三方支付的时候,第三方会要求参数按照ASCII码从小到大排序.如下: public static void requestPay() { Dictionary<string, strin ...
- 参数名ASCII码从小到大排序(字典序)
/// <summary> /// Hashtable字典排序 /// </summary> /// <param name="parameters" ...
- 微信支付MD5签名算法C#版,ASCII码字典序排序0,A,B,a,b
/// <summary> /// 微信支付MD5签名算法,ASCII码字典序排序0,A,B,a,b /// </summary> /// <param name=&qu ...
- 输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。
#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]) { int a,b,i,j=0,t; ...
- ACM--输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。
代码如下: #include <stdio.h> main() { char a,b,c,d; int i; scanf("%d",&i); getchar() ...
随机推荐
- react生命周期方法
Mounting阶段,当一个组件的实例被创建并插入到DOM中时,下面这些函数会被调用: constructor() componentWillMount:组件即将被渲染到页面上,render之前最后一 ...
- OpenFlow-Enaling innvation in Campus Networks
OpenFlow-Enaling innvation in Campus Networks 出现问题 背景 Networks have become part of the critical infr ...
- CentOS7 安装 webgoat 7.1 简介
CentOS7 安装 webgoat 7.1 简介 webgoat 所需文件准备: 操作系统版本:CentOS 7.3 1: 在Linux上安装Openjdk >= 1.8 2: 上传文件至 L ...
- php curl模块开启失败解决参考
现在公司的测试项目和正式项目是部署在同一台服务器上的,为了在重启apache时互不影响,我在服务器上部署了两个apache服务,使用nginx做url转发. 结果正式环境的项目使用curl没有问题,但 ...
- 类复制 MemberwiseClone与Clone(深 浅 Clone)
MemberwiseClone 方法创建一个浅表副本,具体来说就是创建一个新对象,然后将当前对象的非静态字段复制到该新对象.如果字段是值类型的,则对该字段执行逐位复制.如果字段是引用类型,则复制引用但 ...
- Git基本用法简介
一. git和svn的主要区别 git是一个分布式的版本控制工具,而svn是一个集中式版本控制工具. 二. git工具安装 首先下载git:https://gi ...
- 使用fdisk命令对linux硬盘进行操作
fdisk是linux自带的硬盘分区工具,可以对硬盘进行分区,或者对硬盘分区进行调整.本次试验环境请参考[Linux磁盘系统基础知识] 首先选择要进行操作的磁盘 [root@a ~]# fdisk / ...
- Windows彻底删除不用的dc
如果DC迁移,或者多台DC中的某台DC损坏,要退出历史舞台,一定要彻底的卸载,否则,系统会默认存在,一直同步,会出很多问题.怎么做才能彻底的从域中卸载呢?下面介绍一个个人认为很好用的方法:1.在存活的 ...
- Java不需要加载整张图片而获取图片的大小
转载地址 http://blog.jdk5.com/zh/java-get-image-size-without-loading-the-whole-data/ 利用Java类,获取图片的类型,宽度和 ...
- MySQL的菜鸟级操作
windows下启动和关闭mysql 启动(windows): 在命令行下,进入到mysql安装路径的bin文件夹下执行:net start mysql 关闭(windows): 在启动的情况下执行: ...