he2802 3 yıl önce
ebeveyn
işleme
8fe4ca8cfb

+ 5 - 5
zhongzheng-api/src/main/resources/application.yml

@@ -241,15 +241,15 @@ feign:
 
 wx:
   small:
-    appid: wxd0fac11d52c8808b
-    appsecret: 30177f3472718d5108b367b1f321d58c
+    appid: wxd3c8ae80cf43a305
+    appsecret: 193a001ebfd46f227008a21e9d13e750
   gzh:
     appid: wx6f48f721d18244eb
     appsecret: 2f8b2b4ff66e2f6adfb9f08ae22d7474
   wepay:
-    mchid: 1618279619
-    key: FzHUf9jucza7mqsUOVCzcNkz1FWO92bH
-    appsecret: 2f8b2b4ff66e2f6adfb9f08ae22d7474
+    mchid: 1342013901
+    key: GdXyPxYjZx1234123yJzXgDxYpXyjpx9
+    appsecret: GdXyPxYjZx1234123yJzXgDxYpXyjpx9
 
 tencent:
   cloud:

BIN
zhongzheng-api/src/main/resources/config/apiclient_cert.p12


BIN
zhongzheng-common/src/main/resources/config/apiclient_cert.p12


+ 10 - 10
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/WxLoginService.java

@@ -177,16 +177,16 @@ public class WxLoginService
         lqw.eq(User::getUserId, userId);
         User user = iUserService.getOne(lqw);
         String openId = user.getOpenId();
-        if(Validator.isEmpty(openId)){
-            String param = String.format(wxAuthParam, appid, appsrcret, loginBody.getCode());
-            String resultString  = HttpUtils.sendGet(wxAuthUrl,param);
-            //解析json
-            JSONObject jsonObject = (JSONObject) JSONObject.parse(resultString);
-            String session_key = String.valueOf(jsonObject.get("session_key"));
-            openId = String.valueOf(jsonObject.get("openid"));
-            user.setOpenId(openId);
-            iUserService.updateById(user);
-        }
+
+        //每次更新最新openid
+        String param = String.format(wxAuthParam, appid, appsrcret, loginBody.getCode());
+        String resultString  = HttpUtils.sendGet(wxAuthUrl,param);
+        //解析json
+        JSONObject jsonObject = (JSONObject) JSONObject.parse(resultString);
+        String session_key = String.valueOf(jsonObject.get("session_key"));
+        openId = String.valueOf(jsonObject.get("openid"));
+        user.setOpenId(openId);
+        iUserService.updateById(user);
         return openId;
     }
 

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderGoodsRefundServiceImpl.java

@@ -148,6 +148,8 @@ public class OrderGoodsRefundServiceImpl extends ServiceImpl<OrderGoodsRefundMap
             Map<String, String> payResult =  iWxPayService.refund(out_trade_no,order.getTransid(),order.getPayPrice().toString(),"1");
             if("OK".equals(payResult.get("return_msg"))){
                 return refundCall(payResult.get("refund_id"),add.getRefundId(),orderGoods.getOrderGoodsId(),order);
+            }else{
+                throw new CustomException("退款错误");
             }
         }
         return false;

+ 21 - 12
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -46,6 +46,7 @@ import com.github.pagehelper.Page;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -352,14 +353,16 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         add.setOrderSn(out_trade_no);
         add.setOrderFrom(Order.FROM_SMALL);
         add.setPayPrice(payPrice);
+
         add.setOrderPrice(totalPrice);
         this.save(add);
         Map<String, Object> result = new HashMap<>();
         result.put("oderId",add.getOrderId());
         result.put("orderSn",out_trade_no);
         UserVo userVo = iUserService.queryById(add.getUserId());
-        String price = "1";
-        Map<String, String> payResult =  iWxPayService.payment(out_trade_no,userVo.getOpenId(),body,price);
+    //    String price = "1";
+
+        Map<String, String> payResult =  iWxPayService.payment(out_trade_no,userVo.getOpenId(),body,payPrice);
         payResult.put("orderSn",out_trade_no);
         return payResult;
     }
@@ -387,8 +390,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             throw new CustomException("无法继续支付");
         }
         UserVo userVo = iUserService.queryById(bo.getUserId());
-        String price = "1";
-        Map<String, String> payResult =  iWxPayService.payment(bo.getOrderSn(),userVo.getOpenId(),body,price);
+        Map<String, String> payResult =  iWxPayService.payment(bo.getOrderSn(),userVo.getOpenId(),body,order.getPayPrice());
         payResult.put("orderSn",bo.getOrderSn());
         return payResult;
     }
@@ -410,15 +412,22 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             update.setCancelTime(DateUtils.getNowTime());
             //手动关闭订单
             OrderVo orderVo = this.queryById(bo.getOrderId());
-            //关闭锁定班级
-            LambdaQueryWrapper<ClassGradeUserTemp> lqwLock = new LambdaQueryWrapper<>();
-            lqwLock.eq(ClassGradeUserTemp::getOrderSn,orderVo.getOrderSn());
-            ClassGradeUserTemp classGradeUserTemp = iClassGradeUserTempService.getOne(lqwLock);
-            if(classGradeUserTemp!=null){
-                classGradeUserTemp.setStatus(ClassGradeUserTemp.STATUS_CLOSE);
-                classGradeUserTemp.setUpdateTime(DateUtils.getNowTime());
-                iClassGradeUserTempService.updateById(classGradeUserTemp);//关闭锁定状态
+            OrderGoodsQueryBo bo1 = new OrderGoodsQueryBo();
+            bo.setOrderSn(orderVo.getOrderSn());
+            List<OrderGoodsVo> orderGoodsVoList  = iOrderGoodsService.selectList(bo1);
+            for (OrderGoodsVo g : orderGoodsVoList) {
+                //关闭锁定班级
+                LambdaQueryWrapper<ClassGradeUserTemp> lqwLock = new LambdaQueryWrapper<>();
+                lqwLock.eq(ClassGradeUserTemp::getOrderSn,orderVo.getOrderSn());
+                lqwLock.eq(ClassGradeUserTemp::getGoodsId,g.getGoodsId());
+                ClassGradeUserTemp classGradeUserTemp = iClassGradeUserTempService.getOne(lqwLock);
+                if(classGradeUserTemp!=null){
+                    classGradeUserTemp.setStatus(ClassGradeUserTemp.STATUS_CLOSE);
+                    classGradeUserTemp.setUpdateTime(DateUtils.getNowTime());
+                    iClassGradeUserTempService.updateById(classGradeUserTemp);//关闭锁定状态
+                }
             }
+
         }
         return this.updateById(update);
     }

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/wx/service/IWxPayService.java

@@ -25,7 +25,7 @@ public interface IWxPayService {
 	 * 查询单个
 	 * @return
 	 */
-	Map<String, String> payment(String out_trade_no,String openid,String body,String price);
+	Map<String, String> payment(String out_trade_no,String openid,String body,BigDecimal price);
 
 	Map<String, String> paymentGzh(String out_trade_no, String openid, String body, BigDecimal price, String url);
 

+ 11 - 6
zhongzheng-system/src/main/java/com/zhongzheng/modules/wx/service/impl/WxPayServiceImpl.java

@@ -118,9 +118,9 @@ public class WxPayServiceImpl  implements IWxPayService {
 
     private WXPayConstants.SignType signType;
 
- //   private String notifyUrl = "https://api.xyyxt.net/wx/pay/callback";
+    private String notifyUrl = "https://api.xyyxt.net/wx/pay/callback";
 
-    private String notifyUrl = "http://42.192.164.187:19005/wx/pay/callback";
+ //   private String notifyUrl = "http://42.192.164.187:19005/wx/pay/callback";
 
     private WXPayRequest wxPayRequest;
 
@@ -155,8 +155,10 @@ public class WxPayServiceImpl  implements IWxPayService {
     private String gzh_tokenParam = "grant_type=client_credential&appid=%s&secret=%s";
 
     @Override
-    public Map<String, String> payment(String out_trade_no,String openid,String body,String price) {
+    public Map<String, String> payment(String out_trade_no,String openid,String body,BigDecimal price) {
         WxSmallConfig config = new WxSmallConfig(appid,mchid,key);
+        BigDecimal unit = new BigDecimal(100);
+        price = price.multiply(unit);
         try {
             WXPay wxpay = new WXPay(config);
             Map<String, String> data = new HashMap<String, String>();
@@ -164,15 +166,16 @@ public class WxPayServiceImpl  implements IWxPayService {
             data.put("out_trade_no", out_trade_no);
             data.put("device_info", "");
             data.put("fee_type", "CNY");
-            data.put("total_fee", "1");
+            data.put("total_fee",price.intValue()+"");
             data.put("openid", openid);
             data.put("spbill_create_ip", IpUtils.getIpAddr(ServletUtils.getRequest()));
             data.put("notify_url", notifyUrl);
             data.put("trade_type", "JSAPI");
             String TenantId = ServletUtils.getRequest().getHeader("TenantId");
             data.put("attach", TenantId);
+            System.out.println(data);
             Map<String, String> resp = wxpay.unifiedOrder(data);
-
+            System.out.println(resp);
             Map<String, String> result = new HashMap<>();
    //         result.put("provider","wxpay");
             result.put("appId",appid);
@@ -180,8 +183,9 @@ public class WxPayServiceImpl  implements IWxPayService {
             result.put("nonceStr",resp.get("nonce_str"));
             result.put("package","prepay_id="+resp.get("prepay_id"));
             result.put("signType","MD5");
+            System.out.println(result);
+            System.out.println(key);
             result.put("sign", WXPayUtil.generateSignature(result, key, WXPayConstants.SignType.MD5));
-     //       System.out.println(resp);
             return result;
         } catch (Exception e) {
             e.printStackTrace();
@@ -435,6 +439,7 @@ public class WxPayServiceImpl  implements IWxPayService {
             result.put("signType","MD5");
             result.put("sign", WXPayUtil.generateSignature(result, key, WXPayConstants.SignType.MD5));
             Map rMap = wxpay.refund(data);
+            System.out.println(rMap);
             return rMap;
         } catch (Exception e) {
             e.printStackTrace();