public class WxPayKit extends Object
IJPay 让支付触手可及,封装了微信支付、支付宝支付、银联支付常用的支付方式以及各种常用的接口。
不依赖任何第三方 mvc 框架,仅仅作为工具使用简单快速完成支付模块的开发,可轻松嵌入到任何系统里。
IJPay 交流群: 723992875
Node.js 版: https://gitee.com/javen205/TNWX
微信支付工具类
Constructor and Description |
---|
WxPayKit() |
Modifier and Type | Method and Description |
---|---|
static Map<String,String> |
appCreateSign(String appId,
String partnerId,
String prepayId,
PrivateKey privateKey)
App 调起支付签名
|
static Map<String,String> |
appCreateSign(String appId,
String partnerId,
String prepayId,
String keyPath)
App 调起支付签名
|
static Map<String,String> |
appPrepayIdCreateSign(String appId,
String partnerId,
String prepayId,
String partnerKey,
SignType signType)
APP 支付-预付订单再次签名
|
static String |
bizPayUrl(String partnerKey,
String appId,
String mchId,
String productId)
生成二维码链接
|
static String |
bizPayUrl(String sign,
String appId,
String mchId,
String productId,
String timeStamp,
String nonceStr)
生成二维码链接
|
static String |
bizPayUrl(String partnerKey,
String appId,
String mchId,
String productId,
String timeStamp,
String nonceStr,
SignType signType)
生成二维码链接
|
static String |
buildAuthorization(RequestMethod method,
String urlSuffix,
String mchId,
String serialNo,
PrivateKey privateKey,
String body)
构建 v3 接口所需的 Authorization
|
static String |
buildAuthorization(RequestMethod method,
String urlSuffix,
String mchId,
String serialNo,
PrivateKey privateKey,
String body,
String nonceStr,
long timestamp,
String authType)
构建 v3 接口所需的 Authorization
|
static String |
buildAuthorization(RequestMethod method,
String urlSuffix,
String mchId,
String serialNo,
String keyPath,
String body)
构建 v3 接口所需的 Authorization
|
static String |
buildAuthorization(RequestMethod method,
String urlSuffix,
String mchId,
String serialNo,
String keyPath,
String body,
String nonceStr,
long timestamp,
String authType)
构建 v3 接口所需的 Authorization
|
static Map<String,String> |
buildSign(Map<String,String> params,
String partnerKey,
SignType signType)
构建签名
|
static Map<String,String> |
buildSign(Map<String,String> params,
String partnerKey,
SignType signType,
boolean haveSignType)
构建签名
|
static Map<String,String> |
buildSign(Map<String,String> params,
String partnerKey,
SignType signType,
String signKey,
String signTypeKey,
boolean haveSignType)
构建签名
|
static boolean |
codeIsOk(String codeValue)
判断接口返回的 code
|
static String |
createSign(Map<String,String> params,
String secret)
生成签名
|
static String |
createSign(Map<String,String> params,
String partnerKey,
SignType signType)
生成签名
|
static String |
createSign(Map<String,String> params,
String partnerKey,
SignType signType,
String signKey)
生成签名
|
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) |
static String |
generateStr() |
static String |
hmacSha256(String data,
String key) |
static Map<String,String> |
jsApiCreateSign(String appId,
String prepayId,
PrivateKey privateKey)
JS 调起支付签名
|
static Map<String,String> |
jsApiCreateSign(String appId,
String prepayId,
String keyPath)
JS 调起支付签名
|
static String |
md5(String data) |
static Map<String,String> |
miniAppPrepayIdCreateSign(String appId,
String prepayId,
String partnerKey,
SignType signType)
小程序-预付订单再次签名
|
static Map<String,String> |
prepayIdCreateSign(String prepayId,
String appId,
String partnerKey,
SignType signType)
公众号支付-预付订单再次签名
|
static String |
replace(String str,
String regex,
String... args)
替换url中的参数
|
static String |
toXml(Map<String,String> params)
微信下单 map to xml
|
static boolean |
verifyNotify(Map<String,String> params,
String partnerKey)
支付异步通知时校验 sign
|
static boolean |
verifyNotify(Map<String,String> params,
String partnerKey,
SignType signType)
支付异步通知时校验 sign
|
static boolean |
verifyNotify(Map<String,String> params,
String partnerKey,
SignType signType,
String signKey)
支付异步通知时校验 sign
|
static boolean |
verifyNotify(Map<String,String> params,
String partnerKey,
String signKey)
支付异步通知时校验 sign
|
static String |
verifyNotify(String serialNo,
String body,
String signature,
String nonce,
String timestamp,
String key,
InputStream certInputStream)
v3 支付异步通知验证签名
|
static String |
verifyNotify(String serialNo,
String body,
String signature,
String nonce,
String timestamp,
String key,
String certPath)
v3 支付异步通知验证签名
|
static boolean |
verifySignature(IJPayHttpResponse response,
InputStream certInputStream)
验证签名
|
static boolean |
verifySignature(IJPayHttpResponse response,
String certPath)
验证签名
|
static boolean |
verifySignature(Map<String,Object> map,
InputStream certInputStream)
Deprecated.
|
static boolean |
verifySignature(Map<String,Object> map,
String certPath)
Deprecated.
|
static boolean |
verifySignature(String signature,
String body,
String nonce,
String timestamp,
InputStream certInputStream)
验证签名
|
static boolean |
verifySignature(String signature,
String body,
String nonce,
String timestamp,
PublicKey publicKey)
验证签名
|
static boolean |
verifySignature(String signature,
String body,
String nonce,
String timestamp,
String publicKey)
验证签名
|
static Map<String,String> |
xmlToMap(String xmlStr)
针对支付的 xml,没有嵌套节点的简单处理
|
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 boolean verifyNotify(Map<String,String> params, String partnerKey)
params
- 参数partnerKey
- 支付密钥public static boolean verifyNotify(Map<String,String> params, String partnerKey, SignType signType, String signKey)
params
- 参数partnerKey
- 支付密钥signType
- 签名类型signKey
- 签名字符public static boolean verifyNotify(Map<String,String> params, String partnerKey, String signKey)
params
- 参数partnerKey
- 支付密钥signKey
- 签名字符public static boolean verifyNotify(Map<String,String> params, String partnerKey, SignType signType)
public static String createSign(Map<String,String> params, String partnerKey, SignType signType)
params
- 需要签名的参数partnerKey
- 密钥signType
- 签名类型public static String createSign(Map<String,String> params, String partnerKey, SignType signType, String signKey)
params
- 需要签名的参数partnerKey
- 密钥signType
- 签名类型signKey
- 签名字符public static String createSign(Map<String,String> params, String secret)
params
- 需要签名的参数secret
- 企业微信支付应用secretpublic static Map<String,String> buildSign(Map<String,String> params, String partnerKey, SignType signType)
params
- 需要签名的参数partnerKey
- 密钥signType
- 签名类型public static Map<String,String> buildSign(Map<String,String> params, String partnerKey, SignType signType, boolean haveSignType)
params
- 需要签名的参数partnerKey
- 密钥signType
- 签名类型haveSignType
- 签名是否包含 sign_type 字段public static Map<String,String> buildSign(Map<String,String> params, String partnerKey, SignType signType, String signKey, String signTypeKey, boolean haveSignType)
params
- 需要签名的参数partnerKey
- 密钥signType
- 签名类型signKey
- 签名字符串signTypeKey
- 签名类型字符串haveSignType
- 签名是否包含签名类型字符串public static StringBuffer forEachMap(Map<String,String> params, String prefix, String suffix)
public static String toXml(Map<String,String> params)
params
- Map 参数public static Map<String,String> xmlToMap(String xmlStr)
xmlStr
- xml 字符串public static String bizPayUrl(String sign, String appId, String mchId, String productId, String timeStamp, String nonceStr)
生成二维码链接
原生支付接口模式一(扫码模式一)
sign
- 签名appId
- 公众账号IDmchId
- 商户号productId
- 商品IDtimeStamp
- 时间戳nonceStr
- 随机字符串public static String bizPayUrl(String partnerKey, String appId, String mchId, String productId, String timeStamp, String nonceStr, SignType signType)
生成二维码链接
原生支付接口模式一(扫码模式一)
partnerKey
- 密钥appId
- 公众账号IDmchId
- 商户号productId
- 商品IDtimeStamp
- 时间戳nonceStr
- 随机字符串signType
- 签名类型public static String bizPayUrl(String partnerKey, String appId, String mchId, String productId)
生成二维码链接
原生支付接口模式一(扫码模式一)
partnerKey
- 密钥appId
- 公众账号IDmchId
- 商户号productId
- 商品IDpublic static String replace(String str, String regex, String... args)
str
- 原始字符串regex
- 表达式args
- 替换字符串public static boolean codeIsOk(String codeValue)
codeValue
- code 值public static Map<String,String> prepayIdCreateSign(String prepayId, String appId, String partnerKey, SignType signType)
公众号支付-预付订单再次签名
注意此处签名方式需与统一下单的签名类型一致
prepayId
- 预付订单号appId
- 应用编号partnerKey
- API KeysignType
- 签名方式public static Map<String,String> jsApiCreateSign(String appId, String prepayId, String keyPath) throws Exception
appId
- 应用编号prepayId
- 预付订单号keyPath
- key.pem 证书路径Exception
- 错误信息public static Map<String,String> jsApiCreateSign(String appId, String prepayId, PrivateKey privateKey) throws Exception
appId
- 应用编号prepayId
- 预付订单号privateKey
- 商户私钥Exception
- 错误信息public static Map<String,String> appPrepayIdCreateSign(String appId, String partnerId, String prepayId, String partnerKey, SignType signType)
APP 支付-预付订单再次签名
注意此处签名方式需与统一下单的签名类型一致
appId
- 应用编号partnerId
- 商户号prepayId
- 预付订单号partnerKey
- API KeysignType
- 签名方式public static Map<String,String> appCreateSign(String appId, String partnerId, String prepayId, String keyPath) throws Exception
appId
- 应用编号partnerId
- 商户编号prepayId
- 预付订单号keyPath
- key.pem 证书路径Exception
- 错误信息public static Map<String,String> appCreateSign(String appId, String partnerId, String prepayId, PrivateKey privateKey) throws Exception
appId
- 应用编号partnerId
- 商户编号prepayId
- 预付订单号privateKey
- 商户私钥Exception
- 错误信息public static Map<String,String> miniAppPrepayIdCreateSign(String appId, String prepayId, String partnerKey, SignType signType)
小程序-预付订单再次签名
注意此处签名方式需与统一下单的签名类型一致
appId
- 应用编号prepayId
- 预付订单号partnerKey
- API KeysignType
- 签名方式public static String buildAuthorization(RequestMethod method, String urlSuffix, String mchId, String serialNo, String keyPath, String body, String nonceStr, long timestamp, String authType) throws Exception
method
- RequestMethod
请求方法urlSuffix
- 可通过 WxApiType 来获取,URL挂载参数需要自行拼接mchId
- 商户IdserialNo
- 商户 API 证书序列号keyPath
- key.pem 证书路径body
- 接口请求参数nonceStr
- 随机字符库timestamp
- 时间戳authType
- 认证类型String
返回 v3 所需的 AuthorizationException
- 异常信息public static String buildAuthorization(RequestMethod method, String urlSuffix, String mchId, String serialNo, PrivateKey privateKey, String body, String nonceStr, long timestamp, String authType) throws Exception
method
- RequestMethod
请求方法urlSuffix
- 可通过 WxApiType 来获取,URL挂载参数需要自行拼接mchId
- 商户IdserialNo
- 商户 API 证书序列号privateKey
- 商户私钥body
- 接口请求参数nonceStr
- 随机字符库timestamp
- 时间戳authType
- 认证类型String
返回 v3 所需的 AuthorizationException
- 异常信息public static String buildAuthorization(RequestMethod method, String urlSuffix, String mchId, String serialNo, String keyPath, String body) throws Exception
method
- RequestMethod
请求方法urlSuffix
- 可通过 WxApiType 来获取,URL挂载参数需要自行拼接mchId
- 商户IdserialNo
- 商户 API 证书序列号keyPath
- key.pem 证书路径body
- 接口请求参数String
返回 v3 所需的 AuthorizationException
- 异常信息public static String buildAuthorization(RequestMethod method, String urlSuffix, String mchId, String serialNo, PrivateKey privateKey, String body) throws Exception
method
- RequestMethod
请求方法urlSuffix
- 可通过 WxApiType 来获取,URL挂载参数需要自行拼接mchId
- 商户IdserialNo
- 商户 API 证书序列号privateKey
- key.pem 证书路径body
- 接口请求参数String
返回 v3 所需的 AuthorizationException
- 异常信息@Deprecated public static boolean verifySignature(Map<String,Object> map, String certPath) throws Exception
map
- 接口请求返回的 MapcertPath
- 平台证书路径Exception
- 异常信息public static boolean verifySignature(IJPayHttpResponse response, String certPath) throws Exception
response
- 接口请求返回的 IJPayHttpResponse
certPath
- 平台证书路径Exception
- 异常信息public static boolean verifySignature(IJPayHttpResponse response, InputStream certInputStream) throws Exception
response
- 接口请求返回的 IJPayHttpResponse
certInputStream
- 平台证书Exception
- 异常信息@Deprecated public static boolean verifySignature(Map<String,Object> map, InputStream certInputStream) throws Exception
map
- 接口请求返回的 MapcertInputStream
- 平台证书输入流Exception
- 异常信息public static boolean verifySignature(String signature, String body, String nonce, String timestamp, String publicKey) throws Exception
signature
- 待验证的签名body
- 应答主体nonce
- 随机串timestamp
- 时间戳publicKey
- 微信支付平台公钥Exception
- 异常信息public static boolean verifySignature(String signature, String body, String nonce, String timestamp, PublicKey publicKey) throws Exception
public static boolean verifySignature(String signature, String body, String nonce, String timestamp, InputStream certInputStream) throws Exception
signature
- 待验证的签名body
- 应答主体nonce
- 随机串timestamp
- 时间戳certInputStream
- 微信支付平台证书输入流Exception
- 异常信息public static String verifyNotify(String serialNo, String body, String signature, String nonce, String timestamp, String key, InputStream certInputStream) throws Exception
serialNo
- 证书序列号body
- 异步通知密文signature
- 签名nonce
- 随机字符串timestamp
- 时间戳key
- api 密钥certInputStream
- 平台证书Exception
- 异常信息public static String verifyNotify(String serialNo, String body, String signature, String nonce, String timestamp, String key, String certPath) throws Exception
serialNo
- 证书序列号body
- 异步通知密文signature
- 签名nonce
- 随机字符串timestamp
- 时间戳key
- api 密钥certPath
- 平台证书路径Exception
- 异常信息Copyright © 2022. All rights reserved.