public class PayKit extends Object
IJPay 让支付触手可及,封装了微信支付、支付宝支付、银联支付常用的支付方式以及各种常用的接口。
不依赖任何第三方 mvc 框架,仅仅作为工具使用简单快速完成支付模块的开发,可轻松嵌入到任何系统里。
IJPay 交流群: 723992875
Node.js 版: https://gitee.com/javen205/TNWX
IJPay 工具类
Constructor and Description |
---|
PayKit() |
Modifier and Type | Method and Description |
---|---|
static String |
buildSignMessage(ArrayList<String> signMessage)
构造签名串
|
static String |
buildSignMessage(RequestMethod method,
String url,
long timestamp,
String nonceStr,
String body)
构造签名串
|
static String |
buildSignMessage(String timestamp,
String nonceStr,
String body)
构造签名串
|
static String |
createLinkString(Map<String,String> params)
把所有元素排序
|
static String |
createLinkString(Map<String,String> params,
boolean encode) |
static String |
createLinkString(Map<String,String> params,
String connStr,
boolean encode) |
static String |
createLinkString(Map<String,String> params,
String connStr,
boolean encode,
boolean quotes) |
static String |
createSign(ArrayList<String> signMessage,
PrivateKey privateKey)
v3 接口创建签名
|
static String |
createSign(ArrayList<String> signMessage,
String keyPath)
v3 接口创建签名
|
static String |
createSign(String signMessage,
PrivateKey privateKey)
v3 接口创建签名
|
static String |
createSign(String signMessage,
String keyPath)
v3 接口创建签名
|
static String |
decryptData(String base64Data,
String key)
AES 解密
|
static String |
encryptData(String data,
String key)
AES 加密
|
static StringBuffer |
forEachMap(Map<String,String> params,
String prefix,
String suffix)
遍历 Map 并构建 xml 数据
|
static String |
generateStr()
简化的UUID,去掉了横线,使用性能更好的 ThreadLocalRandom 生成UUID
|
static String |
getAbsolutePath(String classPath)
传入 classPath 静态资源路径返回绝对路径
|
static String |
getAuthorization(String mchId,
String serialNo,
String nonceStr,
String timestamp,
String signature,
String authType)
获取授权认证信息
|
static InputStream |
getCertFileInputStream(String path)
通过路径获取证书文件的输入流
|
static X509Certificate |
getCertificate(InputStream inputStream)
获取证书
|
static InputStream |
getFileToStream(String classPath)
传入 classPath 静态资源路径返回文件输入流
|
static PrivateKey |
getPrivateKey(String keyPath)
获取商户私钥
|
static PrivateKey |
getPrivateKeyByKeyContent(String originalKey)
获取商户私钥
|
static String |
getPrivateKeyStr(String keyPath)
获取商户私钥
|
static cn.hutool.core.lang.Snowflake |
getSnowflake(long workerId,
long dataCenterId)
雪花算法
|
static String |
hmacSha256(String data,
String key)
生成16进制的 sha256 字符串
|
static String |
md5(String data)
生成16进制 MD5 字符串
|
static String |
rsaDecryptOAEP(String cipherText,
PrivateKey privateKey)
私钥解密
|
static String |
rsaEncryptOAEP(String data,
X509Certificate certificate)
公钥加密
|
static String |
sha1(File dataFile)
SHA1加密文件,生成16进制SHA1字符串
|
static String |
sha1(InputStream data)
SHA1加密,生成16进制SHA1字符串
|
static String |
sha1(String data)
SHA1加密,生成16进制SHA1字符串
|
static String |
toXml(Map<String,String> params)
微信下单 map to xml
|
static String |
urlEncode(String src)
URL 编码
|
static Map<String,String> |
xmlToMap(String xmlStr)
针对支付的 xml,没有嵌套节点的简单处理
|
public static String hmacSha256(String data, String key)
data
- 数据key
- 密钥public static String sha1(File dataFile)
dataFile
- 被加密文件public static String sha1(InputStream data)
data
- 数据public static String sha1(String data)
data
- 数据public static String decryptData(String base64Data, String key)
base64Data
- 需要解密的数据key
- 密钥public static String encryptData(String data, String key)
data
- 需要加密的数据key
- 密钥public static String generateStr()
public static cn.hutool.core.lang.Snowflake getSnowflake(long workerId, long dataCenterId)
workerId
- 终端IDdataCenterId
- 数据中心IDSnowflake
public static String createLinkString(Map<String,String> params)
params
- 需要排序并参与字符拼接的参数组public static String createLinkString(Map<String,String> params, boolean encode)
params
- 需要排序并参与字符拼接的参数组encode
- 是否进行URLEncoderpublic static String createLinkString(Map<String,String> params, String connStr, boolean encode)
params
- 需要排序并参与字符拼接的参数组connStr
- 连接符号encode
- 是否进行URLEncoderpublic static String createLinkString(Map<String,String> params, String connStr, boolean encode, boolean quotes)
public static String urlEncode(String src)
src
- 需要编码的字符串public static StringBuffer forEachMap(Map<String,String> params, String prefix, String suffix)
params
- 需要遍历的 Mapprefix
- xml 前缀suffix
- xml 后缀public static String toXml(Map<String,String> params)
params
- Map 参数public static Map<String,String> xmlToMap(String xmlStr)
xmlStr
- xml 字符串public static String buildSignMessage(RequestMethod method, String url, long timestamp, String nonceStr, String body)
method
- RequestMethod
GET,POST,PUT等url
- 请求接口 /v3/certificatestimestamp
- 获取发起请求时的系统当前时间戳nonceStr
- 随机字符串body
- 请求报文主体public static String buildSignMessage(String timestamp, String nonceStr, String body)
timestamp
- 应答时间戳nonceStr
- 应答随机串body
- 应答报文主体public static String buildSignMessage(ArrayList<String> signMessage)
signMessage
- 待签名的参数public static String createSign(ArrayList<String> signMessage, String keyPath) throws Exception
signMessage
- 待签名的参数keyPath
- key.pem 证书路径Exception
- 异常信息public static String createSign(ArrayList<String> signMessage, PrivateKey privateKey) throws Exception
signMessage
- 待签名的参数privateKey
- 商户私钥Exception
- 异常信息public static String createSign(String signMessage, String keyPath) throws Exception
signMessage
- 待签名的参数keyPath
- key.pem 证书路径Exception
- 异常信息public static String createSign(String signMessage, PrivateKey privateKey) throws Exception
signMessage
- 待签名的参数privateKey
- 商户私钥Exception
- 异常信息public static String getAuthorization(String mchId, String serialNo, String nonceStr, String timestamp, String signature, String authType)
mchId
- 商户号serialNo
- 商户API证书序列号nonceStr
- 请求随机串timestamp
- 时间戳signature
- 签名值authType
- 认证类型,目前为WECHATPAY2-SHA256-RSA2048public static PrivateKey getPrivateKey(String keyPath) throws Exception
keyPath
- 商户私钥证书路径PrivateKey
商户私钥Exception
- 异常信息public static PrivateKey getPrivateKeyByKeyContent(String originalKey) throws Exception
originalKey
- 私钥文本内容PrivateKey
商户私钥Exception
- 异常信息public static X509Certificate getCertificate(InputStream inputStream)
inputStream
- 证书文件X509Certificate
获取证书public static String rsaEncryptOAEP(String data, X509Certificate certificate) throws Exception
data
- 待加密数据certificate
- 平台公钥证书Exception
- 异常信息public static String rsaDecryptOAEP(String cipherText, PrivateKey privateKey) throws Exception
cipherText
- 加密字符privateKey
- 私钥Exception
- 异常信息public static InputStream getFileToStream(String classPath)
classPath
- 静态资源路径public static String getAbsolutePath(String classPath)
classPath
- 静态资源路径public static InputStream getCertFileInputStream(String path) throws IOException
path
- 文件路径IOException
- 异常信息Copyright © 2022. All rights reserved.