Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
zcq
Project
Project
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
Graph
比较
统计图
议题
0
议题
0
列表
看板
标记
Milestones
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
注册表
注册表
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
svn
zcq
Commits
a4733400
提交
a4733400
authored
5月 08, 2020
作者:
yucaiwei
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
--no commit message
上级
4e3421b9
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
77 行增加
和
51 行删除
+77
-51
ReceiveController.java
...java/com/zrqx/third/pay/controller/ReceiveController.java
+62
-51
WeChatPayImpl.java
...zrqx/third/pay/interfaces/payType/impl/WeChatPayImpl.java
+15
-0
没有找到文件。
com.zrqx.third/src/main/java/com/zrqx/third/pay/controller/ReceiveController.java
浏览文件 @
a4733400
...
...
@@ -15,6 +15,7 @@ import javax.servlet.ServletRequest;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
org.apache.commons.lang.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -27,6 +28,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
import
com.alipay.api.AlipayApiException
;
import
com.alipay.api.internal.util.AlipaySignature
;
import
com.zrqx.core.enums.ProjectEnum
;
import
com.zrqx.core.enums.order.OrderStatusEnum
;
import
com.zrqx.core.enums.order.OrderTypeEnum
;
import
com.zrqx.core.enums.third.pay.PayTypeEnum
;
...
...
@@ -289,62 +291,71 @@ public class ReceiveController {
// 付款金额 分
String
total_amount
=
notifyMap
.
get
(
"total_fee"
);
// 修改订单状态
logger
.
info
(
out_trade_no
+
"开始查询订单详情-------------------"
);
CallBack
<
OrderPayVo
>
orderPayVoResult
=
orderClient
.
getOrderPayVo
(
out_trade_no
);
if
(
orderPayVoResult
==
null
||
orderPayVoResult
.
getData
()
==
null
)
{
logger
.
error
(
"订单:"
+
out_trade_no
+
"获取订单详情失败"
);
throw
new
BusinessValidateException
(-
3
,
"获取订单详情失败"
);
}
OrderPayVo
orderPayVo
=
orderPayVoResult
.
getData
();
logger
.
info
(
out_trade_no
+
"获取订单详情成功:\n"
+
orderPayVo
);
BigDecimal
tempDataBig
=
new
BigDecimal
(
orderPayVo
.
getPayment
());
// 元换算为 分
String
amount
=
tempDataBig
.
multiply
(
new
BigDecimal
(
100
d
)).
intValue
()
+
""
;
if
(!
amount
.
equals
(
total_amount
)){
// TODO 支付金额和订单金额不一致 处理流程
logger
.
warn
(
"订单金额与支付金额不一致; "
);
}
logger
.
info
(
out_trade_no
+
"开始修改订单状态-------------------"
);
PayResultForm
form
=
new
PayResultForm
();
form
.
setOut_trade_no
(
out_trade_no
);
form
.
setPayType
(
PayTypeEnum
.
ALIPAY
.
getCode
());
CallBack
<
Boolean
>
result
=
orderClient
.
updateOrderStatus
(
form
);
if
(
result
==
null
||
!
result
.
getData
())
{
logger
.
error
(
"订单:"
+
out_trade_no
+
"订单状态修改失败"
);
throw
new
BusinessValidateException
(-
3
,
"订单状态修改失败"
);
// 附加数据,判断订单来源
String
attach
=
notifyMap
.
get
(
"attach"
);
// 税可知,走出去
if
(
StringUtils
.
isBlank
(
attach
)
||
!
attach
.
equals
(
ProjectEnum
.
SPK
.
getCode
())){
// 修改订单状态
logger
.
info
(
out_trade_no
+
"开始查询订单详情-------------------"
);
CallBack
<
OrderPayVo
>
orderPayVoResult
=
orderClient
.
getOrderPayVo
(
out_trade_no
);
if
(
orderPayVoResult
==
null
||
orderPayVoResult
.
getData
()
==
null
)
{
logger
.
error
(
"订单:"
+
out_trade_no
+
"获取订单详情失败"
);
throw
new
BusinessValidateException
(-
3
,
"获取订单详情失败"
);
}
logger
.
info
(
form
.
getOut_trade_no
()
+
"修改订单状态成功-------------------"
);
if
(
orderPayVo
.
getOrderType
().
equals
(
OrderTypeEnum
.
VIP
.
getCode
())){
//如果是开通vip订单,修改用户信息
logger
.
info
(
"third1服务:开始修改用户信息-------------------"
);
CallBack
<
Boolean
>
re
=
personalMemberClient
.
addVipMember
(
out_trade_no
);
if
(
re
.
hasEntity
()){
if
(
re
.
getData
()
==
true
){
logger
.
info
(
"-----修改用户信息成功-------------------"
);
}
else
{
logger
.
error
(
"修改用户信息失败"
);
OrderPayVo
orderPayVo
=
orderPayVoResult
.
getData
();
logger
.
info
(
out_trade_no
+
"获取订单详情成功:\n"
+
orderPayVo
);
BigDecimal
tempDataBig
=
new
BigDecimal
(
orderPayVo
.
getPayment
());
// 元换算为 分
String
amount
=
tempDataBig
.
multiply
(
new
BigDecimal
(
100
d
)).
intValue
()
+
""
;
if
(!
amount
.
equals
(
total_amount
)){
// TODO 支付金额和订单金额不一致 处理流程
logger
.
warn
(
"订单金额与支付金额不一致; "
);
}
logger
.
info
(
out_trade_no
+
"开始修改订单状态-------------------"
);
PayResultForm
form
=
new
PayResultForm
();
form
.
setOut_trade_no
(
out_trade_no
);
form
.
setPayType
(
PayTypeEnum
.
ALIPAY
.
getCode
());
CallBack
<
Boolean
>
result
=
orderClient
.
updateOrderStatus
(
form
);
if
(
result
==
null
||
!
result
.
getData
())
{
logger
.
error
(
"订单:"
+
out_trade_no
+
"订单状态修改失败"
);
throw
new
BusinessValidateException
(-
3
,
"订单状态修改失败"
);
}
logger
.
info
(
form
.
getOut_trade_no
()
+
"修改订单状态成功-------------------"
);
if
(
orderPayVo
.
getOrderType
().
equals
(
OrderTypeEnum
.
VIP
.
getCode
())){
//如果是开通vip订单,修改用户信息
logger
.
info
(
"third1服务:开始修改用户信息-------------------"
);
CallBack
<
Boolean
>
re
=
personalMemberClient
.
addVipMember
(
out_trade_no
);
if
(
re
.
hasEntity
()){
if
(
re
.
getData
()
==
true
){
logger
.
info
(
"-----修改用户信息成功-------------------"
);
}
else
{
logger
.
error
(
"修改用户信息失败"
);
}
}
}
// 订单金额、单位为分
/*String total_fee =notifyMap.get("total_fee");
logger.info(notifyMap.get("out_trade_no") + "微信支付成功调用order修改状态--------------------");
CallBack<Boolean> result = payClient.returnPayResult(new PayResultForm(PayTypeEnum.WECHAT.getCode(), out_trade_no));
logger.info(notifyMap.get("out_trade_no") + "微信回调远程调用order完成:" + (result == null ? false : result.getData()));
if(result != null && result.getData()){
// 返回微信方成功响应
String responseXml = "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>";
response.getWriter().write(responseXml);
} else {
logger.error(notifyMap.get("out_trade_no") + "响应微信回调失败:" + notifyMap);
}
logger.info(notifyMap.get("out_trade_no") + "微信支付回调结束--------------------");*/
}
// 订单金额、单位为分
/*String total_fee =notifyMap.get("total_fee");
logger.info(notifyMap.get("out_trade_no") + "微信支付成功调用order修改状态--------------------");
CallBack<Boolean> result = payClient.returnPayResult(new PayResultForm(PayTypeEnum.WECHAT.getCode(), out_trade_no));
logger.info(notifyMap.get("out_trade_no") + "微信回调远程调用order完成:" + (result == null ? false : result.getData()));
if(result != null && result.getData()){
// 返回微信方成功响应
String responseXml = "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>";
response.getWriter().write(responseXml);
} else {
logger.error(notifyMap.get("out_trade_no") + "响应微信回调失败:" + notifyMap);
// 个税视频课
if
(
StringUtils
.
isNotBlank
(
attach
)
&&
attach
.
equals
(
ProjectEnum
.
SPK
.
getCode
())){
// TODO
}
logger.info(notifyMap.get("out_trade_no") + "微信支付回调结束--------------------");*/
}
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
());
...
...
com.zrqx.third/src/main/java/com/zrqx/third/pay/interfaces/payType/impl/WeChatPayImpl.java
浏览文件 @
a4733400
...
...
@@ -13,6 +13,7 @@ import java.util.Map;
import
javax.servlet.http.HttpServletRequest
;
import
org.apache.commons.beanutils.BeanUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -67,6 +68,9 @@ public class WeChatPayImpl extends PayTypeAdapter{
// 扫码回调地址
@Value
(
"${pay.wechatpay.notify_url}"
)
private
String
notify_url
;
// H5支付场景信息
@Value
(
"${scene_info}"
)
private
String
scene_info
;
@Override
public
List
<
PayTypeEnum
>
getEnums
()
{
...
...
@@ -127,9 +131,15 @@ public class WeChatPayImpl extends PayTypeAdapter{
data
.
put
(
"out_trade_no"
,
toPayForm
.
getOut_trade_no
());
data
.
put
(
"total_fee"
,
realData
);
data
.
put
(
"product_id"
,
String
.
valueOf
(
orderPayVo
.
getId
()));
if
(
StringUtils
.
isNotBlank
(
toPayForm
.
getAttach
())){
data
.
put
(
"attach"
,
toPayForm
.
getAttach
());
// 附加数据区分,订单来源于哪个项目平台
}
if
(
WeChartType
.
JSAPI
.
getCode
().
equals
(
toPayForm
.
getTrade_type
())){
data
.
put
(
"openid"
,
toPayForm
.
getOpenid
());
}
if
(
WeChartType
.
H5
.
getCode
().
equals
(
toPayForm
.
getTrade_type
())){
data
.
put
(
"scene_info"
,
scene_info
);
}
// 统一下单
Map
<
String
,
String
>
resp
=
wxpay
.
unifiedOrder
(
data
);
if
(
resp
==
null
)
...
...
@@ -199,6 +209,11 @@ public class WeChatPayImpl extends PayTypeAdapter{
logger
.
info
(
"wwwwwwwwwwwwwwwwwwwwAPP订单:"
+
toPayForm
.
getOut_trade_no
()
+
"完成获取微信链接wwwwwwwwwwwwwwwwwwww"
+
stringA
+
"&sign="
+
paySign
);
return
CallBack
.
success
(
stringA
+
"&sign="
+
paySign
);
}
if
(
WeChartType
.
H5
.
getCode
().
equals
(
toPayForm
.
getTrade_type
())){
logger
.
info
(
"wwwwwwwwwwwwwwwwwwwwH5订单:"
+
toPayForm
.
getOut_trade_no
()
+
"完成获取微信链接wwwwwwwwwwwwwwwwwwww"
);
return
CallBack
.
success
(
wecartPayReturn
.
getMweb_url
());
}
logger
.
info
(
"wwwwwwwwwwwwwwwwwwww扫码订单:"
+
toPayForm
.
getOut_trade_no
()
+
"完成获取微信链接wwwwwwwwwwwwwwwwwwww"
);
return
CallBack
.
success
(
wecartPayReturn
.
getCode_url
());
}
catch
(
Exception
e
)
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论