Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
IJPay
比较版本
8daf60f17900dcef3e44d55526bd2f2917a23017...7788c868ab79418aef1cca075855e5ab7f64929d
I
IJPay
项目概览
int
/
IJPay
8 个月 前同步成功
通知
4
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
IJPay
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
源分支
7788c868ab79418aef1cca075855e5ab7f64929d
选择Git版本
...
目标分支
8daf60f17900dcef3e44d55526bd2f2917a23017
选择Git版本
比较
Commits (19)
https://gitcode.net/int/IJPay/-/commit/db5cf25c9f67a5abcee714c28e06d8ed98b2f544
同步 IJPay-Demo-Springboot 的优化示例
2023-02-01T12:32:59+08:00
noear
noear@live.cn
https://gitcode.net/int/IJPay/-/commit/2e755b58279b9af99f823794913a5b74f6540030
IJPay-Demo-Solon: 升级 Solon 为:2.0.0
2023-02-01T12:34:41+08:00
noear
noear@live.cn
https://gitcode.net/int/IJPay/-/commit/de9555be36216a11f392c3bd5e60a7feed8463f0
:bookmark: release 2.9.6 :)
2023-02-01T12:35:24+08:00
noear
noear@live.cn
https://gitcode.net/int/IJPay/-/commit/a458e3a98a4dacb01955cdf70c00007f49887544
:bookmark: release 2.9.6 :)
2023-02-01T14:54:28+00:00
Javen
javendev@126.com
<gl-emoji title="bookmark" data-name="bookmark" data-unicode-version="6.0">🔖</gl-emoji> release 2.9.6 :)
https://gitcode.net/int/IJPay/-/commit/9397a54e43e8b319b5b354993643e7e5267c562c
:zap: README 添加 for solon demo 地址
2023-02-03T07:59:53+08:00
noear
noear@live.cn
https://gitcode.net/int/IJPay/-/commit/ef87f50c58cd82e735a5fb3222f1c1edce3d2090
:sparkles: 添加 for solon demo 地址
2023-02-05T07:59:18+00:00
Javen
javendev@126.com
<gl-emoji title="sparkles" data-name="sparkles" data-unicode-version="6.0">✨</gl-emoji> 添加 for solon demo 地址
https://gitcode.net/int/IJPay/-/commit/328711d61ddbee3c1d592403e27280d65e199461
升级fastjson版本到1.2.83,1.2.83版本之前存在代码执行漏洞风险,CVE-2022-25845
2023-02-28T03:36:38+00:00
lingkkkk
12523864+lingkkkk@user.noreply.gitee.com
升级fastjson版本到1.2.83,1.2.83版本之前存在代码执行漏洞风险,CVE-2022-25845 Signed-off-by: <span data-trailer="Signed-off-by:"><a href="mailto:12523864+lingkkkk@user.noreply.gitee.com" title="12523864+lingkkkk@user.noreply.gitee.com"></a><a href="javascript:void(0)" class="avatar s16 avatar-inline identicon bg4" style="text-decoration: none">N</a><a href="mailto:12523864+lingkkkk@user.noreply.gitee.com" title="12523864+lingkkkk@user.noreply.gitee.com">lingkkkk</a> <<a href="mailto:12523864+lingkkkk@user.noreply.gitee.com" title="12523864+lingkkkk@user.noreply.gitee.com">12523864+lingkkkk@user.noreply.gitee.com</a>></span>
https://gitcode.net/int/IJPay/-/commit/7e99a13b972e7f2b9abd85215d5e7a6d7ba9227d
:arrow_up: 依赖升级
2023-03-08T12:55:37+00:00
Javen
javendev@126.com
<gl-emoji title="upwards black arrow" data-name="arrow_up" data-unicode-version="4.0">⬆</gl-emoji> 依赖升级
https://gitcode.net/int/IJPay/-/commit/396da1bf84241414eb27498a424f35d0fbd7ddc4
:sparkles: 微信支付支持教培续费通
2023-03-12T15:37:31+08:00
Javen205
javendev@126.com
https://gitcode.net/int/IJPay/-/commit/ed40ef498235aa1eb80d9a0e33feba8b567f2419
:sparkles: 新增微信支付商家转账到零钱示例
2023-03-12T15:38:24+08:00
Javen205
javendev@126.com
https://gitcode.net/int/IJPay/-/commit/2e4ac763146c4bb66e4a686f618c478330a6e8cb
:sparkles: 新增获取文件真实路径静态方法
2023-03-27T20:51:24+08:00
Javen205
javendev@126.com
https://gitcode.net/int/IJPay/-/commit/981b05d95e1f8dad6477de204e9edbb78617aaa8
:arrow_up: 依赖升级
2023-03-27T21:01:01+08:00
Javen205
javendev@126.com
https://gitcode.net/int/IJPay/-/commit/3ca7b5bf8997a84d8c231cfd290f05954509a3d0
:bookmark: release 2.9.7 :)
2023-03-27T21:26:14+08:00
Javen205
javendev@126.com
https://gitcode.net/int/IJPay/-/commit/140f4a2a2059f01fe0bd9cadcc0a76f071897cef
:bug: 修复 github 反馈的bug #63
2023-04-01T17:49:14+08:00
Javen205
javendev@126.com
https://gitcode.net/int/IJPay/-/commit/9d6a3ca75c5a93291f216223aa3ddaaddf9eb391
:bug: 修复 github 反馈的bug #65
2023-04-01T17:49:48+08:00
Javen205
javendev@126.com
https://gitcode.net/int/IJPay/-/commit/72d20a90bacf38f7153ee44d218698f6bc04f432
:bug: 修复 github 反馈的bug #64
2023-04-01T17:51:57+08:00
Javen205
javendev@126.com
https://gitcode.net/int/IJPay/-/commit/e0c396bd81ed405a4e3aa9e3868f5bedee6cb393
:building_construction: 调整微信支付 v3 接口授权认证类型为枚举
2023-04-01T17:59:15+08:00
Javen205
javendev@126.com
https://gitcode.net/int/IJPay/-/commit/4475ccd8ffb6617191b9aa4354c78e2161a09654
:sparkles: 微信支付新增示例
2023-04-02T09:33:50+08:00
Javen205
javendev@126.com
https://gitcode.net/int/IJPay/-/commit/7788c868ab79418aef1cca075855e5ab7f64929d
:sparkles: 调整开源协议
2023-04-05T14:31:33+08:00
Javen205
javendev@126.com
展开全部
隐藏空白更改
内联
并排
Showing
28 changed file
with
1314 addition
and
810 deletion
+1314
-810
IJPay-AliPay/pom.xml
IJPay-AliPay/pom.xml
+1
-1
IJPay-AliPay/src/main/java/com/ijpay/alipay/AliPayApi.java
IJPay-AliPay/src/main/java/com/ijpay/alipay/AliPayApi.java
+2
-2
IJPay-AliPay/src/main/java/com/ijpay/alipay/AliPayApiConfigKit.java
...ay/src/main/java/com/ijpay/alipay/AliPayApiConfigKit.java
+2
-1
IJPay-All/pom.xml
IJPay-All/pom.xml
+1
-1
IJPay-Core/pom.xml
IJPay-Core/pom.xml
+1
-1
IJPay-Core/src/main/java/com/ijpay/core/enums/AuthTypeEnum.java
...Core/src/main/java/com/ijpay/core/enums/AuthTypeEnum.java
+54
-0
IJPay-Core/src/main/java/com/ijpay/core/kit/PayKit.java
IJPay-Core/src/main/java/com/ijpay/core/kit/PayKit.java
+647
-630
IJPay-Core/src/main/java/com/ijpay/core/kit/WxPayKit.java
IJPay-Core/src/main/java/com/ijpay/core/kit/WxPayKit.java
+3
-3
IJPay-Demo-Solon/pom.xml
IJPay-Demo-Solon/pom.xml
+2
-4
IJPay-Demo-Solon/src/main/java/com/ijpay/demo/controller/wxpay/WxPayV3Controller.java
...va/com/ijpay/demo/controller/wxpay/WxPayV3Controller.java
+3
-1
IJPay-Demo-SpringBoot/pom.xml
IJPay-Demo-SpringBoot/pom.xml
+1
-1
IJPay-Demo-SpringBoot/src/main/java/com/ijpay/demo/controller/wxpay/WxPayV3Controller.java
...va/com/ijpay/demo/controller/wxpay/WxPayV3Controller.java
+126
-0
IJPay-JDPay/pom.xml
IJPay-JDPay/pom.xml
+2
-2
IJPay-PayPal/pom.xml
IJPay-PayPal/pom.xml
+2
-2
IJPay-Plugin/IJPay-AliPay-Starter/pom.xml
IJPay-Plugin/IJPay-AliPay-Starter/pom.xml
+1
-1
IJPay-Plugin/IJPay-WxPay-Starter/pom.xml
IJPay-Plugin/IJPay-WxPay-Starter/pom.xml
+1
-1
IJPay-Plugin/pom.xml
IJPay-Plugin/pom.xml
+2
-2
IJPay-QQ/pom.xml
IJPay-QQ/pom.xml
+2
-2
IJPay-UnionPay/pom.xml
IJPay-UnionPay/pom.xml
+2
-2
IJPay-WxPay/pom.xml
IJPay-WxPay/pom.xml
+2
-2
IJPay-WxPay/src/main/java/com/ijpay/wxpay/WxPayApi.java
IJPay-WxPay/src/main/java/com/ijpay/wxpay/WxPayApi.java
+28
-27
IJPay-WxPay/src/main/java/com/ijpay/wxpay/enums/v3/EduPaPayEnum.java
.../src/main/java/com/ijpay/wxpay/enums/v3/EduPaPayEnum.java
+94
-0
IJPay-WxPay/src/main/java/com/ijpay/wxpay/model/v3/BatchTransferModel.java
...ain/java/com/ijpay/wxpay/model/v3/BatchTransferModel.java
+67
-0
IJPay-WxPay/src/main/java/com/ijpay/wxpay/model/v3/TransferDetailInput.java
...in/java/com/ijpay/wxpay/model/v3/TransferDetailInput.java
+59
-0
IJPay-XPay/pom.xml
IJPay-XPay/pom.xml
+2
-2
LICENSE.txt
LICENSE.txt
+201
-120
README.md
README.md
+4
-0
pom.xml
pom.xml
+2
-2
未找到文件。
IJPay-AliPay/pom.xml
浏览文件 @
7788c868
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
IJPay
</artifactId>
<groupId>
com.github.javen205
</groupId>
<version>
2.9.
6
</version>
<version>
2.9.
7
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<packaging>
jar
</packaging>
...
...
IJPay-AliPay/src/main/java/com/ijpay/alipay/AliPayApi.java
浏览文件 @
7788c868
...
...
@@ -451,8 +451,8 @@ public class AliPayApi {
*
* @param response {@link HttpServletResponse}
* @param model {@link AlipayTradeWapPayModel}
* @param returnUrl
异
步通知URL
* @param notifyUrl
同
步通知URL
* @param returnUrl
同
步通知URL
* @param notifyUrl
异
步通知URL
* @throws AlipayApiException 支付宝 Api 异常
* @throws IOException IO 异常
*/
...
...
IJPay-AliPay/src/main/java/com/ijpay/alipay/AliPayApiConfigKit.java
浏览文件 @
7788c868
...
...
@@ -33,7 +33,8 @@ public class AliPayApiConfigKit {
if
(
CFG_MAP
.
size
()
==
0
)
{
CFG_MAP
.
put
(
DEFAULT_CFG_KEY
,
aliPayApiConfig
);
}
return
CFG_MAP
.
put
(
aliPayApiConfig
.
getAppId
(),
aliPayApiConfig
);
CFG_MAP
.
put
(
aliPayApiConfig
.
getAppId
(),
aliPayApiConfig
);
return
aliPayApiConfig
;
}
/**
...
...
IJPay-All/pom.xml
浏览文件 @
7788c868
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
IJPay
</artifactId>
<groupId>
com.github.javen205
</groupId>
<version>
2.9.
6
</version>
<version>
2.9.
7
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<packaging>
jar
</packaging>
...
...
IJPay-Core/pom.xml
浏览文件 @
7788c868
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
IJPay
</artifactId>
<groupId>
com.github.javen205
</groupId>
<version>
2.9.
6
</version>
<version>
2.9.
7
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<packaging>
jar
</packaging>
...
...
IJPay-Core/src/main/java/com/ijpay/core/enums/AuthTypeEnum.java
0 → 100644
浏览文件 @
7788c868
package
com.ijpay.core.enums
;
/**
* <p>IJPay 让支付触手可及,封装了微信支付、支付宝支付、银联支付等常用的支付方式以及各种常用的接口。</p>
*
* <p>不依赖任何第三方 mvc 框架,仅仅作为工具使用简单快速完成支付模块的开发,可轻松嵌入到任何系统里。 </p>
*
* <p>IJPay 交流群: 723992875、864988890</p>
*
* <p>Node.js 版: <a href="https://gitee.com/javen205/TNWX">https://gitee.com/javen205/TNWX</a></p>
*
* <p>微信支付 v3 接口授权认证类型枚举</p>
*
* @author Javen
*/
public
enum
AuthTypeEnum
{
/**
* 国密
*/
SM
(
"WECHATPAY2-SM2-WITH-SM3"
,
"国密算法"
),
/**
* RSA
*/
RSA
(
"WECHATPAY2-SHA256-RSA2048"
,
"RSA算法"
),
;
private
final
String
url
;
private
final
String
desc
;
AuthTypeEnum
(
String
url
,
String
desc
)
{
this
.
url
=
url
;
this
.
desc
=
desc
;
}
/**
* 获取枚举URL
*
* @return 枚举编码
*/
public
String
getUrl
()
{
return
url
;
}
/**
* 获取详细的描述信息
*
* @return 描述信息
*/
public
String
getDesc
()
{
return
desc
;
}
}
IJPay-Core/src/main/java/com/ijpay/core/kit/PayKit.java
浏览文件 @
7788c868
此差异已折叠。
点击以展开。
IJPay-Core/src/main/java/com/ijpay/core/kit/WxPayKit.java
浏览文件 @
7788c868
...
...
@@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil;
import
cn.hutool.json.JSONObject
;
import
cn.hutool.json.JSONUtil
;
import
com.ijpay.core.IJPayHttpResponse
;
import
com.ijpay.core.enums.AuthTypeEnum
;
import
com.ijpay.core.enums.RequestMethodEnum
;
import
com.ijpay.core.enums.SignType
;
...
...
@@ -578,7 +579,7 @@ public class WxPayKit {
String
serialNo
,
String
keyPath
,
String
body
)
throws
Exception
{
long
timestamp
=
System
.
currentTimeMillis
()
/
1000
;
String
authType
=
"WECHATPAY2-SHA256-RSA2048"
;
String
authType
=
AuthTypeEnum
.
RSA
.
getUrl
()
;
String
nonceStr
=
PayKit
.
generateStr
();
return
buildAuthorization
(
method
,
urlSuffix
,
mchId
,
serialNo
,
keyPath
,
body
,
nonceStr
,
timestamp
,
authType
);
...
...
@@ -600,7 +601,7 @@ public class WxPayKit {
String
serialNo
,
PrivateKey
privateKey
,
String
body
)
throws
Exception
{
long
timestamp
=
System
.
currentTimeMillis
()
/
1000
;
String
authType
=
"WECHATPAY2-SHA256-RSA2048"
;
String
authType
=
AuthTypeEnum
.
RSA
.
getUrl
()
;
String
nonceStr
=
PayKit
.
generateStr
();
return
buildAuthorization
(
method
,
urlSuffix
,
mchId
,
serialNo
,
privateKey
,
body
,
nonceStr
,
timestamp
,
authType
);
...
...
@@ -741,7 +742,6 @@ public class WxPayKit {
// 获取平台证书序列号
X509Certificate
certificate
=
PayKit
.
getCertificate
(
certInputStream
);
String
serialNumber
=
certificate
.
getSerialNumber
().
toString
(
16
).
toUpperCase
();
System
.
out
.
println
(
serialNumber
);
// 验证证书序列号
if
(
serialNumber
.
equals
(
serialNo
))
{
boolean
verifySignature
=
WxPayKit
.
verifySignature
(
signature
,
body
,
nonce
,
timestamp
,
...
...
IJPay-Demo-Solon/pom.xml
浏览文件 @
7788c868
...
...
@@ -5,7 +5,7 @@
<parent>
<groupId>
org.noear
</groupId>
<artifactId>
solon-parent
</artifactId>
<version>
1.12.2
</version>
<version>
2.0.0
</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
<groupId>
com.ijpay.demo
</groupId>
...
...
@@ -19,9 +19,7 @@
<project.reporting.outputEncoding>
UTF-8
</project.reporting.outputEncoding>
<java.version>
1.8
</java.version>
<ijapy.version>
2.9.3
</ijapy.version>
<enjoy.version>
4.3
</enjoy.version>
<fastjson.version>
1.2.75
</fastjson.version>
<ijapy.version>
2.9.6
</ijapy.version>
</properties>
<dependencies>
...
...
IJPay-Demo-Solon/src/main/java/com/ijpay/demo/controller/wxpay/WxPayV3Controller.java
浏览文件 @
7788c868
...
...
@@ -82,10 +82,12 @@ public class WxPayV3Controller {
public
String
index
()
{
log
.
info
(
wxPayV3Bean
.
toString
());
try
{
String
classPath
=
"classpath:/dev/apiclient_
cert.p12
"
;
String
classPath
=
"classpath:/dev/apiclient_
key.pem
"
;
String
v3
=
"classpath:/dev/wxpay_v3.properties"
;
String
absolutePath
=
PayKit
.
getAbsolutePath
(
classPath
);
log
.
info
(
"absolutePath:{}"
,
absolutePath
);
String
certFileContent
=
PayKit
.
getCertFileContent
(
classPath
);
log
.
info
(
"classPath content:{}"
,
certFileContent
);
InputStream
inputStream
=
PayKit
.
getCertFileInputStream
(
v3
);
if
(
null
!=
inputStream
)
{
ByteArrayOutputStream
result
=
new
ByteArrayOutputStream
();
...
...
IJPay-Demo-SpringBoot/pom.xml
浏览文件 @
7788c868
...
...
@@ -21,7 +21,7 @@
<ijapy.version>
2.9.6
</ijapy.version>
<enjoy.version>
4.3
</enjoy.version>
<fastjson.version>
1.2.
75
</fastjson.version>
<fastjson.version>
1.2.
83
</fastjson.version>
</properties>
<dependencies>
...
...
IJPay-Demo-SpringBoot/src/main/java/com/ijpay/demo/controller/wxpay/WxPayV3Controller.java
浏览文件 @
7788c868
...
...
@@ -26,11 +26,14 @@ import com.ijpay.wxpay.enums.v3.ComplaintsApiEnum;
import
com.ijpay.wxpay.enums.v3.OtherApiEnum
;
import
com.ijpay.wxpay.enums.v3.PayGiftActivityApiEnum
;
import
com.ijpay.wxpay.enums.v3.PayScoreApiEnum
;
import
com.ijpay.wxpay.enums.v3.TransferApiEnum
;
import
com.ijpay.wxpay.model.v3.Amount
;
import
com.ijpay.wxpay.model.v3.BatchTransferModel
;
import
com.ijpay.wxpay.model.v3.Payer
;
import
com.ijpay.wxpay.model.v3.RefundAmount
;
import
com.ijpay.wxpay.model.v3.RefundGoodsDetail
;
import
com.ijpay.wxpay.model.v3.RefundModel
;
import
com.ijpay.wxpay.model.v3.TransferDetailInput
;
import
com.ijpay.wxpay.model.v3.UnifiedOrderModel
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -51,6 +54,7 @@ import java.security.PrivateKey;
import
java.security.cert.X509Certificate
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
...
...
@@ -282,6 +286,85 @@ public class WxPayV3Controller {
}
}
@RequestMapping
(
"/appPay"
)
@ResponseBody
public
String
appPay
()
{
try
{
String
timeExpire
=
DateTimeZoneUtil
.
dateToTimeZone
(
System
.
currentTimeMillis
()
+
1000
*
60
*
3
);
UnifiedOrderModel
unifiedOrderModel
=
new
UnifiedOrderModel
()
.
setAppid
(
wxPayV3Bean
.
getAppId
())
.
setMchid
(
wxPayV3Bean
.
getMchId
())
.
setDescription
(
"IJPay 让支付触手可及"
)
.
setOut_trade_no
(
PayKit
.
generateStr
())
.
setTime_expire
(
timeExpire
)
.
setAttach
(
"微信系开发脚手架 https://gitee.com/javen205/TNWX"
)
.
setNotify_url
(
wxPayV3Bean
.
getDomain
().
concat
(
"/v3/payNotify"
))
.
setAmount
(
new
Amount
().
setTotal
(
1
));
log
.
info
(
"统一下单参数 {}"
,
JSONUtil
.
toJsonStr
(
unifiedOrderModel
));
IJPayHttpResponse
response
=
WxPayApi
.
v3
(
RequestMethodEnum
.
POST
,
WxDomainEnum
.
CHINA
.
toString
(),
BasePayApiEnum
.
APP_PAY
.
toString
(),
wxPayV3Bean
.
getMchId
(),
getSerialNumber
(),
null
,
wxPayV3Bean
.
getKeyPath
(),
JSONUtil
.
toJsonStr
(
unifiedOrderModel
)
);
log
.
info
(
"统一下单响应 {}"
,
response
);
// 根据证书序列号查询对应的证书来验证签名结果
boolean
verifySignature
=
WxPayKit
.
verifySignature
(
response
,
wxPayV3Bean
.
getPlatformCertPath
());
log
.
info
(
"verifySignature: {}"
,
verifySignature
);
if
(
response
.
getStatus
()
==
OK
&&
verifySignature
)
{
String
body
=
response
.
getBody
();
JSONObject
jsonObject
=
JSONUtil
.
parseObj
(
body
);
String
prepayId
=
jsonObject
.
getStr
(
"prepay_id"
);
Map
<
String
,
String
>
map
=
WxPayKit
.
appCreateSign
(
wxPayV3Bean
.
getAppId
(),
wxPayV3Bean
.
getMchId
(),
prepayId
,
wxPayV3Bean
.
getKeyPath
());
log
.
info
(
"唤起支付参数:{}"
,
map
);
return
JSONUtil
.
toJsonStr
(
map
);
}
return
JSONUtil
.
toJsonStr
(
response
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
e
.
getMessage
();
}
}
@RequestMapping
(
"/query"
)
@ResponseBody
public
String
query
(
@RequestParam
String
outTradeNo
)
{
try
{
Map
<
String
,
String
>
params
=
new
HashMap
<>(
16
);
params
.
put
(
"mchid"
,
wxPayV3Bean
.
getMchId
());
log
.
info
(
"统一下单参数 {}"
,
JSONUtil
.
toJsonStr
(
params
));
IJPayHttpResponse
response
=
WxPayApi
.
v3
(
RequestMethodEnum
.
GET
,
WxDomainEnum
.
CHINA
.
toString
(),
String
.
format
(
BasePayApiEnum
.
ORDER_QUERY_BY_OUT_TRADE_NO
.
toString
(),
outTradeNo
),
wxPayV3Bean
.
getMchId
(),
getSerialNumber
(),
null
,
wxPayV3Bean
.
getKeyPath
(),
params
);
log
.
info
(
"查询响应 {}"
,
response
);
if
(
response
.
getStatus
()
==
OK
)
{
// 根据证书序列号查询对应的证书来验证签名结果
boolean
verifySignature
=
WxPayKit
.
verifySignature
(
response
,
wxPayV3Bean
.
getPlatformCertPath
());
log
.
info
(
"verifySignature: {}"
,
verifySignature
);
return
response
.
getBody
();
}
return
JSONUtil
.
toJsonStr
(
response
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
e
.
getMessage
();
}
}
@RequestMapping
(
"/jsApiPay"
)
@ResponseBody
public
String
jsApiPay
(
@RequestParam
(
value
=
"openId"
,
required
=
false
,
defaultValue
=
"o-_-itxuXeGW3O1cxJ7FXNmq8Wf8"
)
String
openId
)
{
...
...
@@ -328,6 +411,49 @@ public class WxPayV3Controller {
}
}
@RequestMapping
(
"/batchTransfer"
)
@ResponseBody
public
String
batchTransfer
(
@RequestParam
(
value
=
"openId"
,
required
=
false
,
defaultValue
=
"o-_-itxuXeGW3O1cxJ7FXNmq8Wf8"
)
String
openId
)
{
try
{
BatchTransferModel
batchTransferModel
=
new
BatchTransferModel
()
.
setAppid
(
wxPayV3Bean
.
getAppId
())
.
setOut_batch_no
(
PayKit
.
generateStr
())
.
setBatch_name
(
"IJPay 测试微信转账到零钱"
)
.
setBatch_remark
(
"IJPay 测试微信转账到零钱"
)
.
setTotal_amount
(
1
)
.
setTotal_num
(
1
)
.
setTransfer_detail_list
(
Collections
.
singletonList
(
new
TransferDetailInput
()
.
setOut_detail_no
(
PayKit
.
generateStr
())
.
setTransfer_amount
(
1
)
.
setTransfer_remark
(
"IJPay 测试微信转账到零钱"
)
.
setOpenid
(
openId
)));
log
.
info
(
"发起商家转账请求参数 {}"
,
JSONUtil
.
toJsonStr
(
batchTransferModel
));
IJPayHttpResponse
response
=
WxPayApi
.
v3
(
RequestMethodEnum
.
POST
,
WxDomainEnum
.
CHINA
.
toString
(),
TransferApiEnum
.
TRANSFER_BATCHES
.
toString
(),
wxPayV3Bean
.
getMchId
(),
getSerialNumber
(),
null
,
wxPayV3Bean
.
getKeyPath
(),
JSONUtil
.
toJsonStr
(
batchTransferModel
)
);
log
.
info
(
"发起商家转账响应 {}"
,
response
);
// 根据证书序列号查询对应的证书来验证签名结果
boolean
verifySignature
=
WxPayKit
.
verifySignature
(
response
,
wxPayV3Bean
.
getPlatformCertPath
());
log
.
info
(
"verifySignature: {}"
,
verifySignature
);
if
(
response
.
getStatus
()
==
OK
&&
verifySignature
)
{
return
response
.
getBody
();
}
return
JSONUtil
.
toJsonStr
(
response
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
e
.
getMessage
();
}
}
@RequestMapping
(
"/put"
)
@ResponseBody
...
...
IJPay-JDPay/pom.xml
浏览文件 @
7788c868
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
IJPay
</artifactId>
<groupId>
com.github.javen205
</groupId>
<version>
2.9.
6
</version>
<version>
2.9.
7
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<packaging>
jar
</packaging>
...
...
@@ -24,7 +24,7 @@
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
<version>
1.18.2
4
</version>
<version>
1.18.2
6
</version>
<scope>
provided
</scope>
</dependency>
<dependency>
...
...
IJPay-PayPal/pom.xml
浏览文件 @
7788c868
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
IJPay
</artifactId>
<groupId>
com.github.javen205
</groupId>
<version>
2.9.
6
</version>
<version>
2.9.
7
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<packaging>
jar
</packaging>
...
...
@@ -31,7 +31,7 @@
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
<version>
1.18.2
4
</version>
<version>
1.18.2
6
</version>
<scope>
provided
</scope>
</dependency>
<dependency>
...
...
IJPay-Plugin/IJPay-AliPay-Starter/pom.xml
浏览文件 @
7788c868
...
...
@@ -3,7 +3,7 @@
<parent>
<artifactId>
IJPay-Plugin
</artifactId>
<groupId>
com.github.javen205
</groupId>
<version>
2.9.
6
</version>
<version>
2.9.
7
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
IJPay-Plugin/IJPay-WxPay-Starter/pom.xml
浏览文件 @
7788c868
...
...
@@ -3,7 +3,7 @@
<parent>
<artifactId>
IJPay-Plugin
</artifactId>
<groupId>
com.github.javen205
</groupId>
<version>
2.9.
6
</version>
<version>
2.9.
7
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
IJPay-Plugin/pom.xml
浏览文件 @
7788c868
...
...
@@ -3,7 +3,7 @@
<parent>
<artifactId>
IJPay
</artifactId>
<groupId>
com.github.javen205
</groupId>
<version>
2.9.
6
</version>
<version>
2.9.
7
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
@@ -19,7 +19,7 @@
<properties>
<spring.boot.version>
2.7.5
</spring.boot.version>
<lombok.version>
1.18.2
4
</lombok.version>
<lombok.version>
1.18.2
6
</lombok.version>
<slf4j.api.version>
2.0.6
</slf4j.api.version>
</properties>
<dependencyManagement>
...
...
IJPay-QQ/pom.xml
浏览文件 @
7788c868
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
IJPay
</artifactId>
<groupId>
com.github.javen205
</groupId>
<version>
2.9.
6
</version>
<version>
2.9.
7
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<packaging>
jar
</packaging>
...
...
@@ -19,7 +19,7 @@
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
<version>
1.18.2
4
</version>
<version>
1.18.2
6
</version>
<scope>
provided
</scope>
</dependency>
<dependency>
...
...
IJPay-UnionPay/pom.xml
浏览文件 @
7788c868
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
IJPay
</artifactId>
<groupId>
com.github.javen205
</groupId>
<version>
2.9.
6
</version>
<version>
2.9.
7
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<packaging>
jar
</packaging>
...
...
@@ -19,7 +19,7 @@
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
<version>
1.18.2
4
</version>
<version>
1.18.2
6
</version>
<scope>
provided
</scope>
</dependency>
...
...
IJPay-WxPay/pom.xml
浏览文件 @
7788c868
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
IJPay
</artifactId>
<groupId>
com.github.javen205
</groupId>
<version>
2.9.
6
</version>
<version>
2.9.
7
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<packaging>
jar
</packaging>
...
...
@@ -19,7 +19,7 @@
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
<version>
1.18.2
4
</version>
<version>
1.18.2
6
</version>
<scope>
provided
</scope>
</dependency>
<dependency>
...
...
IJPay-WxPay/src/main/java/com/ijpay/wxpay/WxPayApi.java
浏览文件 @
7788c868
...
...
@@ -20,6 +20,7 @@ import com.ijpay.wxpay.enums.v2.PayApiEnum;
import
com.ijpay.wxpay.enums.v2.ProfitSharingApiEnum
;
import
com.ijpay.wxpay.enums.v2.RedPackApiEnum
;
import
com.ijpay.wxpay.enums.v2.TransferApiEnum
;
import
com.ijpay.core.enums.AuthTypeEnum
;
import
java.io.File
;
import
java.io.InputStream
;
...
...
@@ -255,9 +256,9 @@ public class WxPayApi {
* @throws Exception 接口执行异常
*/
public
static
IJPayHttpResponse
v3
(
RequestMethodEnum
method
,
String
urlPrefix
,
String
urlSuffix
,
String
mchId
,
String
serialNo
,
String
platSerialNo
,
String
keyPath
,
String
body
,
String
nonceStr
,
long
timestamp
,
String
authType
,
File
file
)
throws
Exception
{
String
mchId
,
String
serialNo
,
String
platSerialNo
,
String
keyPath
,
String
body
,
String
nonceStr
,
long
timestamp
,
String
authType
,
File
file
)
throws
Exception
{
// 构建 Authorization
String
authorization
=
WxPayKit
.
buildAuthorization
(
method
,
urlSuffix
,
mchId
,
serialNo
,
keyPath
,
body
,
nonceStr
,
timestamp
,
authType
);
...
...
@@ -299,9 +300,9 @@ public class WxPayApi {
* @throws Exception 接口执行异常
*/
public
static
IJPayHttpResponse
v3
(
RequestMethodEnum
method
,
String
urlPrefix
,
String
urlSuffix
,
String
mchId
,
String
serialNo
,
String
platSerialNo
,
PrivateKey
privateKey
,
String
body
,
String
nonceStr
,
long
timestamp
,
String
authType
,
File
file
)
throws
Exception
{
String
mchId
,
String
serialNo
,
String
platSerialNo
,
PrivateKey
privateKey
,
String
body
,
String
nonceStr
,
long
timestamp
,
String
authType
,
File
file
)
throws
Exception
{
// 构建 Authorization
String
authorization
=
WxPayKit
.
buildAuthorization
(
method
,
urlSuffix
,
mchId
,
serialNo
,
privateKey
,
body
,
nonceStr
,
timestamp
,
authType
);
...
...
@@ -339,9 +340,9 @@ public class WxPayApi {
* @throws Exception 接口执行异常
*/
public
static
IJPayHttpResponse
v3
(
RequestMethodEnum
method
,
String
urlPrefix
,
String
urlSuffix
,
String
mchId
,
String
serialNo
,
String
platSerialNo
,
String
keyPath
,
String
body
)
throws
Exception
{
String
serialNo
,
String
platSerialNo
,
String
keyPath
,
String
body
)
throws
Exception
{
long
timestamp
=
System
.
currentTimeMillis
()
/
1000
;
String
authType
=
"WECHATPAY2-SHA256-RSA2048"
;
String
authType
=
AuthTypeEnum
.
RSA
.
getUrl
()
;
String
nonceStr
=
WxPayKit
.
generateStr
();
return
v3
(
method
,
urlPrefix
,
urlSuffix
,
mchId
,
serialNo
,
platSerialNo
,
keyPath
,
body
,
nonceStr
,
timestamp
,
authType
,
null
);
}
...
...
@@ -361,9 +362,9 @@ public class WxPayApi {
* @throws Exception 接口执行异常
*/
public
static
IJPayHttpResponse
v3
(
RequestMethodEnum
method
,
String
urlPrefix
,
String
urlSuffix
,
String
mchId
,
String
serialNo
,
String
platSerialNo
,
PrivateKey
privateKey
,
String
body
)
throws
Exception
{
String
serialNo
,
String
platSerialNo
,
PrivateKey
privateKey
,
String
body
)
throws
Exception
{
long
timestamp
=
System
.
currentTimeMillis
()
/
1000
;
String
authType
=
"WECHATPAY2-SHA256-RSA2048"
;
String
authType
=
AuthTypeEnum
.
RSA
.
getUrl
()
;
String
nonceStr
=
WxPayKit
.
generateStr
();
return
v3
(
method
,
urlPrefix
,
urlSuffix
,
mchId
,
serialNo
,
platSerialNo
,
privateKey
,
body
,
nonceStr
,
timestamp
,
authType
,
null
);
}
...
...
@@ -383,10 +384,10 @@ public class WxPayApi {
* @throws Exception 接口执行异常
*/
public
static
IJPayHttpResponse
v3
(
RequestMethodEnum
method
,
String
urlPrefix
,
String
urlSuffix
,
String
mchId
,
String
serialNo
,
String
platSerialNo
,
String
keyPath
,
Map
<
String
,
String
>
params
)
throws
Exception
{
String
mchId
,
String
serialNo
,
String
platSerialNo
,
String
keyPath
,
Map
<
String
,
String
>
params
)
throws
Exception
{
long
timestamp
=
System
.
currentTimeMillis
()
/
1000
;
String
authType
=
"WECHATPAY2-SHA256-RSA2048"
;
String
authType
=
AuthTypeEnum
.
RSA
.
getUrl
()
;
String
nonceStr
=
WxPayKit
.
generateStr
();
if
(
null
!=
params
&&
!
params
.
keySet
().
isEmpty
())
{
urlSuffix
=
urlSuffix
.
concat
(
"?"
).
concat
(
PayKit
.
createLinkString
(
params
,
true
));
...
...
@@ -409,10 +410,10 @@ public class WxPayApi {
* @throws Exception 接口执行异常
*/
public
static
IJPayHttpResponse
v3
(
RequestMethodEnum
method
,
String
urlPrefix
,
String
urlSuffix
,
String
mchId
,
String
serialNo
,
String
platSerialNo
,
PrivateKey
privateKey
,
Map
<
String
,
String
>
params
)
throws
Exception
{
String
mchId
,
String
serialNo
,
String
platSerialNo
,
PrivateKey
privateKey
,
Map
<
String
,
String
>
params
)
throws
Exception
{
long
timestamp
=
System
.
currentTimeMillis
()
/
1000
;
String
authType
=
"WECHATPAY2-SHA256-RSA2048"
;
String
authType
=
AuthTypeEnum
.
RSA
.
getUrl
()
;
String
nonceStr
=
WxPayKit
.
generateStr
();
if
(
null
!=
params
&&
!
params
.
keySet
().
isEmpty
())
{
urlSuffix
=
urlSuffix
.
concat
(
"?"
).
concat
(
PayKit
.
createLinkString
(
params
,
true
));
...
...
@@ -436,7 +437,7 @@ public class WxPayApi {
*/
public
static
IJPayHttpResponse
v3
(
String
urlPrefix
,
String
urlSuffix
,
String
mchId
,
String
serialNo
,
String
platSerialNo
,
String
keyPath
,
String
body
,
File
file
)
throws
Exception
{
long
timestamp
=
System
.
currentTimeMillis
()
/
1000
;
String
authType
=
"WECHATPAY2-SHA256-RSA2048"
;
String
authType
=
AuthTypeEnum
.
RSA
.
getUrl
()
;
String
nonceStr
=
WxPayKit
.
generateStr
();
return
v3
(
RequestMethodEnum
.
UPLOAD
,
urlPrefix
,
urlSuffix
,
mchId
,
serialNo
,
platSerialNo
,
keyPath
,
body
,
nonceStr
,
timestamp
,
authType
,
file
);
}
...
...
@@ -458,7 +459,7 @@ public class WxPayApi {
public
static
IJPayHttpResponse
v3
(
String
urlPrefix
,
String
urlSuffix
,
String
mchId
,
String
serialNo
,
String
platSerialNo
,
PrivateKey
privateKey
,
String
body
,
File
file
)
throws
Exception
{
long
timestamp
=
System
.
currentTimeMillis
()
/
1000
;
String
authType
=
"WECHATPAY2-SHA256-RSA2048"
;
String
authType
=
AuthTypeEnum
.
RSA
.
getUrl
()
;
String
nonceStr
=
WxPayKit
.
generateStr
();
return
v3
(
RequestMethodEnum
.
UPLOAD
,
urlPrefix
,
urlSuffix
,
mchId
,
serialNo
,
platSerialNo
,
privateKey
,
body
,
nonceStr
,
timestamp
,
authType
,
file
);
}
...
...
@@ -483,9 +484,9 @@ public class WxPayApi {
*/
@Deprecated
public
static
Map
<
String
,
Object
>
v3Execution
(
RequestMethodEnum
method
,
String
urlPrefix
,
String
urlSuffix
,
String
mchId
,
String
serialNo
,
String
platSerialNo
,
String
keyPath
,
String
body
,
String
nonceStr
,
long
timestamp
,
String
authType
,
File
file
)
throws
Exception
{
String
mchId
,
String
serialNo
,
String
platSerialNo
,
String
keyPath
,
String
body
,
String
nonceStr
,
long
timestamp
,
String
authType
,
File
file
)
throws
Exception
{
IJPayHttpResponse
response
=
v3
(
method
,
urlPrefix
,
urlSuffix
,
mchId
,
serialNo
,
platSerialNo
,
keyPath
,
body
,
nonceStr
,
timestamp
,
authType
,
file
);
return
buildResMap
(
response
);
}
...
...
@@ -505,7 +506,7 @@ public class WxPayApi {
*/
@Deprecated
public
static
Map
<
String
,
Object
>
v3Execution
(
RequestMethodEnum
method
,
String
urlPrefix
,
String
urlSuffix
,
String
mchId
,
String
serialNo
,
String
keyPath
,
String
body
)
throws
Exception
{
String
serialNo
,
String
keyPath
,
String
body
)
throws
Exception
{
IJPayHttpResponse
response
=
v3
(
method
,
urlPrefix
,
urlSuffix
,
mchId
,
serialNo
,
null
,
keyPath
,
body
);
return
buildResMap
(
response
);
}
...
...
@@ -526,7 +527,7 @@ public class WxPayApi {
*/
@Deprecated
public
static
Map
<
String
,
Object
>
v3Execution
(
RequestMethodEnum
method
,
String
urlPrefix
,
String
urlSuffix
,
String
mchId
,
String
serialNo
,
String
platSerialNo
,
String
keyPath
,
String
body
)
throws
Exception
{
String
serialNo
,
String
platSerialNo
,
String
keyPath
,
String
body
)
throws
Exception
{
IJPayHttpResponse
response
=
v3
(
method
,
urlPrefix
,
urlSuffix
,
mchId
,
serialNo
,
platSerialNo
,
keyPath
,
body
);
return
buildResMap
(
response
);
}
...
...
@@ -547,8 +548,8 @@ public class WxPayApi {
*/
@Deprecated
public
static
Map
<
String
,
Object
>
v3Execution
(
RequestMethodEnum
method
,
String
urlPrefix
,
String
urlSuffix
,
String
mchId
,
String
serialNo
,
String
platSerialNo
,
String
keyPath
,
Map
<
String
,
String
>
params
)
throws
Exception
{
String
mchId
,
String
serialNo
,
String
platSerialNo
,
String
keyPath
,
Map
<
String
,
String
>
params
)
throws
Exception
{
IJPayHttpResponse
response
=
v3
(
method
,
urlPrefix
,
urlSuffix
,
mchId
,
serialNo
,
platSerialNo
,
keyPath
,
params
);
return
buildResMap
(
response
);
}
...
...
@@ -568,8 +569,8 @@ public class WxPayApi {
*/
@Deprecated
public
static
Map
<
String
,
Object
>
v3Execution
(
RequestMethodEnum
method
,
String
urlPrefix
,
String
urlSuffix
,
String
mchId
,
String
serialNo
,
String
keyPath
,
Map
<
String
,
String
>
params
)
throws
Exception
{
String
mchId
,
String
serialNo
,
String
keyPath
,
Map
<
String
,
String
>
params
)
throws
Exception
{
IJPayHttpResponse
response
=
v3
(
method
,
urlPrefix
,
urlSuffix
,
mchId
,
serialNo
,
null
,
keyPath
,
params
);
return
buildResMap
(
response
);
}
...
...
IJPay-WxPay/src/main/java/com/ijpay/wxpay/enums/v3/EduPaPayEnum.java
0 → 100644
浏览文件 @
7788c868
package
com.ijpay.wxpay.enums.v3
;
import
com.ijpay.wxpay.enums.WxApiEnum
;
/**
* <p>IJPay 让支付触手可及,封装了微信支付、支付宝支付、银联支付常用的支付方式以及各种常用的接口。</p>
*
* <p>不依赖任何第三方 mvc 框架,仅仅作为工具使用简单快速完成支付模块的开发,可轻松嵌入到任何系统里。 </p>
*
* <p>IJPay 交流群: 723992875、864988890</p>
*
* <p>Node.js 版: <a href="https://gitee.com/javen205/TNWX">https://gitee.com/javen205/TNWX</a></p>
*
* <p>微信支付 v3 接口-教培续费通相关接口枚举</p>
*
* @author Javen
*/
public
enum
EduPaPayEnum
implements
WxApiEnum
{
/**
* 通过协议号查询签约
*/
QUERY_CONTRACTS_BY_ID
(
"/v3/edu-papay/contracts/id/%s"
,
"通过协议号查询签约"
),
/**
* 预签约
*/
PRE_SIGN
(
"/v3/edu-papay/contracts/presign"
,
"预签约"
),
/**
* 解约
*/
DELETE_CONTRACTS
(
"/v3/edu-papay/contracts/%s"
,
"解约"
),
/**
* 通过用户标识查询签约
*/
QUERY_CONTRACTS_BY_USER
(
"/v3/edu-papay/user/%s/contracts"
,
"通过用户标识查询签约"
),
/**
* 受理扣款
*/
TRANSACTIONS
(
"/v3/edu-papay/transactions"
,
"受理扣款"
),
/**
* 通过微信订单号查询订单
*/
QUERY_TRANSACTIONS_BY_TRANSACTION_ID
(
"/v3/edu-papay/transactions/id/%s"
,
"通过微信订单号查询订单"
),
/**
* 通过商户订单号查询订单
*/
QUERY_TRANSACTIONS_BY_OUT_TRADE_NO
(
"/v3/edu-papay/transactions/out-trade-no/%s"
,
"通过商户订单号查询订单"
),
/**
* 发送扣款预通知
*/
SEND_NOTIFICATION
(
"/v3/edu-papay/user-notifications/%s/send"
,
"发送扣款预通知"
),
;
/**
* 接口URL
*/
private
final
String
url
;
/**
* 接口描述
*/
private
final
String
desc
;
EduPaPayEnum
(
String
url
,
String
desc
)
{
this
.
url
=
url
;
this
.
desc
=
desc
;
}
/**
* 获取枚举URL
*
* @return 枚举编码
*/
@Override
public
String
getUrl
()
{
return
url
;
}
/**
* 获取详细的描述信息
*
* @return 描述信息
*/
@Override
public
String
getDesc
()
{
return
desc
;
}
}
IJPay-WxPay/src/main/java/com/ijpay/wxpay/model/v3/BatchTransferModel.java
0 → 100644
浏览文件 @
7788c868
package
com.ijpay.wxpay.model.v3
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.experimental.Accessors
;
import
java.util.List
;
/**
* <p>IJPay 让支付触手可及,封装了微信支付、支付宝支付、银联支付等常用的支付方式以及各种常用的接口。</p>
*
* <p>不依赖任何第三方 mvc 框架,仅仅作为工具使用简单快速完成支付模块的开发,可轻松嵌入到任何系统里。 </p>
*
* <p>IJPay 交流群: 723992875、864988890</p>
*
* <p>Node.js 版: <a href="https://gitee.com/javen205/TNWX">https://gitee.com/javen205/TNWX</a></p>
*
* <p>发起商家转账 Model</p>
*
* @author Javen
*/
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
@Accessors
(
chain
=
true
)
public
class
BatchTransferModel
{
/**
* 申请商户号的appid或商户号绑定的appid(企业号corpid即为此appid)
*/
private
String
appid
;
/**
* 商户系统内部的商家批次单号,要求此参数只能由数字、大小写字母组成,在商户系统内部唯一
*/
private
String
out_batch_no
;
/**
* 该笔批量转账的名称
*/
private
String
batch_name
;
/**
* 转账说明,UTF8编码,最多允许32个字符
*/
private
String
batch_remark
;
/**
* 转账金额单位为“分”。转账总金额必须与批次内所有明细转账金额之和保持一致,否则无法发起转账操作
*/
private
Integer
total_amount
;
/**
* 一个转账批次单最多发起一千笔转账。转账总笔数必须与批次内所有明细之和保持一致,否则无法发起转账操作
*/
private
Integer
total_num
;
/**
* 发起批量转账的明细列表,最多一千笔
*/
private
List
<
TransferDetailInput
>
transfer_detail_list
;
/**
* 指定该笔转账使用的转账场景ID
*/
private
String
transfer_scene_id
;
}
IJPay-WxPay/src/main/java/com/ijpay/wxpay/model/v3/TransferDetailInput.java
0 → 100644
浏览文件 @
7788c868
package
com.ijpay.wxpay.model.v3
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.experimental.Accessors
;
/**
* <p>IJPay 让支付触手可及,封装了微信支付、支付宝支付、银联支付等常用的支付方式以及各种常用的接口。</p>
*
* <p>不依赖任何第三方 mvc 框架,仅仅作为工具使用简单快速完成支付模块的开发,可轻松嵌入到任何系统里。 </p>
*
* <p>IJPay 交流群: 723992875、864988890</p>
*
* <p>Node.js 版: <a href="https://gitee.com/javen205/TNWX">https://gitee.com/javen205/TNWX</a></p>
*
* <p>发起批量转账的明细列表</p>
*
* @author Javen
*/
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
@Accessors
(
chain
=
true
)
public
class
TransferDetailInput
{
/**
* 商户系统内部区分转账批次单下不同转账明细单的唯一标识,要求此参数只能由数字、大小写字母组成
*/
private
String
out_detail_no
;
/**
* 转账金额单位为“分”
*/
private
Integer
transfer_amount
;
/**
* 单条转账备注(微信用户会收到该备注),UTF8编码,最多允许32个字符
*/
private
String
transfer_remark
;
/**
* 商户appid下,某用户的openid
*/
private
String
openid
;
/**
* 收款方真实姓名。支持标准RSA算法和国密算法,公钥由微信侧提供
* 明细转账金额<0.3元时,不允许填写收款用户姓名
* 明细转账金额 >= 2,000元时,该笔明细必须填写收款用户姓名
* 同一批次转账明细中的姓名字段传入规则需保持一致,也即全部填写、或全部不填写
* 若商户传入收款用户姓名,微信支付会校验用户openID与姓名是否一致,并提供电子回单
*/
private
String
user_name
;
/**
* 收款方身份证号,可不用填(采用标准RSA算法,公钥由微信侧提供)
* 当填入收款方身份证号时,姓名字段必须填入。
*/
private
String
user_id_card
;
}
IJPay-XPay/pom.xml
浏览文件 @
7788c868
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
IJPay
</artifactId>
<groupId>
com.github.javen205
</groupId>
<version>
2.9.
6
</version>
<version>
2.9.
7
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
@@ -18,7 +18,7 @@
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
<version>
1.18.2
4
</version>
<version>
1.18.2
6
</version>
<scope>
provided
</scope>
</dependency>
<dependency>
...
...
LICENSE.txt
浏览文件 @
7788c868
此差异已折叠。
点击以展开。
README.md
浏览文件 @
7788c868
...
...
@@ -96,6 +96,10 @@ JavaDoc 文档:[https://apidoc.gitee.com/javen205/IJPay](https://apidoc.gitee.
[
Gitee-JFinal-Demo
](
https://gitee.com/javen205/IJPay/tree/master/IJPay-Demo-JFinal
)
[
GitHub-JFinal-Demo
]
(https://github.com/javen205/IJPay/tree/master/IJPay-Demo-JFinal)
[
Gitee-Solon-Demo
](
https://gitee.com/javen205/IJPay/tree/master/IJPay-Demo-Solon
)
[
GitHub-Solon-Demo
]
(https://github.com/javen205/IJPay/tree/master/IJPay-Demo-Solon)
[
Gitee-SpringBoot-Demo
](
https://gitee.com/javen205/IJPay/tree/master/IJPay-Demo-SpringBoot
)
[
GitHub-SpringBoot-Demo
]
(https://github.com/javen205/IJPay/tree/master/IJPay-Demo-SpringBoot)
### 联系方式
...
...
pom.xml
浏览文件 @
7788c868
...
...
@@ -7,7 +7,7 @@
<groupId>
com.github.javen205
</groupId>
<artifactId>
IJPay
</artifactId>
<version>
2.9.
6
</version>
<version>
2.9.
7
</version>
<name>
IJPay
</name>
<description>
IJPay 让支付触手可及(Easy Pay Library)
</description>
<url>
https://github.com/Javen205/IJPay
</url>
...
...
@@ -55,7 +55,7 @@
<properties>
<jdk.version>
1.8
</jdk.version>
<junit.version>
4.13.2
</junit.version>
<hutool.version>
5.8.1
1
</hutool.version>
<hutool.version>
5.8.1
6
</hutool.version>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<project.reporting.outputEncoding>
UTF-8
</project.reporting.outputEncoding>
...
...