提交 a4733400 authored 作者: yucaiwei's avatar yucaiwei

--no commit message

上级 4e3421b9
......@@ -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(100d)).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(100d)).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());
......
......@@ -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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论