/**

*

* 方法用途: 对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序),并且生成url参数串

* 实现步骤:

*

* @param paraMap 要排序的Map对象

* @param urlEncode 是否需要URLENCODE

* @param keyToLower 是否需要将Key转换为全小写

* true:key转化成小写,false:不转化

* @return

*/

public static String formatUrlMap(Map paraMap, boolean urlEncode, boolean keyToLower)

{

String buff = "";

Map tmpMap = paraMap;

try

{

List> infoIds = new ArrayList>(tmpMap.entrySet());

// 对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序)

Collections.sort(infoIds, new Comparator>()

{

@Override

public int compare(Map.Entry o1, Map.Entry o2)

{

return (o1.getKey()).toString().compareTo(o2.getKey());

}

});

// 构造URL 键值对的格式

StringBuilder buf = new StringBuilder();

for (Map.Entry item : infoIds)

{

if (StringUtils.isNotBlank(item.getKey()))

{

String key = item.getKey();

String val = item.getValue();

if (urlEncode)

{

val = URLEncoder.encode(val, "utf-8");

}

if (keyToLower)

{

buf.append(key.toLowerCase() + "=" + val);

} else

{

buf.append(key + "=" + val);

}

buf.append("&");

}

}

buff = buf.toString();

if (buff.isEmpty() == false)

{

buff = buff.substring(0, buff.length() - 1);

}

} catch (Exception e)

{

return null;

}

return buff;

}

DEMO演示

package com.zhiweism.easemob.api;

import java.util.HashMap;

import java.util.Map;

import com.zhiweism.util.Util;

public class test {

public static void main(String[] args) {

// TODO Auto-generated method stub

//字典序列排序

Map paraMap = new HashMap();

paraMap.put("total_fee","200");

paraMap.put("appid", "wxd678efh567hg6787");

paraMap.put("body", "腾讯充值中心-QQ会员充值");

paraMap.put("out_trade_no","20150806125346");

String url = Util.formatUrlMap(paraMap, true, true);

System.out.println(url);

}

}控制台输出

appid=wxd678efh567hg6787&body=%E8%85%BE%E8%AE%AF%E5%85%85%E5%80%BC%E4%B8%AD%E5%BF%83-QQ%E4%BC%9A%E5%91%98%E5%85%85%E5%80%BC&out_trade_no=20150806125346&total_fee=200

微信字典排序java_【支付宝,微信支付必备】Java实现url参数按照参数名ASCII码从小到大排序(字典序)...相关推荐

  1. PHP 参数名ASCII码从小到大排序(字典序)

    function ASCII($params = array()){//ksort()对数组按照键名进行升序排序ksort($params);//reset()内部指针指向数组中的第一个元素reset ...

  2. ASCII码从小到大排序(字典序)

    签名生成的通用步骤如下: 设所有发送或者接收到的数据为集合M,将集合M内的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=valu ...

  3. C# 参数按照ASCII码从小到大排序(字典序)

    在对接第三方支付的时候,第三方会要求参数按照ASCII码从小到大排序.如下: public static void requestPay(){Dictionary<string, string& ...

  4. acill排序 java_Map集合按照ASCII码从小到大(字典序)排序--JAVA

    以下代码:将传参按照ASCII 码字典序排序,并将生成的字符串进行MD5加密 /** * Description:MD5工具生成token * @param value * @return */ pu ...

  5. java ascii码从小到大排序_待签名参数按照字段名的ascii码从小到大排序 怎么理解...

    展开全部 private String getSign(Map params) { Map sortMap = new TreeMap(); sortMap.putAll(params); // 以k ...

  6. C# 参数签名字符串按 ASCII码排序,注意其中的坑

    参数签名中通常是按键值对中键名称的ASCII按从小到大的顺序排序后进行hash为签名字符串.不要直接使用 SortedDictionary<string, string> 有坑的,他是按数 ...

  7. alipay 证书 java_支付宝 APP支付(证书)方式遇到的问题和解决办法

    最近在做支付宝的支付功能,遇到了一些问题记录一下,方便查阅和遇到同样问题的人: 这个错误遇到的应该都比较多吧: 这个问题发生的原因是: 1.私钥是用文件路径方式请求的(建议使用密文方式) 并且 key ...

  8. 支付宝APP支付(基于Java实现支付宝APP支付)

    贴一下支付核心代码,以供后续参考: 业务层 import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayClient; ...

  9. 支付宝APP支付 (JAVA生成支付信息,uniapp拉起支付宝支付)

    目录 支付APP支付 参数配置 方法配置 支付APP支付 根据接口加签方式自行选择使用密钥或者证书 (注:支付宝有些接口会说明只能使用证书) 参数配置 package com.pepay.api.al ...

最新文章

  1. 基于小波变换的图像压缩解压缩仿真
  2. pyspider 连接mysql_pyspider 导入模块报错 提示 No module named mysqldb
  3. Primefaces dataTable设置某个cell的样式问题
  4. 华为P40系列发布!新机皇临世,售价首次过万!
  5. (日常搬砖)voc(xml)格式的标注转换为coco(json)格式
  6. cloud-api-commons抽取公共类
  7. Python数据结构中包含中文时在Windows下正常输出
  8. DSOFramer使用
  9. 论文笔记:3DMM(ACM1999)
  10. UML(Unified Modeling Language) 统一建模语言
  11. CentOs7下Zabbix安装教程——zabbix server安装
  12. 左程云 Java 笔记--二叉树
  13. python为什么是蛇的天敌_蛇的天敌有哪些?
  14. sql查询每科成绩最高的人和分数
  15. 利用ECharts在线生成图表
  16. codeforce 332B Maximum Absurdity
  17. B-tree、B+tree详解(二)插入与删除
  18. Python基础–详细记录Sixth_Chapter
  19. (附源码)计算机毕业设计ssm高校体育馆管理信息系统
  20. Mutable variable is accessible from closure

热门文章

  1. 马斯克:正在认真考虑建立社交媒体平台
  2. 聚焦数智技术助力乡村振兴 京东云为乡村振兴注入“数智”力量
  3. 双十一京东PLUS会员 VS 阿里88VIP,谁的羊毛多?
  4. 一场价值4500亿的抉择
  5. 国家邮政局:对刷单、贩卖快递盲盒等进行清理整顿
  6. 微博办公李国庆:急招副总裁,提请股权激励,希望俞渝同意
  7. 倒了血霉!先是贾跃亭后有罗永浩,被拖欠4400多万,最惨公司无疑了
  8. 拼多多、微博等在新一轮经济变化中将做出更大贡献
  9. ZAO回应被约谈...
  10. 华为P30真机屏幕盖板曝光:超窄边框水滴屏