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 - 数据中心IDSnowflakepublic 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.