Java中的微信支付:API V3版本签名详解1

本文详细介绍了微信支付API V3版本的签名过程,包括API证书的解析、V3签名的格式和生成,以及签名在实际请求中的使用。通过Java代码示例,解析证书、生成签名,并展示如何将签名放入HTTP请求头中。旨在帮助开发者理解和应用微信支付的签名机制。
摘要由CSDN通过智能技术生成

在这里插入图片描述

1. 前言

最近在折腾微信支付,证书还是比较烦人的,所以有必要分享一些经验,减少你在开发微信支付时的踩坑。目前微信支付的API已经发展到V3版本,采用了流行的Restful风格。

[图片上传失败...(image-ee5159-1650108086816)]

今天来分享微信支付的难点——签名,虽然有很多好用的SDK但是如果你想深入了解微信支付还是需要了解一下的。

2. API证书

为了保证资金敏感数据的安全性,确保我们业务中的资金往来交易万无一失。目前微信支付第三方签发的权威的CA证书(API证书)中提供的私钥来进行签名。通过商户平台你可以设置并获取API证书

[图片上传失败...(image-2f2622-1650108086816)]

切记在第一次设置的时候会提示下载,后面就不再提供下载了,具体参考说明。

[图片上传失败...(image-19e3e-1650108086816)]

设置后找到zip压缩包解压,里面有很多文件,对于JAVA开发来说只需要关注apiclient_cert.p12这个证书文件就行了,它包含了公私钥,我们需要把它放在服务端并利用Java解析.p12文件获取公钥私钥。

务必保证证书在服务器端的安全,它涉及到资金安全

解析API证书

接下来就是证书的解析了,证书的解析有网上很多方法,这里我使用比较“正规”的方法来解析,利用JDK安全包的java.security.KeyStore来解析。

微信支付API证书使用了PKCS12算法,我们通过KeyStore来获取公私钥对的载体KeyPair以及证书序列号serialNumber

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值