微信支付sign签名工具类

2023-11-16

secretKey为商户平台设置的密钥key
params为非空参数集合

public static String genSignature(String secretKey, Map<String, String> params) throws UnsupportedEncodingException {
        if (secretKey == null || params == null || params.size() == 0) {
            return "";
        }
        // 1. 参数名按照ASCII码表升序排序
        String[] keys = params.keySet().toArray(new String[0]);
        Arrays.sort(keys);
        // 2. 按照排序拼接参数名与参数值
        StringBuffer paramBuffer = new StringBuffer();
        for (String key : keys) {
            paramBuffer.append("&"+key).append(params.get(key) == null ? "" : "="+params.get(key));
        }
        // 3. 将secretKey拼接到最后
        paramBuffer=paramBuffer.append("&key="+secretKey);
        String pa =paramBuffer.substring(1);
        // 4. MD5是128位长度的摘要算法,用16进制表示,一个十六进制的字符能表示4个位,所以签名后的字符串长度固定为32个十六进制字符。
        return DigestUtils.md5Hex(pa.getBytes("UTF-8")).toUpperCase();
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信支付sign签名工具类 的相关文章

随机推荐

  • 哈希表查找失败的平均查找长度_哈希算法高大上?也不过如此

    01 知识框架 02 知识点详解 1 散列表的相关概念 什么是散列表和散列函数 是根据关键码值 Key value 而直接进行访问的数据结构 也就是说 它通过把关键码值映射到表中一个位置来访问记录 以加快查找的速度 这个映射函数叫做 散列函
  • VTK(0)---CMake工程

    VTK 0 CMake工程 目录 前言 一 指定cmake版本 二 设置工程 三 针对Qt 自动使用moc uic rcc程序预处理 h文件 ui文件等 四 平台移植问题 五 设置编译模式 六 找到包 七 包含头文件等 八 链接库文件 九
  • 自定义进度条,支持显示浮点数

    思路 QT原生的进度条默认只支持显示整型值 这里重新封装了进度条 支持显示浮点数 内部同时设置了进度条样式 支持显示提示信息 GitHub下载链接 https github com caochuanlin progressbar 头文件 c
  • 01.项目目录搭建以及styled-Components和Reser.css的结合使用

    首先 我们使用脚手架创建了一个新的项目 这里我们对项目的一些基本文件进行整理 首先将一些不需要的文件删除 删除之后留下一些需要的文件 如下 这里我们将原来的style css已经重命名为style js文件 下面安装styled Compo
  • NPM Magic

    NPM Magic package json package json 最起码要包含 name 和 version 快速初始化 package json npm init yes dependencies 生产环境依赖的包 devDepen
  • 安规电容,X电容,Y电容

    什么是安规电容 首先要说一下 安规 是安全规范的简称 安全规范对产品的装置与电子组件有明确的陈述及指导 以避免由于设计不良或使用不当而导致电击 能量 打火 拉弧 爆炸 火灾 辐射 机械与热 高温危险 化学危险等事故和灾害 要求生产厂商尽可能
  • Vue3训练营笔记

    vue3脚手架的详细使用说明 文档下载 https download csdn net download qq 42740465 87939368 spm 1001 2014 3001 5503
  • ROS学习(1)—Ubuntu20.04系统安装noetic学习日志

    1 前言 ROS知识自学 现有博文比较多 而且参差不齐 为了梳理自己的学习思路 形成自身的知识体系 撰写自己的学习日志文档 参考文章及链接均在文章末尾显示 2 主要安装步骤 2 1 更换源文件 添加软件源文件则是将国外服务器的下载地址更改为
  • 标识符和关键字的规则

    大家好 我是耀曜 这段事件没有怎么更新文章 主要是最近换工作 有一年的工作经验 说白了就是一个初级Java后端开发的新手 这段时间面了很多家 我也很纳闷问的都是基础差不多都忘掉了的 以后这段事间耀曜会发布一些关于面试的问题的总结 希望对看到
  • Android 数据的保存,检索,删除之Cursor

    今天遇到的一个问题是如何将数据删除后 将原来的id也相应的做改变呢 如果说对其id值进行逐个修改这也是可以的 但是当数据增多的时候 我们这么做就会很大程度上的降低程序的性能 所以我们想到的就是不要根据id的检索来获取数据库中的值 因为这样做
  • face-api.js中加入MTCNN:进一步支持使用JS实时进行人脸跟踪和识别

    如果你现在正在阅读这篇文章 那么你可能已经阅读了我的介绍文章 JS使用者福音 在浏览器中运行人脸识别 或者之前使用过face api js 如果你还没有听说过face api js 我建议你先阅读介绍文章再回来阅读本文 和往常一样 本文中为
  • C++实现顺序表与链表

    C 实现顺序表与链表 一 顺序表 之前已经对顺序表有了了解 需要注意的是读者如果疑惑以下代码没有实现头插与头删 是因为代码中任意插入与删除这两个函数可以实现此功能 下面有测试代码 读者也可以自行测试 代码如下 include
  • 手把手教你安装MINIGUI编程环境 (MINIGUI版本3.2.0)

    0 MINIGUI MiniGUI 是一款面向嵌入式系统的高级窗口系统 Windowing System 和图形用户界面 Graphical User Interface GUI 支持系统 由魏永明先生于 1998 年底开始开发 2002
  • Pycharm如何选择自动打开或不打开最近项目

    如下图
  • 【Milvus的安装和使用】

    0 介绍 milvus是一个用于存储 index索引和管理巨量由深度学习网络或者其他模型生成embedding vectors的工具 不同于常见的关系型数据库用来处理结构化数据 Milvus被设计用来处理由非结构化数据 如图像 音频等 生成
  • 超链接打不开是什么原因html,超链接打不开是什么原因

    演示工具 电脑型号 华硕adolbook14 2020 系统版本 windows10 具体原因及解决方法 1 如果是链接到本地文件的超链接无法打开 可能是相对路径和绝对路径的问题 绝对地址 是有完全的路径 如果超链接的路径写错了 就无法打开
  • java 源码欣赏,Logback源码赏析-日志按时间滚动(切割)

    引言 用过Logback的同学们大多都知道Logback日志框架可以自动按照某个时间点切割日志的功能 但了解其中工作原理的同学可能并不是很多 楼主今天就带领各位了解一下其中的核心源码 本文的示例引用了Logback 1 1 7版的源码 举个
  • 60 KVM Skylark虚拟机混部-安装和配置

    文章目录 60 KVM Skylark虚拟机混部 安装和配置 60 1 安装Skylark 60 1 1 硬件要求 60 1 2 软件要求 60 1 3 安装方法 60 2 配置Skylark 60 2 1 日志 60 2 2 功耗干扰控制
  • FPGA UART仿真

    摘自威三学员尤凯元 tb文件 Copyright c 2014 2019 All rights reserved Author Youkaiyuan v3eduyky 126 com wechat 15921999232 File tb t
  • 微信支付sign签名工具类

    secretKey为商户平台设置的密钥key params为非空参数集合 public static String genSignature String secretKey Map