From 00788a1299d764b48e57fd457a2656f0bf3474b0 Mon Sep 17 00:00:00 2001
From: zhaoxiaohao <279049017@qq.com>
Date: Tue, 17 Nov 2020 11:28:47 +0800
Subject: [PATCH] 修改  为https 后兼容以前的http 数据

---
 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/WxServiceImpl.java |   31 ++++++++++++++++++++++++++-----
 1 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/WxServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/WxServiceImpl.java
index 8dd7189..6ee053d 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/WxServiceImpl.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/WxServiceImpl.java
@@ -1,7 +1,6 @@
 package com.kidgrow.oprationcenter.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.kidgrow.common.utils.DateUtils;
 import com.kidgrow.common.utils.QRCodeUtil;
 import com.kidgrow.common.utils.StringUtils;
 import com.kidgrow.oprationcenter.model.SaasClientPay;
@@ -15,6 +14,7 @@
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -35,7 +35,7 @@
         jsonObject.put("body",saasClientPay.getChildName());//商品描述
         jsonObject.put("out_trade_no", saasClientPay.getOutTradeNo());//商户订单号
         jsonObject.put("total_fee",saasClientPay.getPayPrice().toString());//标价金额  单位为分
-        jsonObject.put("spbill_create_ip",request.getRequestURI());//终端IP
+        jsonObject.put("spbill_create_ip",getIpAddress(request));//终端IP
         jsonObject.put("notify_url",weiXinOfficPayProperties.getPayNotifyUrl());//通知地址
         jsonObject.put("trade_type","NATIVE");//交易类型
         MyConfig wxPayConfig= new MyConfig(weiXinOfficPayProperties);
@@ -43,15 +43,35 @@
         Map<String, String> stringStringMap = wxPay.fillRequestData(jsonObject);
         Map<String, String> result = wxPay.unifiedOrder(stringStringMap);
         String resultStr = result.get("code_url");
+        log.error("");
         if(result.get("code_url")==null|| StringUtils.isBlank(resultStr)){
             return null;
         }
         String s = QRCodeUtil.creatRrCode(resultStr, 200, 200, 0).replaceAll("\n","").replaceAll("\r","");
         String prepay_id = result.get("prepay_id");
         Map<String,String> map = new HashMap<>();
-        map.put("code_url",resultStr);
+        map.put("code_url",s);
         map.put("prepay_id",prepay_id);
         return map;
+    }
+    public static String getIpAddress(HttpServletRequest request) {
+        String ip = request.getHeader("x-forwarded-for");
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getHeader("Proxy-Client-IP");
+        }
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getHeader("WL-Proxy-Client-IP");
+        }
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getHeader("HTTP_CLIENT_IP");
+        }
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getHeader("HTTP_X_FORWARDED_FOR");
+        }
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getRemoteAddr();
+        }
+        return ip;
     }
 
     @Override
@@ -72,10 +92,11 @@
                 List<SaasClientPay> list = iSaasClientPayService.list(queryWrapper);
                 if(!list.isEmpty()){
                     SaasClientPay saasClientPay = list.get(0);
-                    saasClientPay.setPayTime(DateUtils.parseDate(requestMap.get("time_end")));
+                    saasClientPay.setPayTime(new Date());
                     saasClientPay.setPayStatus(2);
+                    saasClientPay.setPayMethod(0);
                     saasClientPay.setTradeNo(requestMap.get("transaction_id"));
-                    boolean b = iSaasClientPayService.saveOrUpdate(saasClientPay);
+                    boolean b = iSaasClientPayService.updateById(saasClientPay);
                     map.put("return_code","SUCCESS");
                     map.put("return_msg","OK");
                 }

--
Gitblit v1.8.0