he2802 před 4 roky
rodič
revize
1406c7992d

+ 1 - 1
zhongzheng-api/src/main/java/com/zhongzheng/controller/order/OrderController.java

@@ -92,6 +92,6 @@ public class OrderController extends BaseController {
     public AjaxResult credit(@RequestBody OrderAddBo bo) {
         ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
         bo.setUserId(loginUser.getUser().getUserId());
-        return AjaxResult.success(iOrderService.placeOrder(bo));
+        return AjaxResult.success(iOrderService.placeGzhOrder(bo));
     }
 }

+ 4 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -182,7 +182,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         validEntityBeforeSave(add);
         add.setCreateTime(DateUtils.getNowTime());
         add.setUpdateTime(DateUtils.getNowTime());
-        Map<String, String> result = dealOrder(add,goodsList,bo.getCouponId(),bo.getActivityId());
+        Map<String, String> result = dealGzhOrder(add,goodsList);
         return result;
     }
 
@@ -327,7 +327,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         return result;
     }
 
-    public Map<String, String>  dealGzhOrder(Order add,List<OrderGoodsAddBo> goodsList,Long couponId,Long activity){
+    public Map<String, String>  dealGzhOrder(Order add,List<OrderGoodsAddBo> goodsList){
         UserVo userVo = iUserService.queryById(add.getUserId());
         String body = "中正云课堂充值";
         String price = "1";
@@ -342,6 +342,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 throw new CustomException("商品数量错误");
             }
             g.setGoodsType(4);//充值余额类型
+            g.setGoodsId(0L);
             totalPrice = totalPrice.add(g.getGoodsPrice());
         }
         BigDecimal zero = new BigDecimal("0.01");
@@ -353,7 +354,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         if(!this.save(add)){
             throw new CustomException("订单数据错误");
         }
-        Map<String, String> result =  iWxPayService.payment(out_trade_no,userVo.getGzhOpenId(),body,price);
+        Map<String, String> result =  iWxPayService.paymentGzh(out_trade_no,userVo.getGzhOpenId(),body,price);
         return result;
     }
 

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

@@ -26,6 +26,8 @@ public interface IWxPayService {
 	 */
 	Map<String, String> payment(String out_trade_no,String openid,String body,String price);
 
+	Map<String, String> paymentGzh(String out_trade_no,String openid,String body,String price);
+
 	String paymentCallBack(String notifyData);
 
 }

+ 39 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/wx/service/impl/WxPayServiceImpl.java

@@ -75,6 +75,9 @@ public class WxPayServiceImpl  implements IWxPayService {
     @Value("${wx.small.appid}")
     private String appid;
 
+    @Value("${wx.gzh.appid}")
+    private String gzhAppid;
+
     @Value("${wx.wepay.mchid}")
     private String mchid;
 
@@ -147,6 +150,42 @@ public class WxPayServiceImpl  implements IWxPayService {
         return null;
     }
 
+    @Override
+    public Map<String, String> paymentGzh(String out_trade_no, String openid, String body, String price) {
+        WxSmallConfig config = new WxSmallConfig(gzhAppid,mchid,key);
+        try {
+            WXPay wxpay = new WXPay(config);
+            SnowflakeIdUtils idWorker = new SnowflakeIdUtils(3, 1);
+
+            Map<String, String> data = new HashMap<String, String>();
+            data.put("body", body);
+            data.put("out_trade_no", out_trade_no);
+            data.put("device_info", "");
+            data.put("fee_type", "CNY");
+            data.put("total_fee", "1");
+            data.put("openid", openid);
+            data.put("spbill_create_ip", IpUtils.getIpAddr(ServletUtils.getRequest()));
+            data.put("notify_url", notifyUrl);
+            data.put("trade_type", "JSAPI");
+            Map<String, String> resp = wxpay.unifiedOrder(data);
+
+            Map<String, String> result = new HashMap<>();
+            //         result.put("provider","wxpay");
+            result.put("appId",gzhAppid);
+            result.put("timeStamp",String.valueOf(DateUtils.getNowTime()));
+            result.put("nonceStr",resp.get("nonce_str"));
+            result.put("package","prepay_id="+resp.get("prepay_id"));
+            result.put("signType","MD5");
+            result.put("sign", WXPayUtil.generateSignature(result, key, WXPayConstants.SignType.MD5));
+            //       System.out.println(resp);
+            return result;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        return null;
+    }
+
     @Override
     public String paymentCallBack(String notifyData) {
         WxSmallConfig config = new WxSmallConfig(appid,mchid,key);