类 WxPayKit
java.lang.Object
com.ijpay.core.kit.WxPayKit
IJPay 让支付触手可及,封装了微信支付、支付宝支付、银联支付常用的支付方式以及各种常用的接口。
不依赖任何第三方 mvc 框架,仅仅作为工具使用简单快速完成支付模块的开发,可轻松嵌入到任何系统里。
IJPay 交流群: 723992875、864988890
Node.js 版: https://gitee.com/javen205/TNWX
微信支付工具类
- 作者:
- Javen
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明appCreateSign(String appId, String partnerId, String prepayId, String keyPath) App 调起支付签名appCreateSign(String appId, String partnerId, String prepayId, PrivateKey privateKey) App 调起支付签名appPrepayIdCreateSign(String appId, String partnerId, String prepayId, String partnerKey, SignType signType) APP 支付-预付订单再次签名static String生成二维码链接static StringbizPayUrl(String sign, String appId, String mchId, String productId, String timeStamp, String nonceStr) 生成二维码链接static StringbizPayUrl(String partnerKey, String appId, String mchId, String productId, String timeStamp, String nonceStr, SignType signType) 生成二维码链接static StringbuildAuthorization(RequestMethodEnum method, String urlSuffix, String mchId, String serialNo, String keyPath, String body) 构建 v3 接口所需的 Authorizationstatic StringbuildAuthorization(RequestMethodEnum method, String urlSuffix, String mchId, String serialNo, String keyPath, String body, String nonceStr, long timestamp, String authType) 构建 v3 接口所需的 Authorizationstatic StringbuildAuthorization(RequestMethodEnum method, String urlSuffix, String mchId, String serialNo, PrivateKey privateKey, String body) 构建 v3 接口所需的 Authorizationstatic StringbuildAuthorization(RequestMethodEnum method, String urlSuffix, String mchId, String serialNo, PrivateKey privateKey, String body, String nonceStr, long timestamp, String authType) 构建 v3 接口所需的 Authorization构建签名构建签名buildSign(Map<String, String> params, String partnerKey, SignType signType, String signKey, String signTypeKey, boolean haveSignType) 构建签名static boolean判断接口返回的 codestatic StringcreateSign(Map<String, String> params, String secret) 生成签名static String生成签名static String生成签名static StringdecryptData(String base64Data, String key) AES 解密static StringencryptData(String data, String key) AES 加密static StringBufferstatic Stringstatic StringhmacSha256(String data, String key) jsApiCreateSign(String appId, String prepayId, String keyPath) JS 调起支付签名jsApiCreateSign(String appId, String prepayId, PrivateKey privateKey) JS 调起支付签名static StringminiAppPrepayIdCreateSign(String appId, String prepayId, String partnerKey, SignType signType) 小程序-预付订单再次签名prepayIdCreateSign(String prepayId, String appId, String partnerKey, SignType signType) 公众号支付-预付订单再次签名static String替换url中的参数static String微信下单 map to xmlstatic StringverifyNotify(String serialNo, String body, String signature, String nonce, String timestamp, String key, InputStream certInputStream) v3 支付异步通知验证签名static StringverifyNotify(String serialNo, String body, String signature, String nonce, String timestamp, String key, String certPath) v3 支付异步通知验证签名static booleanverifyNotify(Map<String, String> params, String partnerKey) 支付异步通知时校验 signstatic boolean支付异步通知时校验 signstatic boolean支付异步通知时校验 signstatic boolean支付异步通知时校验 signstatic booleanverifySignature(IJPayHttpResponse response, InputStream certInputStream) 验证签名static booleanverifySignature(IJPayHttpResponse response, String certPath) 验证签名static boolean验证签名static booleanverifySignature(String signatureType, String signature, String body, String nonce, String timestamp, InputStream certInputStream) 验证签名static boolean验证签名static booleanverifySignature(Map<String, Object> map, InputStream certInputStream) 已过时。static booleanverifySignature(Map<String, Object> map, String certPath) 已过时。针对支付的 xml,没有嵌套节点的简单处理
-
构造器详细资料
-
WxPayKit
public WxPayKit()
-
-
方法详细资料
-
hmacSha256
-
md5
-
decryptData
AES 解密- 参数:
base64Data- 需要解密的数据key- 密钥- 返回:
- 解密后的数据
-
encryptData
AES 加密- 参数:
data- 需要加密的数据key- 密钥- 返回:
- 加密后的数据
-
generateStr
-
verifyNotify
支付异步通知时校验 sign- 参数:
params- 参数partnerKey- 支付密钥- 返回:
- {boolean}
-
verifyNotify
public static boolean verifyNotify(Map<String, String> params, String partnerKey, SignType signType, String signKey) 支付异步通知时校验 sign- 参数:
params- 参数partnerKey- 支付密钥signType- 签名类型signKey- 签名字符- 返回:
- {boolean}
-
verifyNotify
支付异步通知时校验 sign- 参数:
params- 参数partnerKey- 支付密钥signKey- 签名字符- 返回:
- {boolean}
-
verifyNotify
支付异步通知时校验 sign -
createSign
生成签名- 参数:
params- 需要签名的参数partnerKey- 密钥signType- 签名类型- 返回:
- 签名后的数据
-
createSign
public static String createSign(Map<String, String> params, String partnerKey, SignType signType, String signKey) 生成签名- 参数:
params- 需要签名的参数partnerKey- 密钥signType- 签名类型signKey- 签名字符- 返回:
- 签名后的数据
-
createSign
生成签名- 参数:
params- 需要签名的参数secret- 企业微信支付应用secret- 返回:
- 签名后的数据
-
buildSign
public static Map<String,String> buildSign(Map<String, String> params, String partnerKey, SignType signType) 构建签名- 参数:
params- 需要签名的参数partnerKey- 密钥signType- 签名类型- 返回:
- 签名后的 Map
-
buildSign
public static Map<String,String> buildSign(Map<String, String> params, String partnerKey, SignType signType, boolean haveSignType) 构建签名- 参数:
params- 需要签名的参数partnerKey- 密钥signType- 签名类型haveSignType- 签名是否包含 sign_type 字段- 返回:
- 签名后的 Map
-
buildSign
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- 签名是否包含签名类型字符串- 返回:
- 签名后的 Map
-
forEachMap
-
toXml
微信下单 map to xml- 参数:
params- Map 参数- 返回:
- xml 字符串
-
xmlToMap
针对支付的 xml,没有嵌套节点的简单处理- 参数:
xmlStr- xml 字符串- 返回:
- 转化后的 Map
-
bizPayUrl
public static String bizPayUrl(String sign, String appId, String mchId, String productId, String timeStamp, String nonceStr) 生成二维码链接
原生支付接口模式一(扫码模式一)
- 参数:
sign- 签名appId- 公众账号IDmchId- 商户号productId- 商品IDtimeStamp- 时间戳nonceStr- 随机字符串- 返回:
- {String}
-
bizPayUrl
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- 签名类型- 返回:
- {String}
-
bizPayUrl
生成二维码链接
原生支付接口模式一(扫码模式一)
- 参数:
partnerKey- 密钥appId- 公众账号IDmchId- 商户号productId- 商品ID- 返回:
- {String}
-
replace
替换url中的参数- 参数:
str- 原始字符串regex- 表达式args- 替换字符串- 返回:
- {String}
-
codeIsOk
判断接口返回的 code- 参数:
codeValue- code 值- 返回:
- 是否是 SUCCESS
-
prepayIdCreateSign
public static Map<String,String> prepayIdCreateSign(String prepayId, String appId, String partnerKey, SignType signType) 公众号支付-预付订单再次签名
注意此处签名方式需与统一下单的签名类型一致
- 参数:
prepayId- 预付订单号appId- 应用编号partnerKey- API KeysignType- 签名方式- 返回:
- 再次签名后的 Map
-
jsApiCreateSign
public static Map<String,String> jsApiCreateSign(String appId, String prepayId, String keyPath) throws Exception JS 调起支付签名- 参数:
appId- 应用编号prepayId- 预付订单号keyPath- key.pem 证书路径- 返回:
- 唤起支付需要的参数
- 抛出:
Exception- 错误信息
-
jsApiCreateSign
public static Map<String,String> jsApiCreateSign(String appId, String prepayId, PrivateKey privateKey) throws Exception JS 调起支付签名- 参数:
appId- 应用编号prepayId- 预付订单号privateKey- 商户私钥- 返回:
- 唤起支付需要的参数
- 抛出:
Exception- 错误信息
-
appPrepayIdCreateSign
public static Map<String,String> appPrepayIdCreateSign(String appId, String partnerId, String prepayId, String partnerKey, SignType signType) APP 支付-预付订单再次签名
注意此处签名方式需与统一下单的签名类型一致
- 参数:
appId- 应用编号partnerId- 商户号prepayId- 预付订单号partnerKey- API KeysignType- 签名方式- 返回:
- 再次签名后的 Map
-
appCreateSign
public static Map<String,String> appCreateSign(String appId, String partnerId, String prepayId, String keyPath) throws Exception App 调起支付签名- 参数:
appId- 应用编号partnerId- 商户编号prepayId- 预付订单号keyPath- key.pem 证书路径- 返回:
- 唤起支付需要的参数
- 抛出:
Exception- 错误信息
-
appCreateSign
public static Map<String,String> appCreateSign(String appId, String partnerId, String prepayId, PrivateKey privateKey) throws Exception App 调起支付签名- 参数:
appId- 应用编号partnerId- 商户编号prepayId- 预付订单号privateKey- 商户私钥- 返回:
- 唤起支付需要的参数
- 抛出:
Exception- 错误信息
-
miniAppPrepayIdCreateSign
public static Map<String,String> miniAppPrepayIdCreateSign(String appId, String prepayId, String partnerKey, SignType signType) 小程序-预付订单再次签名
注意此处签名方式需与统一下单的签名类型一致
- 参数:
appId- 应用编号prepayId- 预付订单号partnerKey- API KeysignType- 签名方式- 返回:
- 再次签名后的 Map
-
buildAuthorization
public static String buildAuthorization(RequestMethodEnum method, String urlSuffix, String mchId, String serialNo, String keyPath, String body, String nonceStr, long timestamp, String authType) throws Exception 构建 v3 接口所需的 Authorization- 参数:
method-RequestMethodEnum请求方法urlSuffix- 可通过 WxApiType 来获取,URL挂载参数需要自行拼接mchId- 商户IdserialNo- 商户 API 证书序列号keyPath- key.pem 证书路径body- 接口请求参数nonceStr- 随机字符库timestamp- 时间戳authType- 认证类型- 返回:
String返回 v3 所需的 Authorization- 抛出:
Exception- 异常信息
-
buildAuthorization
public static String buildAuthorization(RequestMethodEnum method, String urlSuffix, String mchId, String serialNo, PrivateKey privateKey, String body, String nonceStr, long timestamp, String authType) throws Exception 构建 v3 接口所需的 Authorization- 参数:
method-RequestMethodEnum请求方法urlSuffix- 可通过 WxApiType 来获取,URL挂载参数需要自行拼接mchId- 商户IdserialNo- 商户 API 证书序列号privateKey- 商户私钥body- 接口请求参数nonceStr- 随机字符库timestamp- 时间戳authType- 认证类型- 返回:
String返回 v3 所需的 Authorization- 抛出:
Exception- 异常信息
-
buildAuthorization
public static String buildAuthorization(RequestMethodEnum method, String urlSuffix, String mchId, String serialNo, String keyPath, String body) throws Exception 构建 v3 接口所需的 Authorization- 参数:
method-RequestMethodEnum请求方法urlSuffix- 可通过 WxApiType 来获取,URL挂载参数需要自行拼接mchId- 商户IdserialNo- 商户 API 证书序列号keyPath- key.pem 证书路径body- 接口请求参数- 返回:
String返回 v3 所需的 Authorization- 抛出:
Exception- 异常信息
-
buildAuthorization
public static String buildAuthorization(RequestMethodEnum method, String urlSuffix, String mchId, String serialNo, PrivateKey privateKey, String body) throws Exception 构建 v3 接口所需的 Authorization- 参数:
method-RequestMethodEnum请求方法urlSuffix- 可通过 WxApiType 来获取,URL挂载参数需要自行拼接mchId- 商户IdserialNo- 商户 API 证书序列号privateKey- key.pem 证书路径body- 接口请求参数- 返回:
String返回 v3 所需的 Authorization- 抛出:
Exception- 异常信息
-
verifySignature
@Deprecated public static boolean verifySignature(Map<String, Object> map, String certPath) throws Exception已过时。验证签名- 参数:
map- 接口请求返回的 MapcertPath- 平台证书路径- 返回:
- 签名结果
- 抛出:
Exception- 异常信息
-
verifySignature
验证签名- 参数:
response- 接口请求返回的IJPayHttpResponsecertPath- 平台证书路径- 返回:
- 签名结果
- 抛出:
Exception- 异常信息
-
verifySignature
public static boolean verifySignature(IJPayHttpResponse response, InputStream certInputStream) throws Exception 验证签名- 参数:
response- 接口请求返回的IJPayHttpResponsecertInputStream- 平台证书- 返回:
- 签名结果
- 抛出:
Exception- 异常信息
-
verifySignature
@Deprecated public static boolean verifySignature(Map<String, Object> map, InputStream certInputStream) throws Exception已过时。验证签名- 参数:
map- 接口请求返回的 MapcertInputStream- 平台证书输入流- 返回:
- 签名结果
- 抛出:
Exception- 异常信息
-
verifySignature
public static boolean verifySignature(String signature, String body, String nonce, String timestamp, String publicKey) throws Exception 验证签名- 参数:
signature- 待验证的签名body- 应答主体nonce- 随机串timestamp- 时间戳publicKey- 微信支付平台公钥- 返回:
- 签名结果
- 抛出:
Exception- 异常信息
-
verifySignature
public static boolean verifySignature(String signature, String body, String nonce, String timestamp, PublicKey publicKey) throws Exception 验证签名 -
verifySignature
public static boolean verifySignature(String signatureType, String signature, String body, String nonce, String timestamp, InputStream certInputStream) throws Exception 验证签名- 参数:
signatureType- 签名类型signature- 待验证的签名body- 应答主体nonce- 随机串timestamp- 时间戳certInputStream- 微信支付平台证书输入流- 返回:
- 签名结果
- 抛出:
Exception- 异常信息
-
verifyNotify
public static String verifyNotify(String serialNo, String body, String signature, String nonce, String timestamp, String key, InputStream certInputStream) throws Exception v3 支付异步通知验证签名- 参数:
serialNo- 证书序列号body- 异步通知密文signature- 签名nonce- 随机字符串timestamp- 时间戳key- api 密钥certInputStream- 平台证书- 返回:
- 异步通知明文
- 抛出:
Exception- 异常信息
-
verifyNotify
public static String verifyNotify(String serialNo, String body, String signature, String nonce, String timestamp, String key, String certPath) throws Exception v3 支付异步通知验证签名- 参数:
serialNo- 证书序列号body- 异步通知密文signature- 签名nonce- 随机字符串timestamp- 时间戳key- api 密钥certPath- 平台证书路径- 返回:
- 异步通知明文
- 抛出:
Exception- 异常信息
-