`
cqh520llr
  • 浏览: 510233 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

微信支付签名工具

 
阅读更多
https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=20_1



import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;

/**
 * 微信签名
 */
public class HMACSHA256 {

    /**
     * 将加密后的字节数组转换成字符串
     *
     * @param b 字节数组
     * @return 字符串
     */
    public static String byteArrayToHexString(byte[] b) {
        StringBuilder hs = new StringBuilder();
        String stmp;
        for (int n = 0; b != null && n < b.length; n++) {
            stmp = Integer.toHexString(b[n] & 0XFF);
            if (stmp.length() == 1)
                hs.append('0');
            hs.append(stmp);
        }
        return hs.toString().toLowerCase();
    }

    /**
     * sha256_HMAC加密
     *
     * @param message 消息
     * @param secret  秘钥
     * @return 加密后字符串
     */
    public static String sha256_HMAC(String message, String secret) {
        String hash = "";
        try {
            Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
            SecretKeySpec secret_key = new SecretKeySpec(secret.getBytes(), "HmacSHA256");
            sha256_HMAC.init(secret_key);
            byte[] bytes = sha256_HMAC.doFinal(message.getBytes());
            hash = byteArrayToHexString(bytes);
        } catch (Exception e) {
            System.out.println("Error HmacSHA256 ===========" + e.getMessage());
        }
        return hash;
    }

    public static void main(String[] args) {
        String stringA = "appid=wxd930ea5d5a258f4f&body=test&device_info=1000&mch_id=10000100&nonce_str=ibuaiVcKdpRxkhJA";
        String stringSignTemp = stringA + "&key=192006250b4c09247ec02edce69f6a2d";//注:key为商户平台设置的密钥key
        System.out.println(sha256_HMAC(stringSignTemp, "192006250b4c09247ec02edce69f6a2d").toUpperCase());
        System.out.println("6A9AE1657590FD6257D693A078E1C3E4BB6BA4DC30B23E0EE2496E54170DACD6");
    }

}

分享到:
评论

相关推荐

    微信公众号支付签名生成工具类和xml转换工具类和双向验证请求工具类

    微信公众号支付签名生成工具类和xml和map转换工具类和双向验证请求工具类

    微信支付签名MD5.js加密算法

    使用微信支付签名MD5加密算法。可以使用,可以根据微信签名工具验证,是一样的。 如果提示“签名失败“,就要考虑到key只是否一致。统一下单和发起支付时的key值要一样的。

    java微信支付工具类v3版:微信支付v3版+微信退款v3版+微信交易状态查询+企业打款

    微信支付工具类v3版 包含: 1. 微信支付v3版 2. 微信退款v3版 3. 微信交易状态查询 4. 企业打款到个人零钱(旧版) 本人在企业项目中使用,自己封装的的微信交易相关的一套工具类。 直接调用方法传入对应的参数即可...

    微信支付工具类--封装全部微信支付工具类

    微信支付工具类是一系列用于处理微信支付业务的Java类,它们封装了与微信支付接口交互的逻辑,使得开发者能够更方便地集成微信支付功能到自己的应用程序中。以下是对这些类的功能和作用的详细说明: 1. **WXPay....

    微信支付相关工具类

    每个接口函数都会根据微信支付的官方文档规范,封装好参数处理、签名生成、错误处理等细节,使得开发者可以更专注于业务逻辑。 3. **WxPay.Config.php**: 这个文件是用来存储和管理微信支付的配置信息,包括AppID...

    C#微信支付V3生成签名,发送请求

    包含生成v3签名,发送请求。解析数据,注释齐全,新手都可以看的懂,下载就能用,省去工作量。

    微信支付工具类.rar

    微信支付工具类是一个Java开发的库,用于实现微信支付的全过程。这个压缩包包含的代码涵盖了从支付下单、处理订单到接收微信服务器的异步通知以及查询支付结果等多个关键环节,是开发者集成微信支付功能的重要参考...

    Asp微信支付接口V5_Asp微信支付接口V5_

    微信支付提供了专门的测试工具和文档,帮助开发者进行接口的调试和验证。 7. **安全性考虑**:在使用Asp微信支付接口V5时,开发者需要注意数据加密、防止SQL注入、XSS攻击等网络安全问题。同时,要确保服务器端的...

    微信支付工具类

    综上所述,"微信支付工具类"涉及到的技术点主要包括微信支付接口的调用、签名机制、XML数据处理、订单管理、错误处理和回调处理等,这些是实现安全、稳定、高效的微信支付功能所必需的关键技术。在实际开发中,`...

    微信支付工具包

    微信支付工具包是一种集成在应用程序中的支付解决方案,它允许开发者轻松地实现微信支付功能,以满足用户在应用内购买商品或服务的需求。这个工具包整合了两种主要的微信支付方式:Native支付和JSP支付,提供了完整...

    微信支付商户平台证书工具

    微信支付商户平台证书工具是微信支付为商家提供的一种安全管理工具,用于处理与微信支付相关的安全认证问题。在电商、零售、餐饮等众多行业中,微信支付作为主流的移动支付方式,其安全性和稳定性至关重要。商户在接...

    java后台微信支付工具类

    Java后台微信支付工具类是开发微信App支付时不可或缺的一部分,它包含了处理支付请求、响应以及与微信支付服务器交互的关键逻辑。微信支付是一个安全且广泛使用的支付方式,它允许用户通过微信应用程序进行线上交易...

    Android集成微信支付工具类

    这个压缩包提供的"Android集成微信支付工具类"正是为了简化这一过程。下面将详细解释这个工具类的使用及其中涉及的关键知识点。 首先,`Util.java`通常包含了各种通用的工具函数,比如字符串处理、日期格式化、网络...

    微信支付回调工具类

    微信支付回调工具类是开发微信支付功能时必不可少的一部分,它主要负责处理微信支付服务器与商户服务器之间的通信。在用户成功下单并完成支付后,微信支付系统会通过回调接口将支付结果通知给商户,这时就需要一个回...

    ASP版微信支付接口非常好用!!

    ASP版微信支付接口是针对使用ASP(Active Server Pages)编程语言的开发者设计的一种集成微信支付功能的工具。这种接口使得ASP应用能够与微信支付平台无缝对接,为用户提供便捷的在线支付服务。在本文中,我们将深入...

    微信签名工具Android 安装包(Gen-Signature-android.apk)

    微信签名工具,即`Gen-Signature-android.apk`,是一个专为开发者设计的工具,用于生成和管理Android应用的签名文件。这个工具可以帮助开发者对他们的APK进行签名,以确保其能够在用户的设备上正常安装和运行。由于...

    微信支付---工具类

    - 可以使用微信官方提供的签名工具进行比对,以确认签名计算逻辑的准确性。 5. **回调验证**: - 微信支付服务器在验证签名成功后会返回一个支付结果,需要在后台接收并验证这个结果的签名,确保数据未被篡改。 ...

    微信支付JS-SDK调用微信支付接口 JAVA

    微信支付JS-SDK是微信官方提供的用于在网页端进行微信支付的开发工具包,主要针对JavaScript环境。在JAVA后端,我们需要与这个JS-SDK配合,以实现从服务器端调用微信支付接口,为前端提供安全可靠的支付服务。下面将...

    QT 支付宝,微信支付

    6. `SignUtil.cpp`:签名工具类,对于安全性的支付系统来说,签名验证是非常重要的部分,确保数据的完整性和不可篡改性。 7. `AliTradePayResult.cpp`:可能包含了处理支付宝交易支付结果的逻辑。 8. `...

    JAVA-微信支付工具类

    在处理支付回调时,微信支付工具类会验证回调数据的签名,确保数据的真实性,防止被篡改。同时,也会根据回调的状态更新数据库中的订单状态,保持数据的一致性。 总的来说,"JAVA-微信支付工具类"是一个集成了微信...

Global site tag (gtag.js) - Google Analytics