Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
V
volunteer_service
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
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
licc
volunteer_service
Commits
58088c9c
Commit
58088c9c
authored
Mar 23, 2021
by
cy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
支付
parent
485518ed
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
710 additions
and
184 deletions
+710
-184
Md5Util.java
...mmon/src/main/java/cn/wisenergy/common/utils/Md5Util.java
+35
-0
wisenergy-common.iml
wisenergy-common/wisenergy-common.iml
+2
-2
PayRecordMapper.java
...er/src/main/java/cn/wisenergy/mapper/PayRecordMapper.java
+2
-0
PayRecordMapper.xml
...ergy-mapper/src/main/resources/mapper/PayRecordMapper.xml
+4
-2
wisenergy-mapper.iml
wisenergy-mapper/wisenergy-mapper.iml
+2
-2
PayRecord.java
...model/src/main/java/cn/wisenergy/model/app/PayRecord.java
+6
-0
AddLimitVo.java
...model/src/main/java/cn/wisenergy/model/vo/AddLimitVo.java
+6
-0
PayRecordShowVo.java
.../src/main/java/cn/wisenergy/model/vo/PayRecordShowVo.java
+5
-0
wisenergy-model.iml
wisenergy-model/wisenergy-model.iml
+2
-2
AliPayService.java
...src/main/java/cn/wisenergy/service/app/AliPayService.java
+8
-0
TestWxPayService.java
.../main/java/cn/wisenergy/service/app/TestWxPayService.java
+28
-0
AliPayServiceImpl.java
...java/cn/wisenergy/service/app/impl/AliPayServiceImpl.java
+87
-107
TestWxPayServiceImpl.java
...a/cn/wisenergy/service/app/impl/TestWxPayServiceImpl.java
+217
-0
VolunteerServiceImpl.java
...a/cn/wisenergy/service/app/impl/VolunteerServiceImpl.java
+0
-1
Common.java
...ice/src/main/java/cn/wisenergy/service/common/Common.java
+50
-41
VolunteerManager.java
...in/java/cn/wisenergy/service/common/VolunteerManager.java
+13
-1
MapToXmlUtils.java
...rc/main/java/cn/wisenergy/service/util/MapToXmlUtils.java
+154
-0
wisenergy-service.iml
wisenergy-service/wisenergy-service.iml
+22
-7
PayController.java
.../cn/wisenergy/web/admin/controller/app/PayController.java
+43
-11
application-dev.yml
wisenergy-web-admin/src/main/resources/application-dev.yml
+1
-0
application-prod.yml
wisenergy-web-admin/src/main/resources/application-prod.yml
+2
-2
wisenergy-web-admin.iml
wisenergy-web-admin/wisenergy-web-admin.iml
+21
-6
No files found.
wisenergy-common/src/main/java/cn/wisenergy/common/utils/Md5Util.java
View file @
58088c9c
...
...
@@ -59,5 +59,40 @@ public class Md5Util {
}
return
sb
.
toString
();
}
private
static
String
byteArrayToHexString
(
byte
b
[])
{
StringBuffer
resultSb
=
new
StringBuffer
();
for
(
int
i
=
0
;
i
<
b
.
length
;
i
++)
resultSb
.
append
(
byteToHexString
(
b
[
i
]));
return
resultSb
.
toString
();
}
private
static
String
byteToHexString
(
byte
b
)
{
int
n
=
b
;
if
(
n
<
0
)
n
+=
256
;
int
d1
=
n
/
16
;
int
d2
=
n
%
16
;
return
hexDigits
[
d1
]
+
hexDigits
[
d2
];
}
public
static
String
MD5Encode
(
String
origin
,
String
charsetname
)
{
String
resultString
=
null
;
try
{
resultString
=
new
String
(
origin
);
MessageDigest
md
=
MessageDigest
.
getInstance
(
"MD5"
);
if
(
charsetname
==
null
||
""
.
equals
(
charsetname
))
resultString
=
byteArrayToHexString
(
md
.
digest
(
resultString
.
getBytes
()));
else
resultString
=
byteArrayToHexString
(
md
.
digest
(
resultString
.
getBytes
(
charsetname
)));
}
catch
(
Exception
exception
)
{
}
return
resultString
;
}
private
static
final
String
hexDigits
[]
=
{
"0"
,
"1"
,
"2"
,
"3"
,
"4"
,
"5"
,
"6"
,
"7"
,
"8"
,
"9"
,
"a"
,
"b"
,
"c"
,
"d"
,
"e"
,
"f"
};
}
wisenergy-common/wisenergy-common.iml
View file @
58088c9c
...
...
@@ -47,8 +47,6 @@
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-expression:5.1.7.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-undertow:2.1.5.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.undertow:undertow-core:2.0.20.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jboss.xnio:xnio-api:3.3.8.Final"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"RUNTIME"
name=
"Maven: org.jboss.xnio:xnio-nio:3.3.8.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.undertow:undertow-servlet:2.0.20.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jboss.spec.javax.annotation:jboss-annotations-api_1.2_spec:1.0.2.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.undertow:undertow-websockets-jsr:2.0.20.Final"
level=
"project"
/>
...
...
@@ -78,6 +76,8 @@
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-jcl:5.1.7.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-test:5.1.7.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.xmlunit:xmlunit-core:2.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: javax.xml.bind:jaxb-api:2.3.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: javax.activation:javax.activation-api:1.2.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-jdbc:2.1.5.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.zaxxer:HikariCP:3.2.0"
level=
"project"
/>
...
...
wisenergy-mapper/src/main/java/cn/wisenergy/mapper/PayRecordMapper.java
View file @
58088c9c
...
...
@@ -19,4 +19,6 @@ public interface PayRecordMapper extends BaseMapper<PayRecord> {
int
count
(
Map
<
String
,
Object
>
map
);
List
<
PayRecord
>
getById
(
@Param
(
"userId"
)
Integer
userId
);
}
wisenergy-mapper/src/main/resources/mapper/PayRecordMapper.xml
View file @
58088c9c
...
...
@@ -9,6 +9,7 @@
<result
column=
"card_id"
property=
"cardId"
/>
<result
column=
"money"
property=
"money"
/>
<result
column=
"result"
property=
"result"
/>
<result
column=
"trade_no"
property=
"tradeNo"
/>
<result
column=
"pay_limit"
property=
"payLimit"
/>
<result
column=
"create_time"
property=
"createTime"
/>
<result
column=
"update_time"
property=
"updateTime"
/>
...
...
@@ -24,11 +25,11 @@
</sql>
<sql
id=
"cols_exclude_id"
>
user_id,type, card_id,money,result,pay_limit, create_time,update_time
user_id,type, card_id,
trade_no,
money,result,pay_limit, create_time,update_time
</sql>
<sql
id=
"vals"
>
#{userId},#{type},#{cardId},#{money},#{result},#{payLimit},now(),now()
#{userId},#{type},#{cardId},#{
tradeNo},#{
money},#{result},#{payLimit},now(),now()
</sql>
<sql
id=
"updateCondition"
>
...
...
@@ -100,4 +101,5 @@
</where>
</select>
</mapper>
wisenergy-mapper/wisenergy-mapper.iml
View file @
58088c9c
...
...
@@ -51,8 +51,6 @@
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-expression:5.1.7.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-undertow:2.1.5.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.undertow:undertow-core:2.0.20.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jboss.xnio:xnio-api:3.3.8.Final"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"RUNTIME"
name=
"Maven: org.jboss.xnio:xnio-nio:3.3.8.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.undertow:undertow-servlet:2.0.20.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jboss.spec.javax.annotation:jboss-annotations-api_1.2_spec:1.0.2.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.undertow:undertow-websockets-jsr:2.0.20.Final"
level=
"project"
/>
...
...
@@ -82,6 +80,8 @@
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-jcl:5.1.7.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-test:5.1.7.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.xmlunit:xmlunit-core:2.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: javax.xml.bind:jaxb-api:2.3.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: javax.activation:javax.activation-api:1.2.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-jdbc:2.1.5.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.zaxxer:HikariCP:3.2.0"
level=
"project"
/>
...
...
wisenergy-model/src/main/java/cn/wisenergy/model/app/PayRecord.java
View file @
58088c9c
...
...
@@ -42,6 +42,12 @@ public class PayRecord implements Serializable {
@ApiModelProperty
(
value
=
"充值用户id"
,
name
=
"userId"
)
private
Integer
userId
;
/**
* 支付交易号
*/
@ApiModelProperty
(
value
=
"支付交易号"
,
name
=
"tradeNo"
)
private
String
tradeNo
;
/**
* 充值所花金额
*/
...
...
wisenergy-model/src/main/java/cn/wisenergy/model/vo/AddLimitVo.java
View file @
58088c9c
...
...
@@ -41,4 +41,10 @@ public class AddLimitVo implements Serializable {
*/
@ApiModelProperty
(
value
=
"充值卡密码"
,
name
=
"password"
)
private
String
password
;
/**
* 支付交易号
*/
@ApiModelProperty
(
value
=
"支付交易号"
,
name
=
"tradeNo"
)
private
String
tradeNo
;
}
wisenergy-model/src/main/java/cn/wisenergy/model/vo/PayRecordShowVo.java
View file @
58088c9c
...
...
@@ -46,6 +46,11 @@ public class PayRecordShowVo implements Serializable {
*/
@ApiModelProperty
(
value
=
"充值时间"
,
name
=
"payTime"
)
private
Date
payTime
;
/**
* 支付交易号
*/
@ApiModelProperty
(
value
=
"支付交易号"
,
name
=
"tradeNo"
)
private
String
tradeNo
;
}
wisenergy-model/wisenergy-model.iml
View file @
58088c9c
...
...
@@ -49,8 +49,6 @@
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-expression:5.1.7.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-undertow:2.1.5.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.undertow:undertow-core:2.0.20.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jboss.xnio:xnio-api:3.3.8.Final"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"RUNTIME"
name=
"Maven: org.jboss.xnio:xnio-nio:3.3.8.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.undertow:undertow-servlet:2.0.20.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jboss.spec.javax.annotation:jboss-annotations-api_1.2_spec:1.0.2.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.undertow:undertow-websockets-jsr:2.0.20.Final"
level=
"project"
/>
...
...
@@ -80,6 +78,8 @@
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-jcl:5.1.7.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-test:5.1.7.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.xmlunit:xmlunit-core:2.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: javax.xml.bind:jaxb-api:2.3.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: javax.activation:javax.activation-api:1.2.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-jdbc:2.1.5.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.zaxxer:HikariCP:3.2.0"
level=
"project"
/>
...
...
wisenergy-service/src/main/java/cn/wisenergy/service/app/AliPayService.java
View file @
58088c9c
...
...
@@ -24,4 +24,12 @@ public interface AliPayService {
* @return 查询结果
*/
R
<
String
>
query
(
PayQueryDto
payQueryDto
);
/***
* 支付宝回调
* @param response
* @param request
* @return
*/
R
<
String
>
aliPayCallBack
(
HttpServletResponse
response
,
HttpServletRequest
request
);
}
wisenergy-service/src/main/java/cn/wisenergy/service/app/TestWxPayService.java
0 → 100644
View file @
58088c9c
package
cn
.
wisenergy
.
service
.
app
;
import
cn.wisenergy.common.utils.R
;
import
cn.wisenergy.model.dto.PayPageDto
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
/**
* @author chnegyan
*/
public
interface
TestWxPayService
{
/**
* 测试-微信支付
* @Param
* @return
*/
R
<
String
>
wxPay
(
PayPageDto
payPageDto
,
HttpServletResponse
response
);
/***
*测试-支付成功回调
* @param request
* @param response
* @return
*/
R
<
String
>
wxPayCallBack
(
HttpServletRequest
request
,
HttpServletResponse
response
);
}
wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/AliPayServiceImpl.java
View file @
58088c9c
package
cn
.
wisenergy
.
service
.
app
.
impl
;
import
cn.wisenergy.common.utils.R
;
import
cn.wisenergy.mapper.PayRecordMapper
;
import
cn.wisenergy.model.app.PayRecord
;
import
cn.wisenergy.model.app.User
;
import
cn.wisenergy.model.dto.PayPageDto
;
import
cn.wisenergy.model.dto.PayQueryDto
;
import
cn.wisenergy.model.vo.AddLimitVo
;
...
...
@@ -9,13 +12,19 @@ import cn.wisenergy.service.app.UserLimitService;
import
cn.wisenergy.service.common.Common
;
import
com.alipay.api.AlipayClient
;
import
com.alipay.api.DefaultAlipayClient
;
import
com.alipay.api.internal.util.AlipaySignature
;
import
com.alipay.api.request.AlipayTradePagePayRequest
;
import
com.alipay.api.response.AlipayTradePagePayResponse
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.HashMap
;
import
java.util.Iterator
;
import
java.util.Map
;
@Slf4j
@Service
...
...
@@ -24,145 +33,116 @@ public class AliPayServiceImpl implements AliPayService {
@Autowired
private
UserLimitService
userLimitService
;
@Autowired
private
PayRecordMapper
payRecordMapper
;
@Override
public
R
<
String
>
doPost
(
PayPageDto
payPageDto
,
HttpServletRequest
request
,
HttpServletResponse
httpResponse
)
{
if
(
null
==
payPageDto
||
null
==
payPageDto
.
getTotal
())
{
return
R
.
error
(
"人参不能为空!"
);
}
AlipayClient
alipayClient
=
new
DefaultAlipayClient
(
Common
.
PAY_URL_CS
,
Common
.
APP_ID_CS
,
Common
.
PRIVATE_KEY_CS
,
"json"
,
"
GBK
"
,
Common
.
ALIPAY_PUBLIC_KEY_CS
,
"RSA2"
);
AlipayClient
alipayClient
=
new
DefaultAlipayClient
(
Common
.
PAY_URL_CS
,
Common
.
APP_ID_CS
,
Common
.
PRIVATE_KEY_CS
,
"json"
,
"
UTF-8
"
,
Common
.
ALIPAY_PUBLIC_KEY_CS
,
"RSA2"
);
AlipayTradePagePayRequest
alipayRequest
=
new
AlipayTradePagePayRequest
();
String
tradeNo
=
"21"
+
System
.
currentTimeMillis
();
//创建API对应的request
alipayRequest
.
setReturnUrl
(
"http://domain.com/CallBack/return_url.jsp"
);
//在公共参数中设置回跳和通知地址
alipayRequest
.
setNotifyUrl
(
"http://
domain.com/CallBack/notify_url.jsp
"
);
alipayRequest
.
setNotifyUrl
(
"http://
x6kmrr.natappfree.cc/pay/aliPayCallBack.do
"
);
alipayRequest
.
setBizContent
(
"{"
+
"\"out_trade_no\":\""
+
tradeNo
+
"\","
+
"\"product_code\":\"FAST_INSTANT_TRADE_PAY\","
+
"\"total_amount\":"
+
payPageDto
.
getTotal
()
+
","
+
"\"subject\":\"充值\","
+
"\"body\":\"充值\","
+
"\"time_expire\":\"2021-01-30 10:05:01\","
+
" \"goods_detail\":[{"
+
" \"goods_id\":\"apple-01\","
+
"\"alipay_goods_id\":\"20010001\","
+
"\"goods_name\":\"ipad\","
+
"\"quantity\":1,"
+
"\"price\":2000,"
+
"\"goods_category\":\"34543238\","
+
"\"categories_tree\":\"124868003|126232002|126252004\","
+
"\"body\":\"特价手机\","
+
"\"show_url\":\"http://www.alipay.com/xxx.jpg\""
+
" }],"
+
"\"passback_params\":\"merchantBizType%3d3C%26merchantBizNo%3d2016010101111\","
+
"\"extend_params\":{"
+
"\"sys_service_provider_id\":\"2088511833207846\","
+
"\"hb_fq_num\":\"3\","
+
"\"hb_fq_seller_percent\":\"100\","
+
"\"industry_reflux_info\":\"{\\\\\\\"scene_code\\\\\\\":\\\\\\\"metro_tradeorder\\\\\\\",\\\\\\\"channel\\\\\\\":\\\\\\\"xxxx\\\\\\\",\\\\\\\"scene_data\\\\\\\":{\\\\\\\"asset_name\\\\\\\":\\\\\\\"ALIPAY\\\\\\\"}}\","
+
"\"card_type\":\"S0JP0000\""
+
" },"
+
"\"goods_type\":\"0\","
+
"\"timeout_express\":\"90m\","
+
"\"promo_params\":\"{\\\"storeIdType\\\":\\\"1\\\"}\","
+
"\"royalty_info\":{"
+
"\"royalty_type\":\"ROYALTY\","
+
" \"royalty_detail_infos\":[{"
+
" \"serial_no\":1,"
+
"\"trans_in_type\":\"userId\","
+
"\"batch_no\":\"123\","
+
"\"out_relation_id\":\"20131124001\","
+
"\"trans_out_type\":\"userId\","
+
"\"trans_out\":\"2088101126765726\","
+
"\"trans_in\":\"2088101126708402\","
+
"\"amount\":0.1,"
+
"\"desc\":\"分账测试1\","
+
"\"amount_percentage\":\"100\""
+
" }]"
+
" },"
+
"\"sub_merchant\":{"
+
"\"merchant_id\":\"2088000603999128\","
+
"\"merchant_type\":\"alipay: 支付宝分配的间连商户编号, merchant: 商户端的间连商户编号\""
+
" },"
+
"\"merchant_order_no\":\"20161008001\","
+
"\"enable_pay_channels\":\"pcredit,moneyFund,debitCardExpress\","
+
"\"store_id\":\"NJ_001\","
+
"\"disable_pay_channels\":\"pcredit,moneyFund,debitCardExpress\","
+
"\"qr_pay_mode\":\"1\","
+
"\"qrcode_width\":100,"
+
"\"settle_info\":{"
+
" \"settle_detail_infos\":[{"
+
" \"trans_in_type\":\"cardAliasNo\","
+
"\"trans_in\":\"A0001\","
+
"\"summary_dimension\":\"A0001\","
+
"\"settle_entity_id\":\"2088xxxxx;ST_0001\","
+
"\"settle_entity_type\":\"SecondMerchant、Store\","
+
"\"amount\":0.1"
+
" }],"
+
"\"settle_period_time\":\"7d\""
+
" },"
+
"\"invoice_info\":{"
+
"\"key_info\":{"
+
"\"is_support_invoice\":true,"
+
"\"invoice_merchant_name\":\"ABC|003\","
+
"\"tax_num\":\"1464888883494\""
+
" },"
+
"\"details\":\"[{\\\"code\\\":\\\"100294400\\\",\\\"name\\\":\\\"服饰\\\",\\\"num\\\":\\\"2\\\",\\\"sumPrice\\\":\\\"200.00\\\",\\\"taxRate\\\":\\\"6%\\\"}]\""
+
" },"
+
"\"agreement_sign_params\":{"
+
"\"personal_product_code\":\"GENERAL_WITHHOLDING_P\","
+
"\"sign_scene\":\"INDUSTRY|CARRENTAL\","
+
"\"external_agreement_no\":\"test\","
+
"\"external_logon_id\":\"13852852877\","
+
"\"sign_validity_period\":\"2m\","
+
"\"third_party_type\":\"PARTNER\","
+
"\"buckle_app_id\":\"1001164\","
+
"\"buckle_merchant_id\":\"268820000000414397785\","
+
"\"promo_params\":\"{\\\"key\\\",\\\"value\\\"}\""
+
" },"
+
"\"integration_type\":\"PCWEB\","
+
"\"request_from_url\":\"https://\","
+
"\"business_params\":\"{\\\"data\\\":\\\"123\\\"}\","
+
"\"ext_user_info\":{"
+
"\"name\":\"李明\","
+
"\"mobile\":\"16587658765\","
+
"\"cert_type\":\"IDENTITY_CARD\","
+
"\"cert_no\":\"362334768769238881\","
+
"\"min_age\":\"18\","
+
"\"fix_buyer\":\"F\","
+
"\"need_check_info\":\"F\""
+
" }"
+
" }"
);
String
form
=
""
;
//调用SDK生成表单
try
{
form
=
alipayClient
.
pageExecute
(
alipayRequest
).
getBody
();
httpResponse
.
setContentType
(
"text/html;charset="
+
CHARSET
);
AlipayTradePagePayResponse
response
=
alipayClient
.
pageExecute
(
alipayRequest
);
form
=
response
.
getBody
();
httpResponse
.
setContentType
(
"text/html;charset=UTF-8"
);
//直接将完整的表单html输出到页面
httpResponse
.
getWriter
().
write
(
form
);
httpResponse
.
getWriter
().
flush
();
httpResponse
.
getWriter
().
close
();
//增加用户查询次数和充值记录
AddLimitVo
addLimitVo
=
new
AddLimitVo
();
addLimitVo
.
setPayMoney
(
payPageDto
.
getTotal
());
addLimitVo
.
setPayType
(
1
);
addLimitVo
.
setUserId
(
payPageDto
.
getUserId
());
R
<
Boolean
>
booleanR
=
userLimitService
.
addLimit
(
addLimitVo
);
if
(
booleanR
.
getCode
()==
1
)
{
return
R
.
error
(
"用户查询次数添加失败"
);
if
(
response
.
isSuccess
()){
System
.
out
.
println
(
"调用成功"
);
//生成预支付订单,充值结果设为失败(result=1)
PayRecord
payRecord
=
new
PayRecord
();
payRecord
.
setMoney
(
payPageDto
.
getTotal
());
payRecord
.
setResult
(
1
);
payRecord
.
setTradeNo
(
tradeNo
);
payRecord
.
setType
(
payPageDto
.
getPayType
());
payRecord
.
setUserId
(
payPageDto
.
getUserId
());
payRecordMapper
.
add
(
payRecord
);
return
R
.
ok
(
0
,
form
);
}
else
{
System
.
out
.
println
(
"调用失败"
);
return
R
.
error
(
"调用失败"
);
}
return
R
.
ok
(
0
,
"充值成功"
);
}
catch
(
Exception
e
)
{
return
R
.
ok
(
1
,
"
充值
失败"
);
return
R
.
ok
(
1
,
"
调用
失败"
);
}
}
@Override
public
R
<
String
>
query
(
PayQueryDto
payQueryDto
)
{
return
null
;
}
@Override
public
R
<
String
>
aliPayCallBack
(
HttpServletResponse
response
,
HttpServletRequest
request
)
{
System
.
out
.
println
(
"支付宝回调成功"
);
try
{
//获取支付宝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
]
+
","
;
}
//乱码解决,这段代码在出现乱码时使用。
//valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8");
params
.
put
(
name
,
valueStr
);
}
boolean
flag
=
AlipaySignature
.
rsaCheckV1
(
params
,
Common
.
ALIPAY_PUBLIC_KEY_CS
,
CHARSET
,
"RSA2"
);
// 获取支付宝的通知返回参数
String
order_no
=
request
.
getParameter
(
"out_trade_no"
);
// 获取订单号
if
(
flag
==
true
)
{
// 验证成功
try
{
//返回成功后修改订单充值结果为0,保存查询次数
QueryWrapper
<
PayRecord
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"trade_no"
,
order_no
);
PayRecord
payRecord
=
payRecordMapper
.
selectOne
(
queryWrapper
);
AddLimitVo
addLimitVo
=
new
AddLimitVo
();
addLimitVo
.
setTradeNo
(
order_no
);
addLimitVo
.
setPayMoney
(
payRecord
.
getMoney
());
addLimitVo
.
setPayType
(
2
);
addLimitVo
.
setUserId
(
payRecord
.
getUserId
());
R
<
Boolean
>
booleanR
=
userLimitService
.
addLimit
(
addLimitVo
);
if
(
booleanR
.
getCode
()==
1
)
{
return
R
.
error
(
"用户查询次数添加失败"
);
}
return
R
.
ok
(
0
,
"充值成功"
);
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"支付宝支付异常"
);
e
.
printStackTrace
();
return
R
.
error
(
"支付宝支付异常"
);
}
}
response
.
getWriter
().
write
(
"success"
);
return
R
.
ok
(
0
,
"支付宝订单支付成功"
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
R
.
error
(
"支付宝支付异常"
);
}
}
}
wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/TestWxPayServiceImpl.java
0 → 100644
View file @
58088c9c
package
cn
.
wisenergy
.
service
.
app
.
impl
;
import
cn.wisenergy.common.utils.Md5Util
;
import
cn.wisenergy.common.utils.R
;
import
cn.wisenergy.mapper.PayRecordMapper
;
import
cn.wisenergy.mapper.PriceMapper
;
import
cn.wisenergy.model.app.PayRecord
;
import
cn.wisenergy.model.dto.PayPageDto
;
import
cn.wisenergy.model.vo.AddLimitVo
;
import
cn.wisenergy.service.app.TestWxPayService
;
import
cn.wisenergy.service.app.UserLimitService
;
import
cn.wisenergy.service.util.MapToXmlUtils
;
import
cn.wisenergy.service.wxpay.WxCommon
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
io.swagger.models.auth.In
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.RandomStringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.*
;
import
java.net.HttpURLConnection
;
import
java.net.URL
;
import
java.text.DecimalFormat
;
import
java.util.*
;
/**
* @author chengyan
*/
@Service
@Slf4j
public
class
TestWxPayServiceImpl
implements
TestWxPayService
{
public
static
String
basePath
=
"https://api.mch.weixin.qq.com/pay/unifiedorder"
;
@Autowired
private
UserLimitService
userLimitService
;
@Autowired
private
PayRecordMapper
payRecordMapper
;
/***
* 支付
* @param payPageDto
* @param response
* @return
*/
@Override
public
R
<
String
>
wxPay
(
PayPageDto
payPageDto
,
HttpServletResponse
response
)
{
if
(
null
==
payPageDto
||
null
==
payPageDto
.
getTotal
()){
return
R
.
error
(
"入参不能为空"
);
}
ServletOutputStream
sos
=
null
;
String
tradeNo
=
"21"
+
System
.
currentTimeMillis
();
//生成预支付订单,充值结果设为失败(result=1)
PayRecord
payRecord
=
new
PayRecord
();
payRecord
.
setMoney
(
payPageDto
.
getTotal
());
payRecord
.
setResult
(
1
);
payRecord
.
setTradeNo
(
tradeNo
);
payRecord
.
setType
(
payPageDto
.
getPayType
());
payRecord
.
setUserId
(
payPageDto
.
getUserId
());
payRecordMapper
.
add
(
payRecord
);
try
{
String
orderInfo
=
createOrderInfo
(
payPageDto
,
tradeNo
);
//生成【统一下单API】所需参数的接口
System
.
out
.
println
(
orderInfo
);
String
code_url
=
unifiedOrder
(
orderInfo
);
//调用统一下单接口
sos
=
response
.
getOutputStream
();
//QRCodeUtil.encode(code_url, sos);//调用生成二维码的方法
System
.
out
.
println
(
"code_url:"
+
code_url
);
return
R
.
ok
(
"0"
,
code_url
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
R
.
error
(
"获取code_url失败"
);
}
}
/***
* 生成统一下单格式的订单,生成一个XML格式的字符串
* @return
* @throws UnsupportedEncodingException
*/
public
String
createOrderInfo
(
PayPageDto
payPageDto
,
String
tradeNo
)
throws
UnsupportedEncodingException
{
String
nonce_str
=
RandomStringUtils
.
randomAlphanumeric
(
16
);
SortedMap
<
String
,
String
>
parameters
=
new
TreeMap
<
String
,
String
>();
parameters
.
put
(
"appid"
,
WxCommon
.
APP_ID
);
parameters
.
put
(
"mch_id"
,
WxCommon
.
MCHID
);
parameters
.
put
(
"body"
,
"充值"
);
parameters
.
put
(
"out_trade_no"
,
tradeNo
);
parameters
.
put
(
"nonce_str"
,
nonce_str
);
DecimalFormat
df
=
new
DecimalFormat
(
"#"
);
parameters
.
put
(
"total_fee"
,
df
.
format
((
payPageDto
.
getTotal
())*
100
));
parameters
.
put
(
"notify_url"
,
WxCommon
.
NOTIFY_URL
);
parameters
.
put
(
"trade_type"
,
"NATIVE"
);
String
characterEncoding
=
"UTF-8"
;
String
sign
=
createSign
(
characterEncoding
,
parameters
);
parameters
.
put
(
"sign"
,
sign
);
//签名
//将订单对象转为xml格式
String
s
=
null
;
try
{
return
MapToXmlUtils
.
mapToXml
(
parameters
);
//maptoXml方法是微信sdk自带的方法
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
new
String
(
s
.
getBytes
(
"UTF-8"
));
}
/***
* 统一下单
* @param info
* @return
* @throws Exception
*/
public
String
unifiedOrder
(
String
info
)
throws
Exception
{
HttpURLConnection
conn
=
(
HttpURLConnection
)
new
URL
(
basePath
).
openConnection
();
//加入数据
conn
.
setRequestMethod
(
"POST"
);
conn
.
setDoOutput
(
true
);
BufferedOutputStream
buffOutStr
=
new
BufferedOutputStream
(
conn
.
getOutputStream
());
buffOutStr
.
write
(
info
.
getBytes
(
"UTF-8"
));
buffOutStr
.
flush
();
buffOutStr
.
close
();
//获取输入流
BufferedReader
reader
=
new
BufferedReader
(
new
InputStreamReader
(
conn
.
getInputStream
(),
"UTF-8"
));
String
line
=
null
;
StringBuffer
sb
=
new
StringBuffer
();
while
((
line
=
reader
.
readLine
())
!=
null
)
{
sb
.
append
(
line
);
}
Map
<
String
,
String
>
map
=
MapToXmlUtils
.
xmlToMap
(
sb
.
toString
());
//返回的部分字段
String
return_msg
=
map
.
get
(
"return_msg"
);
//返回信息
String
return_code
=
map
.
get
(
"return_code"
);
//状态码
String
result_code
=
map
.
get
(
"result_code"
);
//业务结果
String
code_url
=
map
.
get
(
"code_url"
);
//根据微信文档return_code 和result_code都为SUCCESS的时候才会返回code_url
if
(
null
!=
map
&&
"SUCCESS"
.
equals
(
return_code
)
&&
"SUCCESS"
.
equals
(
result_code
))
{
return
code_url
;
}
else
{
System
.
out
.
println
(
return_msg
);
return
null
;
}
}
/***
* 生成签名
* @param characterEncoding
* @param parameters
* @return
*/
public
static
String
createSign
(
String
characterEncoding
,
SortedMap
<
String
,
String
>
parameters
){
StringBuffer
sb
=
new
StringBuffer
();
Set
es
=
parameters
.
entrySet
();
//所有参与传参的参数按照accsii排序(升序)
Iterator
it
=
es
.
iterator
();
while
(
it
.
hasNext
())
{
Map
.
Entry
entry
=
(
Map
.
Entry
)
it
.
next
();
String
k
=
(
String
)
entry
.
getKey
();
Object
v
=
entry
.
getValue
();
if
(
null
!=
v
&&
!
""
.
equals
(
v
)
&&
!
"sign"
.
equals
(
k
)
&&
!
"key"
.
equals
(
k
))
{
sb
.
append
(
k
+
"="
+
v
+
"&"
);
}
}
sb
.
append
(
"key="
+
WxCommon
.
PRIVATE_KEY
);
String
sign
=
Md5Util
.
MD5Encode
(
sb
.
toString
(),
characterEncoding
).
toUpperCase
();
System
.
out
.
println
(
"签名:"
+
sign
);
return
sign
;
}
/***
* 支付成功回调
* @param request
* @param response
* @return
*/
@Override
public
R
<
String
>
wxPayCallBack
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
System
.
out
.
println
(
"回调成功"
);
try
{
InputStream
inStream
=
request
.
getInputStream
();
ByteArrayOutputStream
outSteam
=
new
ByteArrayOutputStream
();
byte
[]
buffer
=
new
byte
[
1024
];
int
len
=
0
;
while
((
len
=
inStream
.
read
(
buffer
))
!=
-
1
)
{
outSteam
.
write
(
buffer
,
0
,
len
);
}
outSteam
.
close
();
inStream
.
close
();
String
result
=
new
String
(
outSteam
.
toByteArray
(),
"utf-8"
);
// 获取微信调用我们notify_url的返回信息
Map
<
String
,
String
>
map
=
MapToXmlUtils
.
xmlToMap
(
result
);
if
(
map
.
get
(
"result_code"
).
equalsIgnoreCase
(
"SUCCESS"
))
{
//返回成功后修改订单充值结果为0,保存查询次数
QueryWrapper
<
PayRecord
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"trade_no"
,
map
.
get
(
"out_trade_no"
));
PayRecord
payRecord
=
payRecordMapper
.
selectOne
(
queryWrapper
);
AddLimitVo
addLimitVo
=
new
AddLimitVo
();
addLimitVo
.
setTradeNo
(
map
.
get
(
"out_trade_no"
));
addLimitVo
.
setPayMoney
(
payRecord
.
getMoney
());
addLimitVo
.
setPayType
(
2
);
addLimitVo
.
setUserId
(
payRecord
.
getUserId
());
R
<
Boolean
>
booleanR
=
userLimitService
.
addLimit
(
addLimitVo
);
if
(
booleanR
.
getCode
()==
1
)
{
return
R
.
error
(
"用户查询次数添加失败"
);
}
return
R
.
ok
(
0
,
"充值成功"
);
}
return
R
.
ok
(
1
,
"充值失败"
);
}
catch
(
Exception
e
)
{
return
R
.
ok
(
1
,
"充值失败"
);
}
}
}
wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/VolunteerServiceImpl.java
View file @
58088c9c
...
...
@@ -56,7 +56,6 @@ public class VolunteerServiceImpl extends ServiceImpl<VolunteerMapper, Volunteer
StringUtils
.
isBlank
(
fileUrl
))
{
throw
new
BaseException
(
"操作错误"
);
}
//判断文件类型=
boolean
valid
=
this
.
validContentType
(
file
.
getOriginalFilename
());
if
(!
valid
)
{
...
...
wisenergy-service/src/main/java/cn/wisenergy/service/common/Common.java
View file @
58088c9c
...
...
@@ -36,55 +36,64 @@ public class Common {
public
static
final
String
PAY_URL
=
"https://openapi.alipay.com/gateway.do"
;
public
static
final
String
APP_ID
=
"2021002126609937"
;
public
static
final
String
ALIPAY_PUBLIC_KEY
=
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk3F1VulieP0smmNEyEHLWS0l"
+
"wKOlaLA3xMkfbNK4Hn1D6MtLvU58IBboh0JkZbcBPCVEK9Ma6VT3Q0wofYwy2dosHskTNIuBi4N8EuHvss7f1/x/rb7nI7QbuSlualx5MlD"
+
"3cLIRm84QqEMeF1ndVAIDA3mA24BdxIuCmS7THHn46wZ9/KaudNq84XxRmy+JHAnQxj5+8pvCAdpA12hP7gTfj0ySRZDVvA3gks8yjlf4SGK"
+
"TqNDhM3AewWlwygEHUJPlL04JUm/lG3Q9viaqZv4SGv/MeUw0qXqpPuq9JzJUCmZjYq1gKXsqP3FMg8zBrLiZCjpoLa2ra7f6PbdtIwIDAQAB"
;
public
static
final
String
ALIPAY_PUBLIC_KEY
=
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2cUDFyw7sLp"
+
"TpICDURNefRfzr7I7qO5Spq6HwdyFbVv5m6wVzt3fXYTcDrVUuzfbV7+rrXqnvk7LNOp10qPtUyHyZKO2jTBBcUK5H0RPNz"
+
"s1XInKaSTAznGH8dEAk6yQiwhSDpQzwoOq1Ool2MQocdkcBWwAMEcEUByIbJ4ABsrwXdmkgu2hDHR/GgLvarUp1zOXfZkaTK//L"
+
"1GUI5uCI+/omcqMPDIOwd8DfcNr0TKlXfAEixp9eVuU/b09b7vW7O9Vh+w0gmy5FN+BWX/JaRRL1DhRqbHl7Sl4/oGu1yjfQA5U"
+
"8jXBgd+QjwdUiAXVwPdESS/AUbPWE517eH5FtQIDAQAB"
;
public
static
final
String
PRIVATE_KEY
=
"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCTcXVW6WJ4/"
+
"SyaY0TIQctZLSXAo6VosDfEyR9s0rgefUPoy0u9TnwgFuiHQmRltwE8JUQr0xrpVPdDTCh9jDLZ2iweyRM0i4GLg3wS4e+yzt/"
+
"X/H+tvucjtBu5KW5qXHkyUPdwshGbzhCoQx4XWd1UAgMDeYDbgF3Ei4KZLtMcefjrBn38pq502rzhfFGbL4kcCdDGPn7ym8IB2kDXaE/"
+
"uBN+PTJJFkNW8DeCSzzKOV/hIYpOo0OEzcB7BaXDKAQdQk+UvTglSb+UbdD2+Jqpm/hIa/8x5TDSpeqk+6r0nMlQKZmNirWApeyo/"
+
"cUyDzMGsuJkKOmgtratrt/o9t20jAgMBAAECggEAHTjmdbRJ1QrwlSTJlBseL214RwboGKicVP87oDjfTwOquu/"
+
"X8gwlI8MGkRBCj7pGn2IPcdQkSEyTuR3WBJQN3AmWpv9ZNBfWNA16QM/QzxKbYNZlg80LSJNAz2D7xk7Pon5TnF1eig+8U20CAMTJzgWcDUs"
+
"+k8KMUxEHcE7Mfp8KkG0sRPwZa9DqfuC4WOQuik9L6OphhVDrxnCGBKTW/KC1k2HfU25dMUDoirqY7fMbASJBkT14JO6o/"
+
"I0BBJU++ddfYpXTd2X6Lywy4PqJdstllHxzLxSJqPKgjk9Qd/iVozuHDDSuBvEp1a1DBOsjFHz0TGxmCoP2mrEN4e6WsQKBgQD6GnTuVUcI4"
+
"UxaeHrj6sSiWTsBOXsXYrrmk380RTUEwzPdExFfvV4wkf48BQsUqCl6R+CdWSbcbRriXTJ6hlZ37IPuqmJ4me++LlDE9MrfRg1m0qkOFyVC"
+
"1ysAw+0i0EPjj5eeXguvoZ6RarDPI9hWM6m2dAGclkwFq2FBN3yzGQKBgQCW62DEh6eTmnyzBiQcojyEhY44Vp3y6RebXqlS/O1kpEn1sT1"
+
"U6xBwE2na1udDv9PFzA6SapDw9ZRJWxbxgL07tG3A6V9p6MdjeCh/IR1OqO9STH8xag+YNwS28rSf+IEuM7bRUl6ESp9EXIt/jxh3syjYl"
+
"j9ecdXypJNWFeOFmwKBgQCR4PCnO1JtmYwBkRiM7Bi5YTaLZk2nvEyrxQiDIoLkPj94CXEu2LOhvOX/eCmYaOWYj2gyHxgNpg3yTs3srYKt/"
+
"GSPxw4crh0qXrV5zBaw2JlkiidVMqbnL73DeoRMtBGFH/Idy1khnjFxPDvY9l1vGj85TrzJ6th4zheyBH1VsQKBgDSXdbNG6pi/PzFLtI3d"
+
"42Ty/aqYVJZvr/BOvobS6Q8nSTa7Ovo6qBHGUh8WwKSVVoEZKQLQ7A1sJu6hNY+XI1qI965AJSXNHp6FIueabJIawLtXOQPJSAHtOlFepp8"
+
"QhEPLdavgHlvPfUzfSyV6gjZEUrmXMiIBXWMfAtD+87h9AoGANzOybVuH7XaPJfGFuKAMLSdsDUFFEAVkC37XF6nl5k1bC1LmHM2iJltmSh"
+
"N2nwJavbtbvycOFhLxRNNkhBDj3oZ8F/93vzyn1M/s0/y7ONUtBIqLdLAT9Q84xxVBFdOvVdja20J1NuQ8yYD4qInO/WcX2MOLXeCaGfMOg1XWaa0="
;
public
static
final
String
PRIVATE_KEY
=
"MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDAzZQsv"
+
"7wKd/01D8YPqrMcevfi0rS81H4NObDkF/Y37ii+/V1vlzODiTQajeCWOM42kijTSFHiietwx7PRa57GI/BzhRbs3MeK"
+
"fvOkFVhUHklfOb9vT9E/y9TE7oWmbQVJThcytXerJbC95LDchJtBxQula/wmp0pwgkwFHM5IxNbT1Oh9UWKBn6"
+
"OoOuHhgFhO19l9+X4hJtb/rjKl8/K4ULrlxPfrnX75tbJryBS1VnkxiWyHTara1WkRDIKmLRSrHeDG1hh1NKMOA"
+
"5jc2sfNOEuMhsgC1FY9sxd/Ap3dBp3TP3drAYpshaweYQwK9PyQ8b/TYgccIclgsJJ0BxMtAgMBAAECggEAD6sl"
+
"VZWnZHpn234SrIdE0xWzO33ALnBeZhjAJWlFGzqBmTPh+gWhrBjkYRwSmmK3b3vlUXZZIT3wIlQ4ataCKrwU+G"
+
"5idJFkrf6vMjCB4yQq9lAtHJCyAqs/+VkhB2touJJeFELnHMONX4FMVj94lpm63pCuBz4lMIuGPgwfP46Lgiuy4"
+
"xOhcczcr3jwUmaVJvvDVtDJ477gsr/P/HhidCVwBE+vPovFmZ/cbI8ud31Ta2P7VFvrJKheL36GEJ1c1cHE7gcS"
+
"P7KsuzXfQP/6KjqM6QhWHem0s0vOUaplPrPhEArhmfhjqukD/U2lBTHzmE7iUlmPHEQRbQdwJIk4SQKBgQDgjd"
+
"+VxxJ8pYigvyDK+OiXwA8hKwMiQGhA1XexjBnf2rTEimBwMNU87lKmsgCRsv26DAiVyPqiA5R2nPL3N4Sk8k7f"
+
"KD6gRBzC1/91XtI2HsljdGZemW1V/4D5o2Su9lmsPl3UV8U54izp5JzerXB+5sULpfKyKf5iVJtb+a7adwKBgQ"
+
"DbzXJXGMGc052StU4CwKeKElhTdB8uYbeML2Em0bwh1jZXwD/s2X7m8LAkOB2xaKQqrxjipcArIeAylI7xeEx24"
+
"MVDk3C3BnZaZoiuvvWr0caGQHE0JHvtpCrs2xoXm7wMNsVLjc345ssEQM0ytVXsx/PcA1WwwrBAQNFiH4fEewK"
+
"BgQDKBbm+lYADViXKgMlu8mrHg8nYzEqgeROSKLrrqCDrLWduXxQOO1DM5ZjEUeaDLmZpCER9BXi/Y7sgz2kjk"
+
"vYqM7lTuXBGXaEGhq9Ul/9FI4OJj4I934jnUtxlO2PsqMPaW62syV4uClbgAoZDLATGlrV2GlFziqZLLtUq9UI"
+
"jVwKBgQCmZGSGYotO+TNz+CRSGR27fB+5LVLdfcPBL6zQAj31L4B79WFvH0bd9J6jDIgN4TVFyr9/9BIBlOdv4t5"
+
"DFdpss8MhYOAW7aFy1ePqxUydAXTT9Ly9yFC4mWqVW1fpP0+fv2ajx3mBTtWpJpUwKe4eDVAh4bRg10EtouPe8B"
+
"eLOQKBgQCwsHZbrfgm8qrAhhoqPkxHHUDcQVhWpcBrv49ghpPLTsEPrOnYsFMCKb0nJc2goJ"
+
"BQIT4QMu62i1jOInaIZyrf/1H3WuWhjI3SjObHiz1a0rmuCrFMPCpnAVlIYJvmAyrGJIvSSLEN33mUZnq1z4REgjn0FlzS0FMOVDRVAeMm7w=="
;
/**
* 沙箱 --支付宝支付app_id
*/
public
static
final
String
APP_ID_CS
=
"20
21000117607483
"
;
public
static
final
String
APP_ID_CS
=
"20
16101300675128
"
;
public
static
final
String
ALIPAY_PUBLIC_KEY_CS
=
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAh5uAe8quhr05KrOnJ5Jrrp"
+
"TphjEoFR4VnHFy9QDRoHK6ouFIz7ksCw6LS7A/S3Yhe3+bZbcvmJSKN1pVO6ssa8iuai81NAnylMZm5tOTaMl945OuqmC8qvIk9wg4AkYd"
+
"TWSFRxDmQ1aZ711iyDUDtSYi0bQeS5s2OR9cGowwAsqyrMPYCT47f/+VmyftJcn3k3rS1+fo2dJTEmoeSCrg3oAMV5dL5iTzi5ehvWUWJR"
+
"YejyOi54Qtxjz5Nsp1I68BxHT2d8QFeKBgad0w83975tKauHgKHsQE3+TnQzOgyQo8XQB/5dWq3COO7ACNwK1TlPcyxKO1QRX1egW6bysySQIDAQAB"
;
public
static
final
String
ALIPAY_PUBLIC_KEY_CS
=
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQE"
+
"AovyCboYeJzNSUjBJmMss2NHo4JgAnn+cqnEUZFEeIO0u1JDGsxE3NLYwU54fM8OQunf3S6RxzIjZ/9jAaUtu"
+
"LjVmJBAa3ac5leHpm5LKWl0olKYER3qZTJQFgoRymfZHzVqqDoVsnFJScfsNR7XDD9bsFiHa9R+c+fI+pPapHK"
+
"26o5IUvKWjPpjLTeTUuEV0grORLzxrH+R5IiabAlTBySvzi0fB9LGbrTtUh32VBDRnRuIIzPw97wLmp3WduhhAD"
+
"L6pfoUYNNiKcT7rEJ0ac2p/Er0CLQCN6OzlpTVz58tMJoKQ0easCXh6MPCANBfWltnnb19JwncwUYzTerPVeQIDAQAB"
;
public
static
final
String
PRIVATE_KEY_CS
=
"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCHm4B7yq6GvTkqs6cnkmu"
+
"ulOmGMSgVHhWccXL1ANGgcrqi4UjPuSwLDotLsD9LdiF7f5tlty+YlIo3WlU7qyxryK5qLzU0CfKUxmbm05NoyX3jk66qYLyq8iT3CDg"
+
"CRh1NZIVHEOZDVpnvXWLINQO1JiLRtB5LmzY5H1wajDACyrKsw9gJPjt//5WbJ+0lyfeTetLX5+jZ0lMSah5IKuDegAxXl0vmJPOLl6G9"
+
"ZRYlFh6PI6LnhC3GPPk2ynUjrwHEdPZ3xAV4oGBp3TDzf3vm0pq4eAoexATf5OdDM6DJCjxdAH/l1arcI47sAI3ArVOU9zLEo7VBFfV6"
+
"BbpvKzJJAgMBAAECggEAQec2t/K2gtDvOWt57udf4caI/yhgnHK0egVAowU0208mmQX3hswtNWpqE+yhtiDBAO3xLaurO/HkgiYqigcUXY"
+
"V4Di7HInU7KUaKt99XInPZ9IHPPwooZsOrZ0rdPW2py/TwOKtj3JH32bZ+zWHGXYEdJuDsYD4cSgKNlnFO2+u/uS2RRhsTEX7veE1ivlPB"
+
"Ta0hRo+XHcBrrXobZUtFFtE8zxvKOWDMj87WpsLDdXJ1Ze2CZXsdEtuIcfp51Gzx1or+2WrYwoiIAYTNN+oG1JT6pld9l9m1EqVzMPPSmE"
+
"/tyyIV4Zb1qjGveH1SPEncIdGOiEH1rOsBvS/E4EDEoQKBgQDvdFgh3Xmtrr47515d+e5sAAZav34IuoEzmih6zXCvLASsG64gsgfoyb2aD"
+
"/N9hcTtVFrEDrJSLknNMJcvh1xkmPc1xBeBCLlrrzlyt4hoth1b6ZfdKC7jkhmd0mUylOagsdYGOZ3qT0+ykO449HmE0bQDLWzinw1p15b"
+
"/nVx3vQKBgQCQ+jsct+C1Y+1AoYC2o3yCvTcaErdH6Pxk8sCYP18sIml4kb+WUgFgd1THFwgHDu3S4VmkfEcjnIKqioqQCEMyEF2K6RAFu"
+
"Ffpw+ianx+9V84GDS7Aov8PKwTWg8RjFBSkHZ+Xl3ERGCyI/NDBCUF8Amiv12IMyVkkWUsrqxnXfQKBgQCGh8MMI7Y9EjPmy/KEsep12v2"
+
"29mcE2GPGbhHYDJwGjqCBYXvO+rbe3pkbeWK/Xuxouj/Ubr1Y1pC4K1iFZ3NNQXOCTY02/YPPMD8CaILG8apE/VRI+E5/pJGnzZD1fhqkp"
+
"cUs8in6fly0YiC09wVezcJpFphaKioLEQjQy8QrsQKBgGC92bwsJ1JjP+ok2xMEvQ0w3hgT7SGbIvDp3AK8JvH4dJD0EPhp+Gk6t+OyRrUP"
+
"DTvvDDZqh74HrlnG4PeDy/MYYJNVOk/W1zMye4DSNgfPE7eODGiXW8PvXOcYPnAu8ichbWFmuRhDHVS7/0EQwBXUNa9A9ji6EzXiL/sPzc"
+
"qxAoGAQbxdsp2Omd1cXvaofq+nllbyM04WbYib5bxm+zNgOszWnoIhgR95InA7BWtGnJsjmJqz3/Dwgzzpn+vXiB+6mhj/EP932HWcL7wv"
+
"3nMhU06E1T/eQ7hKX8QlmjEIhnWEN7A9lXtwW85/7tpuWs6qbv0YWYze1CcDN3Fr+II2BcA="
;
public
static
final
String
PRIVATE_KEY_CS
=
"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIB"
+
"AQCi/IJuhh4nM1JSMEmYyyzY0ejgmACef5yqcRRkUR4g7S7UkMazETc0tjBTnh8zw5C6d/dLpHHMiNn/2MBp"
+
"S24uNWYkEBrdpzmV4embkspaXSiUpgRHeplMlAWChHKZ9kfNWqoOhWycUlJx+w1HtcMP1uwWIdr1H5z58j6k"
+
"9qkcrbqjkhS8paM+mMtN5NS4RXSCs5EvPGsf5HkiJpsCVMHJK/OLR8H0sZutO1SHfZUENGdG4gjM/D3vAuand"
+
"Z26GEAMvql+hRg02IpxPusQnRpzan8SvQItAI3o7OWlNXPny0wmgpDR5qwJeHow8IA0F9aW2edvX0nCdzBRjNN"
+
"6s9V5AgMBAAECggEAZQMML0WN4IutJGTq5/hb1hDaPH/YOmMqjHPCyJ2Bh7SXxoPnsckkptWXQ+uGuQUmaHq7W"
+
"DUVlkbmnOsP7PIj2h2cLROSIvdl+B9oMdQa90AvS1lM46P26IAAnjBJ+mOpgnsDVDaa5pMap6uJQn1C5Ek2Tk0"
+
"zL6IlHr9k1cZNbwi6KE+41Fs5z/UE5wqt2m6O/AQ6APb4tRSMP89VL4UcbyTWwGmd94pVeRXYfNpc2tPpECQ2Z"
+
"6qyBxS6XWumu+K5pV3IV6SEVZgb77yMzFJmA+YSRZvDcu16mdy2e8X5I8UWEwTEwnlOBTs2HA4XKfM3fGXVnB"
+
"uT2AKRbMF3YRHeFQKBgQDjsXiR8yVEd5Em3po78fUgFL4OrQnzywm/RgNQF8IQKpdr8RFdKqc9JQo8+Y9cCxP"
+
"IQR7SJX1exM6cjxd6UlWG14pG718SN6+ANMkWXUjv0jE1E+juBiWn+GBUcMx8eC2sbNK1WybnZ4lZQlCjBDs7"
+
"rJmabW/RMwWkCLKHlTYTZwKBgQC3P7AIcYBuo/F+yBMyLWSluBqFBBDphl+svdfRH1AUfVMzuTHSYYaigTzf5"
+
"X769xfV9qjLi6yrbtyqVnMzgweltncz3ZGPwrsScYBcBAQGSTyHEKilWdHeibx1uLcQmSskJwJ4HjA2fsT5N3"
+
"VH8xGr+qYkHZDNsc9cs+5rnwskHwKBgCtATffjaQPddowcos2aQ4bpicS95/MQcXSM9xoiuTFa9dKCQ1sgPA5"
+
"oV86HVU0VqZdTj2g5yNvUpK6mm74Xn7lyfgjFdZi/TS4cWMpPxAgSNFixxIBaWJLUom/H0YAfUAW90jSy8Ov"
+
"qBfQXnbuplRrbyX3FJgVmHL8xC8CnflMnAoGAM/8aUAsEymAykirrZ32B5ZQL0lqJAfpjA30K1AfyjR3Skga"
+
"moG+T6GCLiWxxT3z1gnzvAHKtmCdo7dyB68fuT5Mq18izGPvEYUNbjMCG89GsHxcXA3QtHNwwYab8KvWLTELV"
+
"bIgEXjIyahTWbogGJ6qDohPRlswxbriPmnISkzkCgYEAz6Ce1GzA2Zf8EIc9G3zujO9BSKJEKHc30mN4LxlOhr"
+
"TFmmjrgNNXMiqhVZBxVf+GwwHdI0Rz8OukagIHeCHdG6nwu2aW+B9NsDhusiXjwU1rb28l6KNHRZqQ74PVREYyU"
+
"hTc2T2fobY0qmPBy2CIrO3gL4skn+ZZLHaUeK3sinQ="
;
public
static
final
String
PAY_URL_CS
=
"https://openapi.alipaydev.com/gateway.do"
;
}
wisenergy-service/src/main/java/cn/wisenergy/service/common/VolunteerManager.java
View file @
58088c9c
package
cn
.
wisenergy
.
service
.
common
;
import
cn.wisenergy.common.utils.R
;
import
cn.wisenergy.common.utils.StringUtil
;
import
cn.wisenergy.mapper.*
;
import
cn.wisenergy.model.app.*
;
import
cn.wisenergy.model.enums.CardStatus
;
...
...
@@ -11,7 +12,9 @@ import cn.wisenergy.model.vo.UserInfoVo;
import
cn.wisenergy.service.app.UserLimitService
;
import
cn.wisenergy.service.app.UserVolunteerService
;
import
cn.wisenergy.service.app.VolunteerService
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.transaction.annotation.Transactional
;
...
...
@@ -161,7 +164,16 @@ public class VolunteerManager {
payRecord
.
setResult
(
0
);
payRecord
.
setType
(
addLimitVo
.
getPayType
());
payRecord
.
setUserId
(
addLimitVo
.
getUserId
());
int
pay
=
payRecordMapper
.
add
(
payRecord
);
payRecord
.
setTradeNo
(
addLimitVo
.
getTradeNo
());
QueryWrapper
<
PayRecord
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"trade_no"
,
payRecord
.
getTradeNo
());
PayRecord
byTradeNo
=
payRecordMapper
.
selectOne
(
queryWrapper
);
int
pay
=
0
;
if
(
null
!=
byTradeNo
){
pay
=
payRecordMapper
.
updateById
(
payRecord
);
}
else
{
pay
=
payRecordMapper
.
add
(
payRecord
);
}
if
(
pay
==
0
)
{
return
false
;
}
...
...
wisenergy-service/src/main/java/cn/wisenergy/service/util/MapToXmlUtils.java
0 → 100644
View file @
58088c9c
package
cn
.
wisenergy
.
service
.
util
;
import
com.itextpdf.text.DocumentException
;
import
org.apache.poi.util.DocumentHelper
;
import
org.w3c.dom.Node
;
import
org.w3c.dom.NodeList
;
import
javax.management.Attribute
;
import
javax.swing.text.Document
;
import
javax.swing.text.Element
;
import
javax.xml.parsers.DocumentBuilder
;
import
javax.xml.parsers.DocumentBuilderFactory
;
import
javax.xml.transform.OutputKeys
;
import
javax.xml.transform.Transformer
;
import
javax.xml.transform.TransformerFactory
;
import
javax.xml.transform.dom.DOMSource
;
import
javax.xml.transform.stream.StreamResult
;
import
java.io.ByteArrayInputStream
;
import
java.io.InputStream
;
import
java.io.StringWriter
;
import
java.util.*
;
public
class
MapToXmlUtils
{
/**
* map 对象转换成 xml 字符串
**//*
public static String mapToXml(Map map) throws Exception{
if (null == map) return null;
System.out.println("转换前的Map对象数据:" + map.toString());
StringBuffer sb = new StringBuffer();
*//** 添加xml 的公共头信息 *//*
sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
mapToXmlHelp(map, sb);
System.out.println("将map转成xml后的数据:" + sb.toString());
return sb.toString();
}
*//**
* 转换帮助方法
**//*
private static void mapToXmlHelp(Map map, StringBuffer str) throws Exception{
Set set = map.keySet();
*//** 遍历key *//*
for (Iterator it = set.iterator(); it.hasNext();) {
String key = (String) it.next();
Object value = map.get(key);
if (null == value)
value = "";
*//** 如果对象是集合 *//*
if (value.getClass().getName().equals("java.util.ArrayList")) {
ArrayList list = (ArrayList) map.get(key);
str.append("<" + key + ">");
for (int i = 0; i < list.size(); i++) {
HashMap hm = (HashMap) list.get(i);
mapToXmlHelp(hm, str);
}
str.append("</" + key + ">");
*//** 如果该集合对象的长度只有1,那么默认重复添加集合下节点 *//*
if (null !=list && !list.isEmpty() && list.size() <= 1) {
str.append("<" + key + ">");
for (int i = 0; i < list.size(); i++) {
HashMap hm = (HashMap) list.get(i);
mapToXmlHelp(hm, str);
}
str.append("</" + key + ">");
}
*//** 对象非集合时 *//*
} else {
if (value instanceof HashMap) {
str.append("<" + key + ">");
mapToXmlHelp((HashMap) value, str);
str.append("</" + key + ">");
} else {
str.append("<" + key + ">" + value + "</" + key + ">");
}
}
}
}*/
/**
* XML格式字符串转换为Map
*
* @param strXML XML字符串
* @return XML数据转换后的Map
* @throws Exception
*/
public
static
Map
<
String
,
String
>
xmlToMap
(
String
strXML
)
throws
Exception
{
try
{
Map
<
String
,
String
>
data
=
new
HashMap
<
String
,
String
>();
DocumentBuilderFactory
documentBuilderFactory
=
DocumentBuilderFactory
.
newInstance
();
DocumentBuilder
documentBuilder
=
documentBuilderFactory
.
newDocumentBuilder
();
InputStream
stream
=
new
ByteArrayInputStream
(
strXML
.
getBytes
(
"UTF-8"
));
org
.
w3c
.
dom
.
Document
doc
=
documentBuilder
.
parse
(
stream
);
doc
.
getDocumentElement
().
normalize
();
NodeList
nodeList
=
doc
.
getDocumentElement
().
getChildNodes
();
for
(
int
idx
=
0
;
idx
<
nodeList
.
getLength
();
++
idx
)
{
Node
node
=
nodeList
.
item
(
idx
);
if
(
node
.
getNodeType
()
==
Node
.
ELEMENT_NODE
)
{
org
.
w3c
.
dom
.
Element
element
=
(
org
.
w3c
.
dom
.
Element
)
node
;
data
.
put
(
element
.
getNodeName
(),
element
.
getTextContent
());
}
}
try
{
stream
.
close
();
}
catch
(
Exception
ex
)
{
// do nothing
}
return
data
;
}
catch
(
Exception
ex
)
{
throw
ex
;
}
}
/**
* 将Map转换为XML格式的字符串
*
* @param data Map类型数据
* @return XML格式的字符串
* @throws Exception
*/
public
static
String
mapToXml
(
Map
<
String
,
String
>
data
)
throws
Exception
{
DocumentBuilderFactory
documentBuilderFactory
=
DocumentBuilderFactory
.
newInstance
();
DocumentBuilder
documentBuilder
=
documentBuilderFactory
.
newDocumentBuilder
();
org
.
w3c
.
dom
.
Document
document
=
documentBuilder
.
newDocument
();
org
.
w3c
.
dom
.
Element
root
=
document
.
createElement
(
"xml"
);
document
.
appendChild
(
root
);
for
(
String
key:
data
.
keySet
())
{
String
value
=
data
.
get
(
key
);
if
(
value
==
null
)
{
value
=
""
;
}
value
=
value
.
trim
();
org
.
w3c
.
dom
.
Element
filed
=
document
.
createElement
(
key
);
filed
.
appendChild
(
document
.
createTextNode
(
value
));
root
.
appendChild
(
filed
);
}
TransformerFactory
tf
=
TransformerFactory
.
newInstance
();
Transformer
transformer
=
tf
.
newTransformer
();
DOMSource
source
=
new
DOMSource
(
document
);
transformer
.
setOutputProperty
(
OutputKeys
.
ENCODING
,
"UTF-8"
);
transformer
.
setOutputProperty
(
OutputKeys
.
INDENT
,
"yes"
);
StringWriter
writer
=
new
StringWriter
();
StreamResult
result
=
new
StreamResult
(
writer
);
transformer
.
transform
(
source
,
result
);
String
output
=
writer
.
getBuffer
().
toString
();
//.replaceAll("\n|\r", "");
try
{
writer
.
close
();
}
catch
(
Exception
ex
)
{
}
return
output
;
}
}
wisenergy-service/wisenergy-service.iml
View file @
58088c9c
...
...
@@ -49,8 +49,6 @@
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-expression:5.1.7.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-undertow:2.1.5.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.undertow:undertow-core:2.0.20.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jboss.xnio:xnio-api:3.3.8.Final"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"RUNTIME"
name=
"Maven: org.jboss.xnio:xnio-nio:3.3.8.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.undertow:undertow-servlet:2.0.20.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jboss.spec.javax.annotation:jboss-annotations-api_1.2_spec:1.0.2.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.undertow:undertow-websockets-jsr:2.0.20.Final"
level=
"project"
/>
...
...
@@ -116,10 +114,8 @@
<orderEntry
type=
"library"
name=
"Maven: io.netty:netty-resolver:4.1.36.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.projectreactor:reactor-core:3.2.9.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.reactivestreams:reactive-streams:1.0.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.bouncycastle:bcprov-jdk15on:1.54"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.springfox:springfox-swagger2:2.9.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.swagger:swagger-models:1.5.20"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.springfox:springfox-spi:2.9.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.springfox:springfox-core:2.9.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.springfox:springfox-schema:2.9.2"
level=
"project"
/>
...
...
@@ -131,8 +127,6 @@
<orderEntry
type=
"library"
name=
"Maven: org.mapstruct:mapstruct:1.2.0.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.springfox:springfox-swagger-ui:2.9.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.jsonwebtoken:jjwt:0.9.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.core:jackson-core:2.9.8"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: joda-time:joda-time:2.10.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.shiro:shiro-core:1.4.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.shiro:shiro-lang:1.4.0"
level=
"project"
/>
...
...
@@ -153,6 +147,28 @@
<orderEntry
type=
"library"
name=
"Maven: ch.qos.logback:logback-core:1.2.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: ch.qos.logback:logback-classic:1.2.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jetbrains:annotations:20.1.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.aliyun:aliyun-java-sdk-core:4.5.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.google.code.gson:gson:2.8.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: commons-logging:commons-logging:1.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: javax.xml.bind:jaxb-api:2.3.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: javax.activation:javax.activation-api:1.2.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jacoco:org.jacoco.agent:runtime:0.8.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.ini4j:ini4j:0.5.4"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.slf4j:slf4j-api:1.7.26"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.opentracing:opentracing-api:0.33.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.opentracing:opentracing-util:0.33.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.opentracing:opentracing-noop:0.33.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.alipay.sdk:alipay-sdk-java:4.11.33.ALL"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.bouncycastle:bcprov-jdk15on:1.62"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.squareup.okhttp3:okhttp:3.6.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.squareup.okio:okio:1.11.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.github.wechatpay-apiv3:wechatpay-apache-httpclient:0.2.1"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"RUNTIME"
name=
"Maven: org.apache.httpcomponents:httpmime:4.5.8"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.core:jackson-core:2.9.8"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.itextpdf:itextpdf:5.5.13"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.itextpdf:itext-asian:5.2.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.commons:commons-lang3:3.8.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: commons-lang:commons-lang:2.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: commons-pool:commons-pool:1.6"
level=
"project"
/>
...
...
@@ -178,7 +194,6 @@
<orderEntry
type=
"library"
name=
"Maven: stax:stax-api:1.0.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: cglib:cglib:3.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.ow2.asm:asm:4.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.slf4j:slf4j-api:1.7.26"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.ehcache:ehcache:3.6.3"
level=
"project"
/>
</component>
</module>
\ No newline at end of file
wisenergy-web-admin/src/main/java/cn/wisenergy/web/admin/controller/app/PayController.java
View file @
58088c9c
...
...
@@ -4,12 +4,12 @@ import cn.wisenergy.common.utils.R;
import
cn.wisenergy.model.dto.PayPageDto
;
import
cn.wisenergy.model.dto.PayQueryDto
;
import
cn.wisenergy.service.app.AliPayService
;
import
cn.wisenergy.service.app.TestWxPayService
;
import
cn.wisenergy.service.app.WxPayService
;
import
cn.wisenergy.service.common.Common
;
import
com.alipay.api.AlipayApiException
;
import
com.alipay.api.AlipayClient
;
import
com.alipay.api.DefaultAlipayClient
;
import
com.alipay.api.request.AlipayTradePagePayRequest
;
import
com.alipay.api.request.AlipayTradeQueryRequest
;
import
com.alipay.api.response.AlipayTradeQueryResponse
;
import
io.swagger.annotations.Api
;
...
...
@@ -18,10 +18,7 @@ import io.swagger.annotations.ApiOperation;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.*
;
import
javax.crypto.IllegalBlockSizeException
;
import
javax.servlet.http.HttpServletRequest
;
...
...
@@ -47,17 +44,23 @@ public class PayController {
@Autowired
private
WxPayService
wxPayService
;
@Autowired
private
TestWxPayService
testWxPayService
;
@Autowired
private
AliPayService
aliPayService
;
@ApiOperation
(
value
=
"PC支付宝-支付接口"
,
notes
=
"PC支付宝-支付接口"
,
httpMethod
=
"POST"
)
@ApiImplicitParam
(
name
=
"payPageDto"
,
value
=
"参数"
,
dataType
=
"PayPageDto"
)
@PostMapping
(
"/page"
)
public
R
<
String
>
doPost
(
@RequestBody
PayPageDto
payPageDto
,
HttpServletRequest
request
,
HttpServletResponse
httpResponse
)
{
//public R<String> doPost(@RequestBody PayPageDto payPageDto, HttpServletRequest request, HttpServletResponse httpResponse) {
public
R
<
String
>
doPost
(
Integer
userId
,
Integer
payType
,
Integer
total_amount
,
HttpServletRequest
request
,
HttpServletResponse
httpResponse
)
{
PayPageDto
payPageDto
=
new
PayPageDto
();
payPageDto
.
setTotal
(
total_amount
);
payPageDto
.
setUserId
(
userId
);
payPageDto
.
setPayType
(
payType
);
return
aliPayService
.
doPost
(
payPageDto
,
request
,
httpResponse
);
}
@ApiOperation
(
value
=
"PC支付宝-交易查询"
,
notes
=
"PC支付宝-交易查询"
,
httpMethod
=
"POST"
)
...
...
@@ -75,11 +78,21 @@ public class PayController {
return
R
.
ok
(
response
.
getBody
());
}
/**
* 支付宝回调函数
* 支付成功后服务器会调用此方法
*/
@ApiOperation
(
value
=
"支付回调"
,
notes
=
"支付回调"
,
httpMethod
=
"POST"
)
@RequestMapping
(
value
=
"/aliPayCallBack.do"
)
public
R
<
String
>
aliPayCallBack
(
HttpServletResponse
response
,
HttpServletRequest
request
)
{
return
aliPayService
.
aliPayCallBack
(
response
,
request
);
}
@ApiOperation
(
value
=
"微行支付-统一下单"
,
notes
=
"微行支付-统一下单"
,
httpMethod
=
"POST"
)
@ApiOperation
(
value
=
"微行支付-统一下单测试"
,
notes
=
"微行支付-统一下单"
,
httpMethod
=
"POST"
)
@ApiImplicitParam
(
name
=
"payPageDto"
,
value
=
"支付入参"
,
dataType
=
"PayPageDto"
)
@PostMapping
(
"/wxPay"
)
public
R
<
String
>
wxPay
(
@RequestBody
PayPageDto
payPageDto
)
throws
AlipayApiException
,
UnsupportedEncodingException
,
InvalidKeySpecException
,
NoSuchAlgorithmException
,
InvalidKeyException
,
SignatureException
{
@PostMapping
(
"/wxPay
Test
"
)
public
R
<
String
>
wxPay
Test
(
@RequestBody
PayPageDto
payPageDto
)
throws
AlipayApiException
,
UnsupportedEncodingException
,
InvalidKeySpecException
,
NoSuchAlgorithmException
,
InvalidKeyException
,
SignatureException
{
return
wxPayService
.
wxPay
(
payPageDto
);
}
...
...
@@ -101,4 +114,23 @@ public class PayController {
public
R
<
String
>
wx_Pay
(
@RequestBody
PayPageDto
payPageDto
)
throws
AlipayApiException
,
IOException
,
InvalidKeySpecException
,
NoSuchAlgorithmException
,
InvalidKeyException
,
SignatureException
,
IllegalBlockSizeException
{
return
wxPayService
.
wx_Pay
(
payPageDto
);
}
@ApiOperation
(
value
=
"微行支付-统一下单"
,
notes
=
"微行支付-统一下单"
,
httpMethod
=
"POST"
)
@ApiImplicitParam
(
name
=
"payPageDto"
,
value
=
"支付入参"
,
dataType
=
"PayPageDto"
)
@PostMapping
(
"/wxPay"
)
public
R
<
String
>
wxPay
(
@RequestBody
PayPageDto
payPageDto
,
HttpServletResponse
response
){
return
testWxPayService
.
wxPay
(
payPageDto
,
response
);
}
/**
* 微信回调函数
* 支付成功后微信服务器会调用此方法
*/
@ApiOperation
(
value
=
"微信回调函数"
,
notes
=
"微信回调函数"
,
httpMethod
=
"POST"
)
@RequestMapping
(
value
=
"/wxPayCallBack.do"
)
public
R
<
String
>
wxPayCallBack
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
return
testWxPayService
.
wxPayCallBack
(
request
,
response
);
}
}
wisenergy-web-admin/src/main/resources/application-dev.yml
View file @
58088c9c
...
...
@@ -4,6 +4,7 @@ spring:
druid
:
driver-class-name
:
com.mysql.cj.jdbc.Driver
url
:
jdbc:mysql://192.168.110.165:3306/volunteer?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8
#url: jdbc:mysql://localhost:3306/volunteer?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8
username
:
root
password
:
adm4HYservice$
initial-size
:
10
...
...
wisenergy-web-admin/src/main/resources/application-prod.yml
View file @
58088c9c
...
...
@@ -7,9 +7,9 @@ spring:
type
:
com.alibaba.druid.pool.DruidDataSource
druid
:
driver-class-name
:
com.mysql.cj.jdbc.Driver
url
:
jdbc:mysql://localhost:3306/
dydb
?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
url
:
jdbc:mysql://localhost:3306/
volunteer
?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
username
:
root
password
:
root
password
:
adm4HYservice$
initial-size
:
10
max-active
:
100
min-idle
:
10
...
...
wisenergy-web-admin/wisenergy-web-admin.iml
View file @
58088c9c
...
...
@@ -51,8 +51,6 @@
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-expression:5.1.7.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-undertow:2.1.5.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.undertow:undertow-core:2.0.20.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jboss.xnio:xnio-api:3.3.8.Final"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"RUNTIME"
name=
"Maven: org.jboss.xnio:xnio-nio:3.3.8.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.undertow:undertow-servlet:2.0.20.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jboss.spec.javax.annotation:jboss-annotations-api_1.2_spec:1.0.2.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.undertow:undertow-websockets-jsr:2.0.20.Final"
level=
"project"
/>
...
...
@@ -118,10 +116,8 @@
<orderEntry
type=
"library"
name=
"Maven: io.netty:netty-resolver:4.1.36.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.projectreactor:reactor-core:3.2.9.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.reactivestreams:reactive-streams:1.0.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.bouncycastle:bcprov-jdk15on:1.54"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.springfox:springfox-swagger2:2.9.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.swagger:swagger-models:1.5.20"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.springfox:springfox-spi:2.9.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.springfox:springfox-core:2.9.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.springfox:springfox-schema:2.9.2"
level=
"project"
/>
...
...
@@ -133,8 +129,6 @@
<orderEntry
type=
"library"
name=
"Maven: org.mapstruct:mapstruct:1.2.0.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.springfox:springfox-swagger-ui:2.9.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.jsonwebtoken:jjwt:0.9.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.core:jackson-core:2.9.8"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: joda-time:joda-time:2.10.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: cn.hutool:hutool-all:4.6.7"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.swagger:swagger-annotations:1.5.23"
level=
"project"
/>
...
...
@@ -142,6 +136,27 @@
<orderEntry
type=
"library"
name=
"Maven: ch.qos.logback:logback-core:1.2.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: ch.qos.logback:logback-classic:1.2.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jetbrains:annotations:20.1.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.aliyun:aliyun-java-sdk-core:4.5.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.google.code.gson:gson:2.8.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: commons-logging:commons-logging:1.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: javax.xml.bind:jaxb-api:2.3.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: javax.activation:javax.activation-api:1.2.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jacoco:org.jacoco.agent:runtime:0.8.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.ini4j:ini4j:0.5.4"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.opentracing:opentracing-api:0.33.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.opentracing:opentracing-util:0.33.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.opentracing:opentracing-noop:0.33.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.alipay.sdk:alipay-sdk-java:4.11.33.ALL"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.bouncycastle:bcprov-jdk15on:1.62"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.squareup.okhttp3:okhttp:3.6.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.squareup.okio:okio:1.11.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.github.wechatpay-apiv3:wechatpay-apache-httpclient:0.2.1"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"RUNTIME"
name=
"Maven: org.apache.httpcomponents:httpmime:4.5.8"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.core:jackson-core:2.9.8"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.itextpdf:itextpdf:5.5.13"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.itextpdf:itext-asian:5.2.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.shiro:shiro-spring:1.4.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.shiro:shiro-core:1.4.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.shiro:shiro-lang:1.4.0"
level=
"project"
/>
...
...
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