Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
zcq
Project
Project
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
Graph
比较
统计图
议题
0
议题
0
列表
看板
标记
Milestones
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
注册表
注册表
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
svn
zcq
Commits
13f14c3a
提交
13f14c3a
authored
7月 31, 2019
作者:
yucaiwei
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
--no commit message
上级
0b8673b5
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
50 行增加
和
49 行删除
+50
-49
ReceiveController.java
...java/com/zrqx/third/pay/controller/ReceiveController.java
+50
-49
没有找到文件。
com.zrqx.third/src/main/java/com/zrqx/third/pay/controller/ReceiveController.java
浏览文件 @
13f14c3a
...
...
@@ -27,6 +27,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.order.OrderStatusEnum
;
import
com.zrqx.core.enums.order.OrderTypeEnum
;
import
com.zrqx.core.enums.third.pay.PayTypeEnum
;
import
com.zrqx.core.exception.BusinessValidateException
;
...
...
@@ -80,11 +81,11 @@ public class ReceiveController {
private
final
static
Logger
logger
=
LoggerFactory
.
getLogger
(
ReceiveController
.
class
);
@ApiOperation
(
value
=
"支付宝服务器异步通知页面"
,
notes
=
"支付宝服务器异步通知页面"
)
@
Reque
stMapping
(
RequestPath
.
NOTIFY_ALI
)
@
Po
stMapping
(
RequestPath
.
NOTIFY_ALI
)
@ResponseBody
public
String
aliNotifyUrl
(
ServletRequest
request
)
throws
AlipayApiException
,
UnsupportedEncodingException
{
logger
.
info
(
request
.
getParameter
(
"out_trade_no"
)
+
"支付宝支付回调开始--------------------"
);
logger
.
info
(
request
.
getParameter
(
"out_trade_no"
)
+
"支付宝支付回调开始--------------------
notify_ali
"
);
/*
* * 页面功能说明************************* 创建该页面文件时,请留心该页面文件中无任何HTML代码及空格。
* 该页面不能在本机电脑测试,请到服务器上做测试。请确保外部可以访问该页面。 如果没有收到该页面返回的 success
...
...
@@ -117,6 +118,7 @@ public class ReceiveController {
* 是否为out_trade_no这笔单据的对应的操作方(有的时候,一个商户可能有多个seller_id/seller_email)
* 4、验证app_id是否为该商户本身。
*/
logger
.
info
(
"签名校验--------------------"
+
signVerified
);
if
(
signVerified
)
{
// 验证成功
// 商户订单号
String
out_trade_no
=
request
.
getParameter
(
"out_trade_no"
);
...
...
@@ -124,6 +126,9 @@ public class ReceiveController {
String
trade_no
=
request
.
getParameter
(
"trade_no"
);
// 交易状态
String
trade_status
=
request
.
getParameter
(
"trade_status"
);
// 付款金额
String
total_amount
=
request
.
getParameter
(
"total_amount"
);
if
(
trade_status
.
equals
(
"TRADE_FINISHED"
))
{
// 判断该笔订单是否在商户网站中已经做过处理
// 如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
...
...
@@ -138,11 +143,48 @@ public class ReceiveController {
// 注意:
// 付款完成后,支付宝系统发送该交易状态通知
logger
.
info
(
request
.
getParameter
(
"out_trade_no"
)
+
"支付宝支付成功------开始调用pay--------------"
);
CallBack
<
Boolean
>
result
=
payClient
.
returnPayResult
(
new
PayResultForm
(
out_trade_no
,
String
.
valueOf
(
PayTypeEnum
.
ALIPAY
.
getCode
())));
logger
.
info
(
request
.
getParameter
(
"out_trade_no"
)
+
"支付宝回调远程调用pay结束:"
+
(
result
==
null
?
false
:
result
.
getData
()));
//logger.info(request.getParameter("out_trade_no") + "支付宝支付成功------开始调用pay--------------");
//CallBack<Boolean> result = payClient.returnPayResult(new PayResultForm(out_trade_no,
// String.valueOf(PayTypeEnum.ALIPAY.getCode())));
//logger.info(request.getParameter("out_trade_no") + "支付宝回调远程调用pay结束:" + (result == null ? false : result.getData()));
// 修改订单状态
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
);
if
(!
orderPayVo
.
getPayment
().
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
(
"修改用户信息失败"
);
}
}
}
}
mark
=
"success"
;
}
else
{
// 验证失败
...
...
@@ -313,10 +355,10 @@ public class ReceiveController {
@ApiOperation
(
value
=
"支付宝服务器同步通知页面"
,
notes
=
"支付宝服务器同步通知页面"
)
@
Reques
tMapping
(
RequestPath
.
RETURNURL
)
@
Ge
tMapping
(
RequestPath
.
RETURNURL
)
public
String
aliReturnUrl
(
ServletRequest
request
)
throws
AlipayApiException
,
IOException
{
logger
.
info
(
request
.
getParameter
(
"out_trade_no"
)
+
"支付宝支付回调开始--------------------"
);
logger
.
info
(
request
.
getParameter
(
"out_trade_no"
)
+
"支付宝支付回调开始--------------------
returnUrl
"
);
// String mark = "";
Map
<
String
,
String
>
params
=
new
HashMap
<
String
,
String
>();
Map
<
String
,
String
[]>
requestParams
=
request
.
getParameterMap
();
...
...
@@ -334,7 +376,6 @@ public class ReceiveController {
boolean
signVerified
=
AlipaySignature
.
rsaCheckV1
(
params
,
alipay_public_key
,
charset
,
sign_type
);
// 调用SDK验证签名
logger
.
info
(
"签名校验--------------------"
+
signVerified
);
if
(
signVerified
)
{
// 商户订单号
String
out_trade_no
=
request
.
getParameter
(
"out_trade_no"
);
...
...
@@ -345,46 +386,6 @@ public class ReceiveController {
// 付款金额
String
total_amount
=
request
.
getParameter
(
"total_amount"
);
// 修改订单状态
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
);
if
(!
orderPayVo
.
getPayment
().
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 seller_id =request.getParameter("seller_id");
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论