From 5c2ed14a85491746f55da8b72f53425b16891c11 Mon Sep 17 00:00:00 2001
From: puhanshu <a9236326>
Date: 星期五, 22 七月 2022 16:25:22 +0800
Subject: [PATCH] bug修改
---
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxCallbackApi.java | 136 +++++++++++++++++++++++---------------------
1 files changed, 71 insertions(+), 65 deletions(-)
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxCallbackApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxCallbackApi.java
index 388647a..1900544 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxCallbackApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxCallbackApi.java
@@ -3,17 +3,24 @@
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
+import java.util.HashMap;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import com.panzhihua.applets.umf.MyAESUtil;
import com.panzhihua.applets.umf.UmfPayUtil;
import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.user.UserService;
import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.HttpClientUtil;
+import com.umf.api.service.UmfService;
+import com.umf.api.service.UmfServiceImpl;
import io.swagger.annotations.ApiOperation;
import org.json.XML;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import com.alibaba.fastjson.JSON;
@@ -23,6 +30,8 @@
import com.panzhihua.common.utlis.StringUtils;
import lombok.extern.slf4j.Slf4j;
+
+import static com.umf.api.service.UmfServiceImpl.printResult;
/**
* @auther lyq
@@ -38,6 +47,10 @@
private CommunityService communityService;
@Resource
private UmfPayUtil umfPayUtil;
+ @Value("${umf.file}")
+ private String file;
+ @Resource
+ private UserService userService;
@PostMapping("wxNotify")
public void payCallback(HttpServletRequest request, HttpServletResponse response) {
@@ -107,77 +120,70 @@
e.printStackTrace();
}
}
- @PostMapping("wxNotifyAll")
+ @GetMapping("wxNotifyAll")
public void payCallbackAll(HttpServletRequest request, HttpServletResponse response) {
- log.info("微信支付回调start");
- String inputLine = "";
- String notityXml = "";
+ //获取联动发送请求的参数
+ String requestParam = request.getQueryString();
+ System.out.println("请求参数 :" + requestParam);
+ //调用异步通知解析方法
+ UmfService service = new UmfServiceImpl("53461",file);
+ Map respMap = null;
try {
- while ((inputLine = request.getReader().readLine()) != null) {
- notityXml += inputLine;
- }
- // 关闭流
- request.getReader().close();
- log.info("微信回调内容信息:" + notityXml);
- // 解析成Json
- org.json.JSONObject xmlJson = XML.toJSONObject(notityXml);
- if (StringUtils.isNotEmpty(xmlJson.toString())) {
- JSONObject resultData = JSON.parseObject(xmlJson.get("xml").toString());
- // 成功支付订单
- if (resultData.getString("result_code").equals("SUCCESS")
- && resultData.getString("return_code").equals("SUCCESS")) {
- WxPayNotifyOrderDTO notifyOrderDTO = new WxPayNotifyOrderDTO();
- // 订单号
- String orderTradeNo = resultData.getString("out_trade_no");
- notifyOrderDTO.setOrderTradeNo(orderTradeNo);
- // 微信支付订单号
- String wxTradeNo = resultData.getString("transaction_id");
- notifyOrderDTO.setWxTradeNo(wxTradeNo);
- // 订单金额
- String totalFee = resultData.getString("total_fee");
- notifyOrderDTO.setTotalFee(totalFee);
- // 支付完成时间
- String payTime = resultData.getString("time_end");
- notifyOrderDTO.setPayTime(payTime);
- // 现金支付金额
- String cashFee = resultData.getString("cash_fee");
- notifyOrderDTO.setCashFee(cashFee);
-
-
-
- // 封装 返回值
- StringBuffer buffer = new StringBuffer();
- buffer.append("<xml>");
- buffer.append("<return_code>SUCCESS</return_code>");
- buffer.append("<return_msg>OK</return_msg>");
- buffer.append("</xml>");
-
- // 给微信服务器返回 成功标示 否则会一直询问 咱们服务器 是否回调成功
- PrintWriter writer = response.getWriter();
- // 返回
- writer.print(buffer.toString());
- } else {// 未成功支付订单
- // 封装 返回值
- StringBuffer buffer = new StringBuffer();
- buffer.append("<xml>");
- buffer.append("<return_code>FAIL</return_code>");
- buffer.append("<return_msg>FAIL</return_msg>");
- buffer.append("</xml>");
-
- // 给微信服务器返回 成功标示 否则会一直询问 咱们服务器 是否回调成功
- PrintWriter writer = response.getWriter();
- // 返回
- writer.print(buffer.toString());
- }
- }
+ respMap = service.notifyDataParserMap(requestParam);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ if(respMap.get("error_code").equals("0000")){
+ //调用uu洗车支付成功回调
+ Map map=new HashMap();
+ map.put("orderId",respMap.get("order_id"));
+ HttpClientUtil.sendPostByJson("https://api.uucsh.cn/notify/wx/pzh-pay",JSONObject.toJSONString(map),1,"appid","10000");;
+ }
+ //调用SDK生成返回联动平台字符串,加到CONTENT中
+ String resMetaData = service.responseUMFMap(respMap);
+ response.setContentType("text/html;charset=utf-8");
+ PrintWriter out = null;
+ try {
+ out = response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
+ out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
+ out.println("<HTML>");
+ out.println("<HEAD><META NAME=\"MobilePayPlatform\" CONTENT=\"" + resMetaData + "\" /></HEAD>");
+ out.println("<BODY>");
+ out.println("</BODY>");
+ out.println("</HTML>");
+ out.flush();
+ out.close();
}
@ApiOperation("uu洗车退款接口")
- @GetMapping("/uuRepay")
- public R uuRepay(@RequestParam("orderid") String orderid, @RequestParam("merdate") String merdate, @RequestParam("refundAmount")String refundAmount, @RequestParam("orgAmount")String orgAmount){
- Map map=umfPayUtil.repay(orderid,merdate, DateUtils.getDateFormatString(new Date(),"yyMMddHHmmss")+"0001",refundAmount,orgAmount);
- return R.ok(map);
+ @PostMapping("/uuRepay")
+ public R uuRepay(@RequestBody String aesString){
+ try {
+ Map<String, String> aesMap= (Map<String, String>) JSON.parse(aesString);
+ String desString=MyAESUtil.Decrypt(aesMap.get("aesString"),"Ryo7M3n8loC5Abcd");
+ Map<String,String> desMap= (Map) JSON.parse(desString);
+ Map map=umfPayUtil.repay(desMap.get("orderId"),desMap.get("merdate"), DateUtils.getDateFormatString(new Date(),"yyMMddHHmmss")+"0001",desMap.get("refundAmount"),desMap.get("orgAmount"));
+ return R.ok(map);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return R.fail("加密验证失败");
+ }
+
+ }
+ @ApiOperation("uu洗车推送")
+ @PostMapping("/uuPush")
+ public R uuPush(@RequestBody String aesString){
+ try {
+ Map<String, String> aesMap= (Map<String, String>) JSON.parse(aesString);
+ String desString=MyAESUtil.Decrypt(aesMap.get("aesString"),"Ryo7M3n8loC5Abcd");
+ Map<String,String> desMap= (Map) JSON.parse(desString);
+ return userService.uuPush(desMap.get("washer_mobile"),desMap.get("phone"),desMap.get("washer_name"),Integer.parseInt(desMap.get("order_status")));
+ } catch (Exception e) {
+ e.printStackTrace();
+ return R.fail("推送失败");
+ }
+
}
}
--
Gitblit v1.7.1