类 PayKit
java.lang.Object
com.ijpay.core.kit.PayKit
IJPay 让支付触手可及,封装了微信支付、支付宝支付、银联支付常用的支付方式以及各种常用的接口。
不依赖任何第三方 mvc 框架,仅仅作为工具使用简单快速完成支付模块的开发,可轻松嵌入到任何系统里。
IJPay 交流群: 723992875、864988890
Node.js 版: https://gitee.com/javen205/TNWX
IJPay 工具类
- 作者:
- Javen
-
字段概要
字段 -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明static StringbuildSignMessage(RequestMethodEnum method, String url, long timestamp, String nonceStr, String body) 构造签名串static StringbuildSignMessage(String timestamp, String nonceStr, String body) 构造签名串static StringbuildSignMessage(ArrayList<String> signMessage) 构造签名串static booleancheckCertificateIsValid(CertificateModel model, String mchId, int offsetDay) 检查证书是否可用static booleancheckCertificateIsValid(String path, String mchId, int offsetDay) 检查证书是否可用static booleancheckCertificateIsValid(X509Certificate certificate, String mchId, int offsetDay) 检查证书是否可用static StringcreateLinkString(Map<String, String> params) 把所有元素排序static StringcreateLinkString(Map<String, String> params, boolean encode) static StringcreateLinkString(Map<String, String> params, String connStr, boolean encode) static StringcreateLinkString(Map<String, String> params, String connStr, boolean encode, boolean quotes) static StringcreateSign(String signMessage, String keyPath, String authType) v3 接口创建签名static StringcreateSign(String signMessage, PrivateKey privateKey) v3 接口创建签名static StringcreateSign(ArrayList<String> signMessage, String keyPath, String authType) v3 接口创建签名static StringcreateSign(ArrayList<String> signMessage, PrivateKey privateKey) v3 接口创建签名static StringdecryptData(String base64Data, String key) AES 解密static StringencryptData(String data, String key) AES 加密static StringBuffer遍历 Map 并构建 xml 数据static String简化的UUID,去掉了横线,使用性能更好的 ThreadLocalRandom 生成UUIDstatic StringgetAbsolutePath(String classPath) 传入 classPath 静态资源路径返回绝对路径static StringgetAuthorization(String mchId, String serialNo, String nonceStr, String timestamp, String signature, String authType) 获取授权认证信息static StringgetCertFileContent(String path) 通过路径获取证书文件的内容static InputStreamgetCertFileInputStream(String path) 通过路径获取证书文件的输入流static X509CertificategetCertificate(InputStream inputStream) 获取证书static X509CertificategetCertificate(String path) 获取证书static CertificateModelgetCertificateInfo(String path) 获取证书详细信息static CertificateModelgetCertificateInfo(X509Certificate certificate) 获取证书详细信息static StringgetFilePath(String path) 获取文件真实路径static InputStreamgetFileToStream(String classPath) 传入 classPath 静态资源路径返回文件输入流static PrivateKeygetPrivateKey(String keyPath, String authType) 获取商户私钥static StringgetPrivateKeyByContent(String originalKey) 获取证书内容static PrivateKeygetPrivateKeyByKeyContent(String originalKey, String authType) 获取商户私钥static StringgetPrivateKeyStr(String keyPath, String authType) 获取商户私钥static StringgetPublicKeyByContent(String originalKey) 获取证书内容static PrivateKeygetSmPrivateKey(byte[] encPrivate) 获取国密证书私钥static PrivateKeygetSmPrivateKey(String privateKey) 获取国密证书私钥static PublicKeygetSmPublicKey(byte[] encPublic) 获取国密证书公钥static PublicKeygetSmPublicKey(String publicKey) 获取国密证书公钥static cn.hutool.core.lang.SnowflakegetSnowflake(long workerId, long dataCenterId) 雪花算法static StringhmacSha256(String data, String key) 生成16进制的 sha256 字符串static String生成16进制 MD5 字符串static StringrsaDecryptOAEP(String cipherText, PrivateKey privateKey) 私钥解密static StringrsaEncryptOAEP(String data, X509Certificate certificate) 公钥加密static StringSHA1加密文件,生成16进制SHA1字符串static Stringsha1(InputStream data) SHA1加密,生成16进制SHA1字符串static StringSHA1加密,生成16进制SHA1字符串static Stringsm2SignWithSm3(String privateKey, String content) 签名static Stringsm2SignWithSm3(PrivateKey privateKey, String content) 签名static byte[]SM3 Hashstatic Stringsm4DecryptToString(String key3, String cipherText, String nonce, String associatedData) 下载平台证书以及回调通知加解密static booleanstatic boolean国密验签static String微信下单 map to xmlstatic StringURL 编码针对支付的 xml,没有嵌套节点的简单处理
-
字段详细资料
-
CLASS_PATH_PREFIX
对象路径前缀- 另请参阅:
-
-
构造器详细资料
-
PayKit
public PayKit()
-
-
方法详细资料
-
getSmPrivateKey
获取国密证书私钥- 参数:
privateKey- 私钥- 返回:
- 返回值
- 抛出:
Exception- 异常信息
-
getSmPublicKey
获取国密证书公钥- 参数:
publicKey- 公钥- 返回:
- 返回值
- 抛出:
Exception- 异常信息
-
getSmPrivateKey
获取国密证书私钥- 参数:
encPrivate- 私钥- 返回:
- 返回值
- 抛出:
Exception- 异常信息
-
getSmPublicKey
获取国密证书公钥- 参数:
encPublic- 公钥- 返回:
- 返回值
- 抛出:
Exception- 异常信息
-
sm2SignWithSm3
签名- 参数:
privateKey- 私钥content- 需要签名的内容- 返回:
- 返回结果
- 抛出:
Exception- 异常信息
-
sm2SignWithSm3
签名- 参数:
privateKey- 私钥content- 需要签名的内容- 返回:
- 返回结果
- 抛出:
Exception- 异常信息
-
sm3Hash
SM3 Hash- 参数:
content- 原始内容- 返回:
- 返回结果
- 抛出:
Exception- 异常信息
-
sm4DecryptToString
public static String sm4DecryptToString(String key3, String cipherText, String nonce, String associatedData) throws Exception 下载平台证书以及回调通知加解密- 参数:
key3- APIv3密钥cipherText- 密文nonce- 随机串associatedData- 附加数据- 返回:
- 解密后的明文
- 抛出:
Exception- 异常信息
-
sm4Verify
public static boolean sm4Verify(String publicKey, String plainText, String originalSignature) throws Exception - 抛出:
Exception
-
sm4Verify
public static boolean sm4Verify(PublicKey publicKey, String data, String originalSignature) throws Exception 国密验签- 参数:
publicKey- 平台证书公钥data- 待验签的签名原文originalSignature- 签名值- 返回:
- 验签结果
- 抛出:
Exception- 异常信息
-
hmacSha256
生成16进制的 sha256 字符串- 参数:
data- 数据key- 密钥- 返回:
- sha256 字符串
-
sha1
SHA1加密文件,生成16进制SHA1字符串- 参数:
dataFile- 被加密文件- 返回:
- SHA1 字符串
-
sha1
SHA1加密,生成16进制SHA1字符串- 参数:
data- 数据- 返回:
- SHA1 字符串
-
sha1
SHA1加密,生成16进制SHA1字符串- 参数:
data- 数据- 返回:
- SHA1 字符串
-
md5
生成16进制 MD5 字符串- 参数:
data- 数据- 返回:
- MD5 字符串
-
decryptData
AES 解密- 参数:
base64Data- 需要解密的数据key- 密钥- 返回:
- 解密后的数据
-
encryptData
AES 加密- 参数:
data- 需要加密的数据key- 密钥- 返回:
- 加密后的数据
-
generateStr
简化的UUID,去掉了横线,使用性能更好的 ThreadLocalRandom 生成UUID- 返回:
- 简化的 UUID,去掉了横线
-
getSnowflake
public static cn.hutool.core.lang.Snowflake getSnowflake(long workerId, long dataCenterId) 雪花算法- 参数:
workerId- 终端IDdataCenterId- 数据中心ID- 返回:
Snowflake
-
createLinkString
把所有元素排序- 参数:
params- 需要排序并参与字符拼接的参数组- 返回:
- 拼接后字符串
-
createLinkString
- 参数:
params- 需要排序并参与字符拼接的参数组encode- 是否进行URLEncoder- 返回:
- 拼接后字符串
-
createLinkString
- 参数:
params- 需要排序并参与字符拼接的参数组connStr- 连接符号encode- 是否进行URLEncoder- 返回:
- 拼接后字符串
-
createLinkString
-
urlEncode
URL 编码- 参数:
src- 需要编码的字符串- 返回:
- 编码后的字符串
-
forEachMap
遍历 Map 并构建 xml 数据- 参数:
params- 需要遍历的 Mapprefix- xml 前缀suffix- xml 后缀- 返回:
- xml 字符串
-
toXml
微信下单 map to xml- 参数:
params- Map 参数- 返回:
- xml 字符串
-
xmlToMap
针对支付的 xml,没有嵌套节点的简单处理- 参数:
xmlStr- xml 字符串- 返回:
- 转化后的 Map
-
buildSignMessage
public static String buildSignMessage(RequestMethodEnum method, String url, long timestamp, String nonceStr, String body) 构造签名串- 参数:
method-RequestMethodEnumGET,POST,PUT等url- 请求接口 /v3/certificatestimestamp- 获取发起请求时的系统当前时间戳nonceStr- 随机字符串body- 请求报文主体- 返回:
- 待签名字符串
-
buildSignMessage
构造签名串- 参数:
timestamp- 应答时间戳nonceStr- 应答随机串body- 应答报文主体- 返回:
- 应答待签名字符串
-
buildSignMessage
构造签名串- 参数:
signMessage- 待签名的参数- 返回:
- 构造后带待签名串
-
createSign
public static String createSign(ArrayList<String> signMessage, String keyPath, String authType) throws Exception v3 接口创建签名- 参数:
signMessage- 待签名的参数keyPath- key.pem 证书路径- 返回:
- 生成 v3 签名
- 抛出:
Exception- 异常信息
-
createSign
public static String createSign(ArrayList<String> signMessage, PrivateKey privateKey) throws Exception v3 接口创建签名- 参数:
signMessage- 待签名的参数privateKey- 商户私钥- 返回:
- 生成 v3 签名
- 抛出:
Exception- 异常信息
-
createSign
public static String createSign(String signMessage, String keyPath, String authType) throws Exception v3 接口创建签名- 参数:
signMessage- 待签名的参数keyPath- key.pem 证书路径- 返回:
- 生成 v3 签名
- 抛出:
Exception- 异常信息
-
createSign
v3 接口创建签名- 参数:
signMessage- 待签名的参数privateKey- 商户私钥- 返回:
- 生成 v3 签名
- 抛出:
Exception- 异常信息
-
getAuthorization
public static String getAuthorization(String mchId, String serialNo, String nonceStr, String timestamp, String signature, String authType) 获取授权认证信息- 参数:
mchId- 商户号serialNo- 商户API证书序列号nonceStr- 请求随机串timestamp- 时间戳signature- 签名值authType- 认证类型- 返回:
- 请求头 Authorization
-
getPrivateKeyStr
获取商户私钥 -
getPrivateKey
获取商户私钥- 参数:
keyPath- 商户私钥证书路径- 返回:
PrivateKey商户私钥- 抛出:
Exception- 异常信息
-
getPrivateKeyByKeyContent
public static PrivateKey getPrivateKeyByKeyContent(String originalKey, String authType) throws Exception 获取商户私钥- 参数:
originalKey- 私钥文本内容- 返回:
PrivateKey商户私钥- 抛出:
Exception- 异常信息
-
getPrivateKeyByContent
获取证书内容- 参数:
originalKey- 私钥文本内容- 返回:
- 商户私钥
-
getPublicKeyByContent
获取证书内容- 参数:
originalKey- 公钥文本内容- 返回:
- 商户公钥
-
getCertificate
获取证书- 参数:
inputStream- 证书文件- 返回:
X509Certificate获取证书
-
getCertificate
获取证书- 参数:
path- 证书路径,支持相对路径以及绝得路径- 返回:
X509Certificate获取证书
-
getCertificateInfo
获取证书详细信息- 参数:
certificate-X509Certificate证书- 返回:
CertificateModel获取证书详细信息
-
getCertificateInfo
获取证书详细信息- 参数:
path- 证书路径,支持相对路径以及绝得路径- 返回:
CertificateModel获取证书详细信息
-
checkCertificateIsValid
检查证书是否可用- 参数:
model-CertificateModel证书详细 modelmchId- 商户号offsetDay- 偏移天数,正数向未来偏移,负数向历史偏移- 返回:
- true 有效 false 无效
-
checkCertificateIsValid
public static boolean checkCertificateIsValid(X509Certificate certificate, String mchId, int offsetDay) 检查证书是否可用- 参数:
certificate-X509Certificate证书mchId- 商户号offsetDay- 偏移天数,正数向未来偏移,负数向历史偏移- 返回:
- true 有效 false 无效
-
checkCertificateIsValid
检查证书是否可用- 参数:
path- 证书路径,支持相对路径以及绝得路径mchId- 商户号offsetDay- 偏移天数,正数向未来偏移,负数向历史偏移- 返回:
- true 有效 false 无效
-
rsaEncryptOAEP
公钥加密- 参数:
data- 待加密数据certificate- 平台公钥证书- 返回:
- 加密后的数据
- 抛出:
Exception- 异常信息
-
rsaDecryptOAEP
私钥解密- 参数:
cipherText- 加密字符privateKey- 私钥- 返回:
- 解密后的数据
- 抛出:
Exception- 异常信息
-
getFileToStream
传入 classPath 静态资源路径返回文件输入流- 参数:
classPath- 静态资源路径- 返回:
- InputStream
-
getAbsolutePath
传入 classPath 静态资源路径返回绝对路径- 参数:
classPath- 静态资源路径- 返回:
- 绝对路径
-
getCertFileInputStream
通过路径获取证书文件的输入流- 参数:
path- 文件路径- 返回:
- 文件流
- 抛出:
IOException- 异常信息
-
getCertFileContent
通过路径获取证书文件的内容- 参数:
path- 文件路径- 返回:
- 文件内容
- 抛出:
IOException
-
getFilePath
获取文件真实路径- 参数:
path- 文件地址- 返回:
- 返回文件真实路径
-