Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
O
online-edu-backend
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
online-edu
online-edu-backend
Commits
8c9c8584
Commit
8c9c8584
authored
Jun 08, 2021
by
liuyang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update alipay
parent
654c19e2
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
234 additions
and
6 deletions
+234
-6
pom.xml
pom.xml
+5
-0
AlipayProperties.java
src/main/java/com/qkdata/alipay/config/AlipayProperties.java
+18
-0
AlipayNotifyController.java
.../com/qkdata/alipay/controller/AlipayNotifyController.java
+88
-0
AlipayService.java
src/main/java/com/qkdata/alipay/service/AlipayService.java
+69
-0
ProductTypeEnum.java
src/main/java/com/qkdata/biz/enums/ProductTypeEnum.java
+1
-1
CourseService.java
...java/com/qkdata/biz/management/service/CourseService.java
+4
-2
ProductOrderService.java
...om/qkdata/biz/management/service/ProductOrderService.java
+28
-3
UserFavoritesService.java
...m/qkdata/biz/management/service/UserFavoritesService.java
+8
-0
application-dev.yml
src/main/resources/application-dev.yml
+7
-0
application.yml
src/main/resources/application.yml
+6
-0
No files found.
pom.xml
View file @
8c9c8584
...
@@ -296,6 +296,11 @@
...
@@ -296,6 +296,11 @@
<artifactId>
aliyun-java-sdk-vod
</artifactId>
<artifactId>
aliyun-java-sdk-vod
</artifactId>
<version>
2.15.11
</version>
<version>
2.15.11
</version>
</dependency>
</dependency>
<dependency>
<groupId>
com.alipay.sdk
</groupId>
<artifactId>
alipay-sdk-java
</artifactId>
<version>
4.13.58.ALL
</version>
</dependency>
</dependencies>
</dependencies>
...
...
src/main/java/com/qkdata/alipay/config/AlipayProperties.java
0 → 100644
View file @
8c9c8584
package
com
.
qkdata
.
alipay
.
config
;
import
lombok.Data
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Configuration
;
@Data
@Configuration
public
class
AlipayProperties
{
@Value
(
"${alipay.appId}"
)
private
String
appId
;
@Value
(
"${alipay.url}"
)
private
String
url
;
@Value
(
"${alipay.appPrivateKey}"
)
private
String
appPrivateKey
;
@Value
(
"${alipay.alipayPublicKey}"
)
private
String
alipayPublicKey
;
}
src/main/java/com/qkdata/alipay/controller/AlipayNotifyController.java
0 → 100644
View file @
8c9c8584
package
com
.
qkdata
.
alipay
.
controller
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alipay.api.AlipayApiException
;
import
com.alipay.api.internal.util.AlipaySignature
;
import
com.github.binarywang.wxpay.exception.WxPayException
;
import
com.qkdata.alipay.config.AlipayProperties
;
import
com.qkdata.biz.enums.ProductOrderStatusEnum
;
import
com.qkdata.biz.management.service.ProductOrderService
;
import
com.qkdata.common.base.exception.BusinessException
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.HashMap
;
import
java.util.Iterator
;
import
java.util.Map
;
@Slf4j
@Api
@RestController
@RequestMapping
(
"/alipay"
)
public
class
AlipayNotifyController
{
@Autowired
private
AlipayProperties
alipayProperties
;
@Autowired
private
ProductOrderService
orderService
;
@ApiOperation
(
value
=
"支付回调通知处理"
)
@PostMapping
(
"/notify/order"
)
public
String
parseOrderNotifyResult
(
HttpServletRequest
request
)
throws
WxPayException
{
Map
<
String
,
String
>
params
=
parseParameter
(
request
);
log
.
info
(
JSONObject
.
toJSONString
(
params
));
//商户订单号
String
out_trade_no
=
params
.
get
(
"out_trade_no"
);
//支付宝交易号
String
trade_no
=
params
.
get
(
"trade_no"
);
//交易状态
String
trade_status
=
params
.
get
(
"trade_status"
);
try
{
//计算得出通知验证结果
boolean
verify_result
=
AlipaySignature
.
rsaCheckV1
(
params
,
alipayProperties
.
getAlipayPublicKey
(),
"UTF-8"
,
"RSA2"
);
if
(
verify_result
){
//验证成功
if
(
trade_status
.
equals
(
"TRADE_SUCCESS"
)){
orderService
.
orderComplete
(
out_trade_no
);
}
else
if
(
trade_status
.
equals
(
"TRADE_FINISHED"
)){
}
else
if
(
trade_status
.
equals
(
"WAIT_BUYER_PAY"
)){
orderService
.
updateStatus
(
out_trade_no
,
ProductOrderStatusEnum
.
WAIT_PAY
);
}
}
else
{
//验证失败
throw
new
BusinessException
(
"非法请求"
);
}
}
catch
(
AlipayApiException
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
orderService
.
updateStatus
(
out_trade_no
,
ProductOrderStatusEnum
.
PAY_FAILD
);
return
"fail"
;
}
return
"success"
;
}
private
Map
<
String
,
String
>
parseParameter
(
HttpServletRequest
request
){
//获取支付宝POST过来反馈信息
Map
<
String
,
String
>
params
=
new
HashMap
<
String
,
String
>();
Map
requestParams
=
request
.
getParameterMap
();
for
(
Iterator
iter
=
requestParams
.
keySet
().
iterator
();
iter
.
hasNext
();)
{
String
name
=
(
String
)
iter
.
next
();
String
[]
values
=
(
String
[])
requestParams
.
get
(
name
);
String
valueStr
=
""
;
for
(
int
i
=
0
;
i
<
values
.
length
;
i
++)
{
valueStr
=
(
i
==
values
.
length
-
1
)
?
valueStr
+
values
[
i
]
:
valueStr
+
values
[
i
]
+
","
;
}
//乱码解决,这段代码在出现乱码时使用。如果mysign和sign不相等也可以使用这段代码转化
//valueStr = new String(valueStr.getBytes("ISO-8859-1"), "gbk");
params
.
put
(
name
,
valueStr
);
}
return
params
;
}
}
src/main/java/com/qkdata/alipay/service/AlipayService.java
0 → 100644
View file @
8c9c8584
package
com
.
qkdata
.
alipay
.
service
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alipay.api.*
;
import
com.alipay.api.domain.AlipayTradeQueryModel
;
import
com.alipay.api.domain.AlipayTradeWapPayModel
;
import
com.alipay.api.request.AlipayTradeQueryRequest
;
import
com.alipay.api.request.AlipayTradeWapPayRequest
;
import
com.alipay.api.response.AlipayTradeQueryResponse
;
import
com.alipay.api.response.AlipayTradeWapPayResponse
;
import
com.qkdata.alipay.config.AlipayProperties
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.PostConstruct
;
@Slf4j
@Service
public
class
AlipayService
{
@Autowired
private
AlipayProperties
alipayProperties
;
@Value
(
"${frontend.domain}"
)
private
String
frontendDomain
;
private
AlipayClient
alipayClient
;
@PostConstruct
public
void
init
(){
alipayClient
=
new
DefaultAlipayClient
(
alipayProperties
.
getUrl
(),
alipayProperties
.
getAppId
(),
alipayProperties
.
getAppPrivateKey
(),
AlipayConstants
.
FORMAT_JSON
,
AlipayConstants
.
CHARSET_UTF8
,
alipayProperties
.
getAlipayPublicKey
(),
AlipayConstants
.
SIGN_TYPE_RSA2
);
}
public
String
prePayOrder
(
AlipayTradeWapPayModel
model
)
throws
AlipayApiException
{
AlipayTradeWapPayRequest
alipay_request
=
new
AlipayTradeWapPayRequest
();
alipay_request
.
setBizModel
(
model
);
alipay_request
.
setNotifyUrl
(
frontendDomain
+
"/online-edu-backend/alipay/notify/order"
);
alipay_request
.
setReturnUrl
(
frontendDomain
+
"/online-edu/pay/result"
);
String
form
=
""
;
AlipayTradeWapPayResponse
response
=
alipayClient
.
pageExecute
(
alipay_request
);
if
(
response
.
isSuccess
()){
form
=
response
.
getBody
();
}
else
{
log
.
info
(
"Alipay prePay request faild:"
+
JSONObject
.
toJSONString
(
response
));
}
return
form
;
}
public
String
queryOrder
(
String
orderNo
)
throws
AlipayApiException
{
AlipayTradeQueryRequest
request
=
new
AlipayTradeQueryRequest
();
AlipayTradeQueryModel
model
=
new
AlipayTradeQueryModel
();
model
.
setOutTradeNo
(
orderNo
);
request
.
setBizModel
(
model
);
AlipayTradeQueryResponse
response
=
alipayClient
.
execute
(
request
);
String
result
=
""
;
if
(
response
.
isSuccess
()){
result
=
response
.
getTradeStatus
();
}
else
{
log
.
info
(
"Alipay trade query faild:"
+
JSONObject
.
toJSONString
(
response
));
}
return
result
;
}
}
src/main/java/com/qkdata/biz/enums/ProductTypeEnum.java
View file @
8c9c8584
package
com
.
qkdata
.
biz
.
enums
;
package
com
.
qkdata
.
biz
.
enums
;
/**
/**
*
订单
类型
*
产品
类型
*/
*/
public
enum
ProductTypeEnum
{
public
enum
ProductTypeEnum
{
/**
/**
...
...
src/main/java/com/qkdata/biz/management/service/CourseService.java
View file @
8c9c8584
...
@@ -356,6 +356,10 @@ public class CourseService extends ServiceImpl<CourseMapper, CoursePO> {
...
@@ -356,6 +356,10 @@ public class CourseService extends ServiceImpl<CourseMapper, CoursePO> {
public
PageResult
<
SearchCourseResultModel
>
search
(
SearchCourseConditionModel
model
)
{
public
PageResult
<
SearchCourseResultModel
>
search
(
SearchCourseConditionModel
model
)
{
Page
page
=
new
Page
(
model
.
getPageIndex
(),
model
.
getPageSize
());
Page
page
=
new
Page
(
model
.
getPageIndex
(),
model
.
getPageSize
());
List
<
SearchCourseResultModel
>
list
=
baseMapper
.
searchPageList
(
page
,
model
);
List
<
SearchCourseResultModel
>
list
=
baseMapper
.
searchPageList
(
page
,
model
);
addTagAndDuration
(
list
);
return
PageResult
.<
SearchCourseResultModel
>
builder
().
code
(
CodeEnum
.
SUCCESS
.
getCode
()).
count
(
page
.
getTotal
()).
data
(
list
).
build
();
}
public
void
addTagAndDuration
(
List
<
SearchCourseResultModel
>
list
){
for
(
SearchCourseResultModel
m
:
list
){
for
(
SearchCourseResultModel
m
:
list
){
List
<
CourseTagsModel
>
tags
=
tagRelMapper
.
selectModelList
(
m
.
getCourseId
());
List
<
CourseTagsModel
>
tags
=
tagRelMapper
.
selectModelList
(
m
.
getCourseId
());
m
.
setTags
(
tags
);
m
.
setTags
(
tags
);
...
@@ -364,9 +368,7 @@ public class CourseService extends ServiceImpl<CourseMapper, CoursePO> {
...
@@ -364,9 +368,7 @@ public class CourseService extends ServiceImpl<CourseMapper, CoursePO> {
m
.
setDuration
(
chaperList
.
get
(
0
).
getDuration
());
m
.
setDuration
(
chaperList
.
get
(
0
).
getDuration
());
}
}
}
}
return
PageResult
.<
SearchCourseResultModel
>
builder
().
code
(
CodeEnum
.
SUCCESS
.
getCode
()).
count
(
page
.
getTotal
()).
data
(
list
).
build
();
}
}
public
List
<
Long
>
getAllowEnterpriseList
(
Long
courseId
)
{
public
List
<
Long
>
getAllowEnterpriseList
(
Long
courseId
)
{
List
<
AllowOrgCoursePO
>
enterpriseIdList
=
allowOrgCourseMapper
.
selectList
(
Wrappers
.<
AllowOrgCoursePO
>
lambdaQuery
().
eq
(
AllowOrgCoursePO:
:
getCourseId
,
courseId
));
List
<
AllowOrgCoursePO
>
enterpriseIdList
=
allowOrgCourseMapper
.
selectList
(
Wrappers
.<
AllowOrgCoursePO
>
lambdaQuery
().
eq
(
AllowOrgCoursePO:
:
getCourseId
,
courseId
));
if
(
CollUtil
.
isNotEmpty
(
enterpriseIdList
)){
if
(
CollUtil
.
isNotEmpty
(
enterpriseIdList
)){
...
...
src/main/java/com/qkdata/biz/management/service/ProductOrderService.java
View file @
8c9c8584
...
@@ -5,12 +5,15 @@ import cn.hutool.core.date.DateTime;
...
@@ -5,12 +5,15 @@ import cn.hutool.core.date.DateTime;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.RandomUtil
;
import
cn.hutool.core.util.RandomUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.alipay.api.AlipayApiException
;
import
com.alipay.api.domain.AlipayTradeWapPayModel
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest
;
import
com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest
;
import
com.github.binarywang.wxpay.bean.result.WxPayOrderQueryResult
;
import
com.github.binarywang.wxpay.bean.result.WxPayOrderQueryResult
;
import
com.github.binarywang.wxpay.exception.WxPayException
;
import
com.github.binarywang.wxpay.exception.WxPayException
;
import
com.github.binarywang.wxpay.service.WxPayService
;
import
com.github.binarywang.wxpay.service.WxPayService
;
import
com.qkdata.alipay.service.AlipayService
;
import
com.qkdata.biz.common.BizConstants
;
import
com.qkdata.biz.common.BizConstants
;
import
com.qkdata.biz.enums.*
;
import
com.qkdata.biz.enums.*
;
import
com.qkdata.biz.management.entity.CoursePO
;
import
com.qkdata.biz.management.entity.CoursePO
;
...
@@ -67,6 +70,8 @@ public class ProductOrderService extends ServiceImpl<ProductOrderMapper, Product
...
@@ -67,6 +70,8 @@ public class ProductOrderService extends ServiceImpl<ProductOrderMapper, Product
private
UserCourseAuthService
userCourseAuthService
;
private
UserCourseAuthService
userCourseAuthService
;
@Autowired
@Autowired
private
OrgSurplusService
orgSurplusService
;
private
OrgSurplusService
orgSurplusService
;
@Autowired
private
AlipayService
alipayService
;
private
String
generateOrderNo
()
{
private
String
generateOrderNo
()
{
DateTime
nowDateTime
=
DateUtil
.
date
();
DateTime
nowDateTime
=
DateUtil
.
date
();
...
@@ -120,9 +125,19 @@ public class ProductOrderService extends ServiceImpl<ProductOrderMapper, Product
...
@@ -120,9 +125,19 @@ public class ProductOrderService extends ServiceImpl<ProductOrderMapper, Product
throw
new
BusinessException
(
"微信支付异常"
);
throw
new
BusinessException
(
"微信支付异常"
);
}
}
}
else
if
(
orderPO
.
getPayMethod
()
==
PayMethodEnum
.
AliPay
){
}
else
if
(
orderPO
.
getPayMethod
()
==
PayMethodEnum
.
AliPay
){
//todo
AlipayTradeWapPayModel
payModel
=
new
AlipayTradeWapPayModel
();
payModel
.
setOutTradeNo
(
orderPO
.
getOrderNo
());
return
null
;
payModel
.
setSubject
(
orderPO
.
getOrderName
());
payModel
.
setTotalAmount
(
orderPO
.
getPaymentMoney
().
toString
());
payModel
.
setQuitUrl
(
frontendDomain
+
"/online-edu/pay/result"
);
//todo
payModel
.
setProductCode
(
"QUICK_WAP_WAY"
);
//todo
try
{
String
form
=
alipayService
.
prePayOrder
(
payModel
);
return
form
;
}
catch
(
AlipayApiException
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
throw
new
BusinessException
(
"支付宝创建订单异常"
);
}
}
}
return
null
;
return
null
;
}
}
...
@@ -206,7 +221,17 @@ public class ProductOrderService extends ServiceImpl<ProductOrderMapper, Product
...
@@ -206,7 +221,17 @@ public class ProductOrderService extends ServiceImpl<ProductOrderMapper, Product
return
ProductOrderStatusEnum
.
PAY_FAILD
;
return
ProductOrderStatusEnum
.
PAY_FAILD
;
}
}
}
else
if
(
orderPO
.
getPayMethod
()
==
PayMethodEnum
.
AliPay
){
}
else
if
(
orderPO
.
getPayMethod
()
==
PayMethodEnum
.
AliPay
){
try
{
String
queryResult
=
alipayService
.
queryOrder
(
orderNo
);
if
(
queryResult
.
equals
(
"TRADE_SUCCESS"
)
||
queryResult
.
equals
(
"TRADE_FINISHED"
)){
updateStatus
(
orderNo
,
ProductOrderStatusEnum
.
PAY_COMPLETE
);
return
ProductOrderStatusEnum
.
PAY_COMPLETE
;
}
else
{
return
ProductOrderStatusEnum
.
PAY_FAILD
;
return
ProductOrderStatusEnum
.
PAY_FAILD
;
}
}
catch
(
AlipayApiException
e
)
{
throw
new
BusinessException
(
"查询支付宝订单请求异常"
);
}
}
else
{
}
else
{
throw
new
BusinessException
(
"暂不支持的支付类型"
);
throw
new
BusinessException
(
"暂不支持的支付类型"
);
}
}
...
...
src/main/java/com/qkdata/biz/management/service/UserFavoritesService.java
View file @
8c9c8584
package
com
.
qkdata
.
biz
.
management
.
service
;
package
com
.
qkdata
.
biz
.
management
.
service
;
import
cn.hutool.core.collection.CollUtil
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.qkdata.biz.management.entity.UserFavoritesPO
;
import
com.qkdata.biz.management.entity.UserFavoritesPO
;
import
com.qkdata.biz.management.mapper.CourseTagRelMapper
;
import
com.qkdata.biz.management.mapper.UserFavoritesMapper
;
import
com.qkdata.biz.management.mapper.UserFavoritesMapper
;
import
com.qkdata.biz.management.vo.CourseChaperModel
;
import
com.qkdata.biz.management.vo.CourseTagsModel
;
import
com.qkdata.biz.management.vo.QueryFavoriteCourseModel
;
import
com.qkdata.biz.management.vo.QueryFavoriteCourseModel
;
import
com.qkdata.biz.web.vo.SearchCourseResultModel
;
import
com.qkdata.biz.web.vo.SearchCourseResultModel
;
import
com.qkdata.common.base.enums.CodeEnum
;
import
com.qkdata.common.base.enums.CodeEnum
;
import
com.qkdata.common.base.model.PageResult
;
import
com.qkdata.common.base.model.PageResult
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.List
;
@Service
@Service
public
class
UserFavoritesService
extends
ServiceImpl
<
UserFavoritesMapper
,
UserFavoritesPO
>
{
public
class
UserFavoritesService
extends
ServiceImpl
<
UserFavoritesMapper
,
UserFavoritesPO
>
{
@Autowired
private
CourseService
courseService
;
public
UserFavoritesPO
findByUserIdAndCourseId
(
Long
userId
,
Long
courseId
)
{
public
UserFavoritesPO
findByUserIdAndCourseId
(
Long
userId
,
Long
courseId
)
{
return
getOne
(
Wrappers
.<
UserFavoritesPO
>
lambdaQuery
().
eq
(
UserFavoritesPO:
:
getUserId
,
userId
).
eq
(
UserFavoritesPO:
:
getCourseId
,
courseId
));
return
getOne
(
Wrappers
.<
UserFavoritesPO
>
lambdaQuery
().
eq
(
UserFavoritesPO:
:
getUserId
,
userId
).
eq
(
UserFavoritesPO:
:
getCourseId
,
courseId
));
...
@@ -27,6 +34,7 @@ public class UserFavoritesService extends ServiceImpl<UserFavoritesMapper, UserF
...
@@ -27,6 +34,7 @@ public class UserFavoritesService extends ServiceImpl<UserFavoritesMapper, UserF
public
PageResult
<
SearchCourseResultModel
>
queryPageList
(
QueryFavoriteCourseModel
model
)
{
public
PageResult
<
SearchCourseResultModel
>
queryPageList
(
QueryFavoriteCourseModel
model
)
{
Page
page
=
new
Page
(
model
.
getPageIndex
(),
model
.
getPageSize
());
Page
page
=
new
Page
(
model
.
getPageIndex
(),
model
.
getPageSize
());
List
<
SearchCourseResultModel
>
list
=
baseMapper
.
queryPageList
(
page
,
model
);
List
<
SearchCourseResultModel
>
list
=
baseMapper
.
queryPageList
(
page
,
model
);
courseService
.
addTagAndDuration
(
list
);
return
PageResult
.<
SearchCourseResultModel
>
builder
().
code
(
CodeEnum
.
SUCCESS
.
getCode
()).
count
(
page
.
getTotal
()).
data
(
list
).
build
();
return
PageResult
.<
SearchCourseResultModel
>
builder
().
code
(
CodeEnum
.
SUCCESS
.
getCode
()).
count
(
page
.
getTotal
()).
data
(
list
).
build
();
}
}
}
}
src/main/resources/application-dev.yml
View file @
8c9c8584
...
@@ -23,3 +23,10 @@ wx:
...
@@ -23,3 +23,10 @@ wx:
sms
:
sms
:
api
:
api
:
v3
:
http://localhost:9004/sms/api/v3
v3
:
http://localhost:9004/sms/api/v3
## 支付宝沙箱环境
alipay
:
appId
:
2021000117670831
url
:
https://openapi.alipaydev.com/gateway.do
appPrivateKey
:
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCJOkoU54PfkfL6LktJzYRvWGQjXptV0Y2w3h35Zf4yjfIKjAXLumiNE00XCWcsR2HWbx23SpcHLlk9peUd1+OKGkk1D4Ts99r/5OimRmVjnF+/pRPtooCMEa1ub6NO2IPTnyz/jxn4gXsGlKRVIMP7Sa9xVodZib4IXWemf7+jysQuG1R5kN9ClkQi+WIv4MExueUJiu2tyhDnuvk/vIDGP3tTbY1myedqx/StZIu2zQRul/KIDKkNUmXVds0F9QbnwK7AdcQwyCyy86XQzytq0GNPqL83YZGEvmH0mJ4nfkWKpyHzOLmkhvkKzOD3rRi8HtV7YUMTWN3v3vHrRE/pAgMBAAECggEAJK/puFcA4ZeSXyJbTHreaio2c2JKoxHoEJ4BY3jKEdfzGrC+p+3JH9ZGKN+BrsvSs1J3nlYZtHjGsP2WGHlsQrKuWboxbm0BJqKbNEDjwFLBImpOvpxQQ6JCPKEqBt1JuRz4Gca3ScHME0FQAdZFrvvPJLzeaKiznmbiXBgRMweRW704Nk2HfM3Uo7x2PS3BiCDdaQ0CXnj63EWHCteyLf4TlgV7qlk0OG9uh9RWm5xRC5/ucscc8oa8BdC/fLdAh7T2XIHFtVhEe+KPYvobJ3lFZlRb/jhKlu79wWXC08zoQrunCesvsB/RrLDTHk0FV29h1qv3BneOLFVDiwj6BQKBgQC9dXcDmRx7kZcA/dDz13RljWo0kmuYQt1h1dI1a7GgqcIdI5jdwOf3vVN7Ctge6YLaG+ptiaXU+SAMN1HQnqzN5DlKn2Q7hN66I+KQjfOYggnDEscOIPEaY/avAsSVZObZu+bK/XDIbypDDl4dELvVQy8ckd4CCCKC8QduqObu8wKBgQC5bKQzIrvtmaEhqbjvP83CZyiGG/GB3zzogJUKA6nm0oKiURHldoA5UozYyvbu3sBBuw81NQYuMMBVBZgO3XIFc7hHVqyn93dHgzOxUFYk2bhliVg9siFg6n3YQWvxIDkP6NGVhCXPLL+0H33rcBCjgQyxJyUa35rAzovFWu7UswKBgQClvrvNxAcs+2N1lJdWm6jSpvLA50+Ftwlh6+OopHyTJ7AQOfIkHf1RuKntvMDx2iuFkGJ4TbFsLj4hMcw7jHV08jJE3Eid4VHQ2k/9UpJHW4wawrSt4ZfMFKPc27kLUWi8FyyDbVFbqBT68PjYyKjqm4n9nobwlBlNIHv2DYFqjQKBgDWUH+oqujTQtI+elDKFtDXdSwddYa6OS/I+3VH0dw6ce2Tdmhc845YstUgbdbjWIqWboKxWMv/71Ed9A1AgSscqhfAPKnqqdgvy7Gfq98lUJAUq55WEOELh3xUy6jbVgceIFa9nbOltW8N3ahIy4ovsSTeTQRR/0h6uUBLp0KMjAoGAHJBJOAnS8csXYIIMArXcxCUgnC90sMQ9DySaTxmtfTVAy7Gs1TnBLRpwWOg55u1KebVTgx5T6vU+KupNi5KAbuK/1so27XXCo7DAY83leJTn9UC4iyOSOhTyNBwvd8uDyT2XrxbesSTBLe1dT3QtXJwT4iBttKky9lsAQDHB13o=
alipayPublicKey
:
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhBcqLFQhDttWG9Ffqzf8SNjYP/IzBHxUh9XxHVbUXFtDyCY4L0mZKfOCKKq9q7gC0D3wWEmP+OS4b/5oB7n0DgWExTb2lcStzwzISEyoRagGH38EWH77PgN97tsJw6p06nVTWr+0W60tb1FZeFmCNbqzEpuF22srRztKzfHfoyn8KyL5LcZ15JBPC8uuRT0fSh2txYrjvVuToh8tdMcLEL/LGj1h/E8ol7qSUfHkyQNyeWgP2YrzzmW9QvLuRYUS2ZjhMbbBbGpkq9Bf35kwNG3gvcb0y0cYXV9zR/OLgz0aRF7scDIICUYG9/9o0ezGaH4veaKCUC+8Zx9CqUUdZwIDAQAB
src/main/resources/application.yml
View file @
8c9c8584
...
@@ -127,3 +127,9 @@ aliyun:
...
@@ -127,3 +127,9 @@ aliyun:
bucket
:
qkdata-online-edu
bucket
:
qkdata-online-edu
vod
:
vod
:
region
:
cn-shanghai
region
:
cn-shanghai
alipay
:
appId
:
aaaa
url
:
https://openapi.alipay.com/gateway.do
appPrivateKey
:
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCJOkoU54PfkfL6LktJzYRvWGQjXptV0Y2w3h35Zf4yjfIKjAXLumiNE00XCWcsR2HWbx23SpcHLlk9peUd1+OKGkk1D4Ts99r/5OimRmVjnF+/pRPtooCMEa1ub6NO2IPTnyz/jxn4gXsGlKRVIMP7Sa9xVodZib4IXWemf7+jysQuG1R5kN9ClkQi+WIv4MExueUJiu2tyhDnuvk/vIDGP3tTbY1myedqx/StZIu2zQRul/KIDKkNUmXVds0F9QbnwK7AdcQwyCyy86XQzytq0GNPqL83YZGEvmH0mJ4nfkWKpyHzOLmkhvkKzOD3rRi8HtV7YUMTWN3v3vHrRE/pAgMBAAECggEAJK/puFcA4ZeSXyJbTHreaio2c2JKoxHoEJ4BY3jKEdfzGrC+p+3JH9ZGKN+BrsvSs1J3nlYZtHjGsP2WGHlsQrKuWboxbm0BJqKbNEDjwFLBImpOvpxQQ6JCPKEqBt1JuRz4Gca3ScHME0FQAdZFrvvPJLzeaKiznmbiXBgRMweRW704Nk2HfM3Uo7x2PS3BiCDdaQ0CXnj63EWHCteyLf4TlgV7qlk0OG9uh9RWm5xRC5/ucscc8oa8BdC/fLdAh7T2XIHFtVhEe+KPYvobJ3lFZlRb/jhKlu79wWXC08zoQrunCesvsB/RrLDTHk0FV29h1qv3BneOLFVDiwj6BQKBgQC9dXcDmRx7kZcA/dDz13RljWo0kmuYQt1h1dI1a7GgqcIdI5jdwOf3vVN7Ctge6YLaG+ptiaXU+SAMN1HQnqzN5DlKn2Q7hN66I+KQjfOYggnDEscOIPEaY/avAsSVZObZu+bK/XDIbypDDl4dELvVQy8ckd4CCCKC8QduqObu8wKBgQC5bKQzIrvtmaEhqbjvP83CZyiGG/GB3zzogJUKA6nm0oKiURHldoA5UozYyvbu3sBBuw81NQYuMMBVBZgO3XIFc7hHVqyn93dHgzOxUFYk2bhliVg9siFg6n3YQWvxIDkP6NGVhCXPLL+0H33rcBCjgQyxJyUa35rAzovFWu7UswKBgQClvrvNxAcs+2N1lJdWm6jSpvLA50+Ftwlh6+OopHyTJ7AQOfIkHf1RuKntvMDx2iuFkGJ4TbFsLj4hMcw7jHV08jJE3Eid4VHQ2k/9UpJHW4wawrSt4ZfMFKPc27kLUWi8FyyDbVFbqBT68PjYyKjqm4n9nobwlBlNIHv2DYFqjQKBgDWUH+oqujTQtI+elDKFtDXdSwddYa6OS/I+3VH0dw6ce2Tdmhc845YstUgbdbjWIqWboKxWMv/71Ed9A1AgSscqhfAPKnqqdgvy7Gfq98lUJAUq55WEOELh3xUy6jbVgceIFa9nbOltW8N3ahIy4ovsSTeTQRR/0h6uUBLp0KMjAoGAHJBJOAnS8csXYIIMArXcxCUgnC90sMQ9DySaTxmtfTVAy7Gs1TnBLRpwWOg55u1KebVTgx5T6vU+KupNi5KAbuK/1so27XXCo7DAY83leJTn9UC4iyOSOhTyNBwvd8uDyT2XrxbesSTBLe1dT3QtXJwT4iBttKky9lsAQDHB13o=
alipayPublicKey
:
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAigumfaT5OI9WRVkZKC6lU95MaxCwNvcyRo+oQlItuhQLJexyIcLk87i4WWEmkkZOu8SLsPazkn18QeMnMwy98Pm1iGZCBmwFnj3UNq0qm5lfmpao945QKskArKVr/kkRMBNNm6INGpsppZAvBaBsiiSw4jrrgTE9AP3SvPQ2rykiZaU5Kcn7nMUueZt2aYIbJrpQ70mcl18sZILDPL0vNQJ1pIFMJN6B/BxSJDfi5Bbh2fiwOu+qVivBfYbCJuHpx2RWGA7jknGsnXHUHfAekAlFhtwGpa+fvpQPoB1jRPmvi8VQGJA+zU6lunxcRxpTEVGr1ryeeTUFIixQY9XNuQIDAQAB
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment