springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ShopApi.java
@@ -7,12 +7,18 @@ import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.shop.*; import com.panzhihua.common.service.community.CommunityService; import com.panzhihua.common.utlis.PayUtil; import io.swagger.annotations.*; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import java.util.Map; /** * @auther lyq @@ -213,9 +219,12 @@ @ApiOperation(value = "小程序微信调起支付") @PostMapping("wxpay") public R wxPay(@RequestBody OrderPayDTO orderPayDTO){ return R.ok(); LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); if(loginUserInfo == null){ return R.fail("请重新登陆"); } orderPayDTO.setOpenId(loginUserInfo.getOpenid()); return communityService.wxPay(orderPayDTO); } } springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxCallbackApi.java
@@ -1,16 +1,21 @@ package com.panzhihua.applets.api; import com.panzhihua.common.utlis.PayUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.panzhihua.common.model.dtos.shop.WxPayNotifyOrderDTO; import com.panzhihua.common.service.community.CommunityService; import com.panzhihua.common.utlis.StringUtils; import lombok.extern.slf4j.Slf4j; import org.json.XML; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.util.Map; /** * @auther lyq @@ -22,10 +27,12 @@ @RequestMapping("/wx/") public class WxCallbackApi { @PostMapping("notify") @Resource private CommunityService communityService; @PostMapping("wxNotify") public void payCallback(HttpServletRequest request, HttpServletResponse response) { log.info("微信回调接口方法 start"); log.info("微信回调接口 操作逻辑 start"); log.info("微信支付回调start"); String inputLine = ""; String notityXml = ""; try { @@ -35,18 +42,31 @@ //关闭流 request.getReader().close(); log.info("微信回调内容信息:"+notityXml); //解析成Map Map<String,String> map = PayUtil.doXMLParse(notityXml); //判断 支付是否成功 if("SUCCESS".equals(map.get("result_code"))){ log.info("微信回调返回是否支付成功:是"); //获得 返回的商户订单号 String outTradeNo = map.get("out_trade_no"); log.info("微信回调返回商户订单号:"+outTradeNo); //访问DB // WechatAppletGolfPayInfo payInfo = appletGolfPayInfoMapper.selectByPrimaryKey(outTradeNo); log.info("微信回调 根据订单号查询订单状态:"); if("0".equals("0")){ //解析成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); //根据订单号修改订单信息 communityService.wxOrderPayNotify(notifyOrderDTO); //封装 返回值 StringBuffer buffer = new StringBuffer(); @@ -59,14 +79,21 @@ PrintWriter writer = response.getWriter(); //返回 writer.print(buffer.toString()); } }else{ log.info("微信回调返回支付失败"); }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()); } } } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/bootstrap.yml
@@ -25,8 +25,5 @@ appid: wx0cef797390444b75 secret: c7ea9aaa7e391a487e8a5b9ba61045d1 msgDataFormat: JSON payKey: 01A9CB2234D7CBD0AC61B75EB1263805 mchId: 1608439275 notifyUrl: http://387405oo37.zicp.vip/api/applets/wx/notify springcloud_k8s_panzhihuazhihuishequ/common/pom.xml
@@ -120,9 +120,9 @@ <version>2.0.5</version> </dependency> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20160810</version> </dependency> </dependencies> springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/PayCpmstant.java
@@ -9,4 +9,12 @@ //微信支付统一下单url地址 public static final String UNIFIEDORDER_URL="https://api.mch.weixin.qq.com/pay/unifiedorder"; //微信支付默认编码格式 public static final String DEFAULT_ENCODING="UTF-8"; //微信支付返回支付成功CODE public static final String RETURN_CODE="SUCCESS"; //微信支付返回支付成功MSG public static final String RETURN_MSG="OK"; //微信支付默认加密格式 public static final String SIGN_TYPE="MD5"; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/OrderPayDTO.java
@@ -15,4 +15,7 @@ @ApiModelProperty(value = "订单号") private String orderNo; @ApiModelProperty(value = "订单号",hidden = true) private String openId; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/WxPayNotifyOrderDTO.java
New file @@ -0,0 +1,25 @@ package com.panzhihua.common.model.dtos.shop; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel("微信支付回调修改订单参数") public class WxPayNotifyOrderDTO { @ApiModelProperty(value = "订单号") private String orderTradeNo; @ApiModelProperty(value = "微信交易订单号") private String wxTradeNo; @ApiModelProperty(value = "订单金额") private String totalFee; @ApiModelProperty(value = "支付完成时间") private String payTime; @ApiModelProperty(value = "现金支付金额") private String cashFee; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderVO.java
@@ -16,4 +16,7 @@ @ApiModelProperty(value = "订单金额") private BigDecimal orderTotal; @ApiModelProperty(value = "请求支付返回参数") private String payResult; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -2092,4 +2092,19 @@ */ @PostMapping("/shop/pageShopFunds") R pageShopFunds(@RequestBody PageComShopFundsSearchDTO pageComShopFundsSearchDTO); /** * 微信支付订单回调 * @param wxPayNotifyOrderDTO 订单支付回调参数 */ @PostMapping("/shop/wxOrderPayNotify") void wxOrderPayNotify(@RequestBody WxPayNotifyOrderDTO wxPayNotifyOrderDTO); /** * 点击去支付订单 * @param orderPayDTO 请求参数 * @return 支付对象 */ @PostMapping("/shop/wxPay") R wxPay(@RequestBody OrderPayDTO orderPayDTO); } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java
@@ -119,8 +119,7 @@ String line = ""; StringBuffer sb = new StringBuffer(); for (line = br.readLine(); line != null; line = br.readLine()) { sb.append(br.readLine()); System.out.println(line); sb.append(line); } return sb.toString(); } catch (MalformedURLException e) { springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxPayUtils.java
@@ -1,56 +1,61 @@ package com.panzhihua.common.utlis; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.panzhihua.common.constants.PayCpmstant; import lombok.extern.slf4j.Slf4j; import org.json.XML; import java.math.BigDecimal; import java.util.Map; import java.util.SortedMap; import java.util.TreeMap; @Slf4j public class WxPayUtils { public static String getUnifiedorder(String body, String openid, String outTradeNo, BigDecimal money) throws Exception{ public static String getUnifiedorder(String appid, String mchId, String payKey, String notifyUrl, String body, String openid, String outTradeNo, BigDecimal money){ String nonceStr = PayUtil.makeUUID(32); SortedMap<Object, Object> params = new TreeMap<>(); params.put("appid", "wx0cef797390444b75"); params.put("appid", appid); params.put("body", body); params.put("mch_id", "1608439275"); params.put("mch_id", mchId); params.put("nonce_str",nonceStr); params.put("notify_url", "http://387405oo37.zicp.vip/api/applets/wx/notify"); params.put("notify_url", notifyUrl); params.put("openid", openid); params.put("out_trade_no", outTradeNo);//商品订单号 params.put("spbill_create_ip", PayUtil.getLocalIp());//服务部署的ip params.put("total_fee", PayUtil.moneyToIntegerStr(money));//费用的参数转型 params.put("trade_type", "JSAPI");//对接类型 params.put("sign", PayUtil.createSign("UTF-8", params, "01A9CB2234D7CBD0AC61B75EB1263805"));//MD5签名 params.put("sign", PayUtil.createSign(PayCpmstant.DEFAULT_ENCODING, params, payKey));//MD5签名 //转换成xml String xmlData = PayUtil.getRequestXml(params); //请求微信后台,获取支付id String resXml = HttpClientUtil.httpsRequest(PayCpmstant.UNIFIEDORDER_URL, xmlData); System.out.println(resXml); log.info("请求微信支付返回参数:" + resXml); JSONObject data = XMLUtils.xml2Json(resXml); org.json.JSONObject resultData = XML.toJSONObject(resXml); JSONObject data = JSON.parseObject(resultData.get("xml").toString()); JSONObject result = new JSONObject(); if(data.get("return_msg").equals("OK")){ if(data.get("return_msg").equals(PayCpmstant.RETURN_MSG) && data.get("return_code").equals(PayCpmstant.RETURN_CODE)){ //将微信统一下单成功的参数拼接再签名 //统一下单返回prepay_id String prepay_id = "prepay_id=" + data.getString("prepay_id"); String prepayId = "prepay_id=" + data.getString("prepay_id"); //时间戳 Long timeStamp = System.currentTimeMillis()/1000; //封装需要签名的字段 SortedMap<Object, Object> payParams = new TreeMap<>(); params.put("appid", "wx0cef797390444b75"); params.put("nonce_str",nonceStr); params.put("package",nonceStr); params.put("signType",nonceStr); params.put("timeStamp",nonceStr); payParams.put("appId", appid); payParams.put("nonceStr",nonceStr); payParams.put("package",prepayId); payParams.put("signType",PayCpmstant.SIGN_TYPE); payParams.put("timeStamp",timeStamp); //将参数以及签名计算完成封装返回给前端 result.put("timeStamp",timeStamp); result.put("nonceStr",nonceStr); result.put("package",prepay_id); result.put("signType","MD5"); result.put("paySign",PayUtil.createSign("UTF-8", payParams, "01A9CB2234D7CBD0AC61B75EB1263805")); result.put("package",prepayId); result.put("signType",PayCpmstant.SIGN_TYPE); result.put("paySign",PayUtil.createSign(PayCpmstant.DEFAULT_ENCODING, payParams, payKey)); } return result.toJSONString(); } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/XMLUtils.java
File was deleted springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ShopApi.java
@@ -467,5 +467,22 @@ return comShopOrderService.pageShopFunds(pageComShopFundsSearchDTO); } /** * 微信支付订单回调 * @param wxPayNotifyOrderDTO 订单支付回调参数 */ @PostMapping("/wxOrderPayNotify") public void wxOrderPayNotify(@RequestBody WxPayNotifyOrderDTO wxPayNotifyOrderDTO){ comShopOrderService.wxOrderPayNotify(wxPayNotifyOrderDTO); } /** * 点击去支付订单 * @param orderPayDTO 请求参数 * @return 支付对象 */ @PostMapping("/wxPay") public R wxPay(@RequestBody OrderPayDTO orderPayDTO){ return comShopOrderService.wxPay(orderPayDTO); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopGoodsDAO.java
@@ -80,6 +80,6 @@ " </if> " + " order by sale desc,create_at desc " + " </script>") IPage<ComShopGoodsVO> pageShopGoods(Page page, @Param("comShopGoodsDTO") ComShopGoodsDTO comShopGoodsDTO); IPage<ComShopGoodsVO> pageShopGoodByApps(Page page, @Param("comShopGoodsDTO") ComShopGoodsDTO comShopGoodsDTO); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderPayDO.java
@@ -73,6 +73,14 @@ @TableField(fill = FieldFill.UPDATE) private Date updateAt; /** * 支付状态(1.未支付 2.已支付) */ public interface payStatus{ int no = 1; int yes = 2; } @Override public String toString() { return "ComShopOrderPayDO{" + springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopGoodsService.java
@@ -42,8 +42,6 @@ */ R pageGoodsList(PageComShopGoodsDTO pageComShopGoodsDTO); /** * 编辑商品 * springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOrderService.java
@@ -133,4 +133,17 @@ * @return 资金订单数据 */ R pageShopFunds(PageComShopFundsSearchDTO pageComShopFundsSearchDTO); /** * 微信支付订单回调 * @param wxPayNotifyOrderDTO 订单支付回调参数 */ void wxOrderPayNotify(WxPayNotifyOrderDTO wxPayNotifyOrderDTO); /** * 用户点击去支付 * @param orderPayDTO 请求参数 * @return 返回支付对象 */ R wxPay(OrderPayDTO orderPayDTO); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopGoodsServiceImpl.java
@@ -185,7 +185,7 @@ @Override public R pageShopGoods(ComShopGoodsDTO comShopGoodsDTO){ Page page = new Page<>(comShopGoodsDTO.getPageNum(),comShopGoodsDTO.getPageSize()); return R.ok(this.baseMapper.pageShopGoods(page,comShopGoodsDTO)); return R.ok(this.baseMapper.pageShopGoodByApps(page,comShopGoodsDTO)); } /** springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java
@@ -20,11 +20,13 @@ import com.panzhihua.service_community.service.ComShopOrderService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -54,7 +56,18 @@ private ComShopOrderGoodsDAO comShopOrderGoodsDAO; @Resource private ComShopOrderDAO comShopOrderDAO; @Resource private ComShopOrderPayDAO comShopOrderPayDAO; @Value("${min.app.isTest}") private Boolean isTest; @Value("${min.app.appid}") private String appid; @Value("${min.app.payKey}") private String payKey; @Value("${min.app.mchId}") private String mchId; @Value("${min.app.notifyUrl}") private String notifyUrl; /** * 订单预览 @@ -181,7 +194,6 @@ public R orderCreate(ComShopOrderCreateDTO orderCreateDTO){ //创建返回参数 ComShopOrderVO shopOrderVO = new ComShopOrderVO(); //查询用户收货地址 ComShopUserAddressDO userAddressDO = comShopUserAddressDAO.selectById(orderCreateDTO.getReceiverId()); if(userAddressDO == null){ @@ -195,10 +207,8 @@ String orderNo = OrderNoUtils.NextOrderNo(userId); //配送方式 Integer deliveryType = 0; //订单总金额 BigDecimal orderTotal = BigDecimal.ZERO; //创建订单商品信息 List<ComShopOrderGoodsDO> orderGoodsDOList = new ArrayList<>(); if(!orderCreateDTO.getOrderGoodsList().isEmpty()){ @@ -234,12 +244,10 @@ orderTotal = orderTotal.add(orderGoodsDO.getGoodsAttrPrice().multiply(BigDecimal.valueOf(orderGoodsDO.getAmount()))); } } //如果是购物车提交,需要将购物车内商品移除 if(orderCreateDTO.getSubmitType().equals(ComShopOrderCreateDTO.submitType.cart)){ comShopCartDAO.deleteBatchIds(orderCreateDTO.getCartIds()); } //创建订单信息 ComShopOrderDO shopOrderDO = new ComShopOrderDO(); shopOrderDO.setOrderNo(orderNo); @@ -256,14 +264,12 @@ shopOrderDO.setRemark(orderCreateDTO.getRemark()); } this.baseMapper.insert(shopOrderDO); if(!orderGoodsDOList.isEmpty()){ orderGoodsDOList.forEach(orderGoods ->{ orderGoods.setOrderId(shopOrderDO.getId()); comShopOrderGoodsDAO.insert(orderGoods); }); } //创建订单操作记录 ComShopOrderOperateDO orderOperateDO = new ComShopOrderOperateDO(); orderOperateDO.setOrderNo(orderNo); @@ -277,14 +283,18 @@ orderOperateDO.setOperationBy("用户"); } comShopOrderOperateDAO.insert(orderOperateDO); shopOrderVO.setOrderNo(orderNo); shopOrderVO.setOrderTotal(orderTotal); try { BigDecimal money = orderTotal; if(isTest){ money = BigDecimal.valueOf(0.01); } //调用wx支付 String xml = WxPayUtils.getUnifiedorder("",orderCreateDTO.getOpenId(),orderNo,orderTotal); String xml = WxPayUtils.getUnifiedorder(appid,mchId,payKey,notifyUrl,"商品购买",orderCreateDTO.getOpenId(),orderNo,money); log.info("微信支付返回参数:" + xml); shopOrderVO.setPayResult(xml); }catch (Exception e){ log.error("调用微信支付异常,异常原因:" + e.getMessage()); } @@ -635,9 +645,6 @@ return R.ok(ipage); } @Override public R capitalDetailByStore(Long id) { if(id==null){ @@ -646,4 +653,109 @@ CapitalDetailVO vo = this.baseMapper.capitalDetailByStore(id); return R.ok(vo); } /** * 微信支付订单回调 * @param wxPayNotifyOrderDTO 订单支付回调参数 */ @Transactional(rollbackFor = Exception.class) @Override public void wxOrderPayNotify(WxPayNotifyOrderDTO wxPayNotifyOrderDTO){ if(StringUtils.isEmpty(wxPayNotifyOrderDTO.getOrderTradeNo())){ log.error("微信支付回调失败,订单号为空"); return; } //查询订单 ComShopOrderDO shopOrderDO = this.baseMapper.selectOne(new QueryWrapper<ComShopOrderDO>().lambda().eq(ComShopOrderDO::getOrderNo,wxPayNotifyOrderDTO.getOrderTradeNo())); if(shopOrderDO == null){ log.error("未查询到支付订单,订单回调失败,订单号:" + wxPayNotifyOrderDTO.getOrderTradeNo()); return; } shopOrderDO.setStatus(ComShopOrderDO.status.dfh); shopOrderDO.setPayType(ComShopOrderDO.payType.wx); shopOrderDO.setPayStatus(ComShopOrderDO.payStatus.yes); shopOrderDO.setPayAmount(BigDecimal.valueOf(Integer.parseInt(wxPayNotifyOrderDTO.getCashFee()) * 100)); shopOrderDO.setWxTardeNo(wxPayNotifyOrderDTO.getWxTradeNo()); shopOrderDO.setPayTime(new Date(Long.parseLong(wxPayNotifyOrderDTO.getPayTime()))); this.baseMapper.updateById(shopOrderDO); //查询订单商品 List<ComShopOrderGoodsDO> orderGoodsList = comShopOrderGoodsDAO.selectList(new QueryWrapper<ComShopOrderGoodsDO>().lambda().eq(ComShopOrderGoodsDO ::getOrderNo,shopOrderDO.getOrderNo())); if(!orderGoodsList.isEmpty()){ int goodsNub = 0; for (ComShopOrderGoodsDO orderGood:orderGoodsList) { goodsNub += orderGood.getAmount(); //更新商品信息 ComShopGoodsDO goodsDO = comShopGoodsDAO.selectById(orderGood.getGoodsId()); if(goodsDO != null){ goodsDO.setSale(goodsDO.getSale() + orderGood.getAmount()); comShopGoodsDAO.updateById(goodsDO); } //更新商品规格 ComShopGoodsAttrDO goodsAttrDO = comShopGoodsAttrDAO.selectById(orderGood.getGoodsAttrId()); if(goodsAttrDO != null){ goodsAttrDO.setSale(goodsAttrDO.getSale() + orderGood.getAmount()); comShopGoodsAttrDAO.updateById(goodsAttrDO); } } //更新店铺销量以及销售额 ComShopStoreDO storeDO = comShopStoreDAO.selectById(shopOrderDO.getStoreId()); if(storeDO != null){ storeDO.setSale(storeDO.getSale() + goodsNub); storeDO.setSaleVolume(storeDO.getSaleVolume().add(shopOrderDO.getTotalAmount())); comShopStoreDAO.updateById(storeDO); } } //添加订单操作记录 ComShopOrderOperateDO orderOperateDO = new ComShopOrderOperateDO(); orderOperateDO.setOrderNo(shopOrderDO.getOrderNo()); orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.pay); orderOperateDO.setOperationTime(new Date()); orderOperateDO.setOperationContent("用户支付订单"); orderOperateDO.setOperationBy("用户"); comShopOrderOperateDAO.insert(orderOperateDO); //添加订单支付记录表 ComShopOrderPayDO orderPayDO = new ComShopOrderPayDO(); orderPayDO.setOrderNo(shopOrderDO.getOrderNo()); orderPayDO.setOrderAmount(shopOrderDO.getTotalAmount()); orderPayDO.setWxTradeNo(wxPayNotifyOrderDTO.getWxTradeNo()); orderPayDO.setPayStatus(ComShopOrderPayDO.payStatus.yes); orderPayDO.setPayAmount(shopOrderDO.getPayAmount()); orderPayDO.setPayTime(shopOrderDO.getPayTime()); comShopOrderPayDAO.insert(orderPayDO); } /** * 订单去支付 * @param orderPayDTO 请求参数 * @return 支付对象 */ public R wxPay(OrderPayDTO orderPayDTO){ //创建返回参数 ComShopOrderVO shopOrderVO = new ComShopOrderVO(); //查询订单 ComShopOrderDO orderDO = comShopOrderDAO.selectOne(new QueryWrapper<ComShopOrderDO>().lambda().eq(ComShopOrderDO::getOrderNo,orderPayDTO.getOrderNo())); if(orderDO == null){ return R.fail("订单不存在"); } try { BigDecimal money = orderDO.getTotalAmount(); if(isTest){ money = BigDecimal.valueOf(0.01); } //调用wx支付 String xml = WxPayUtils.getUnifiedorder(appid,mchId,payKey,notifyUrl,"商品购买",orderPayDTO.getOpenId(),orderDO.getOrderNo(),money); log.info("微信支付返回参数:" + xml); shopOrderVO.setPayResult(xml); }catch (Exception e){ log.error("调用微信支付异常,异常原因:" + e.getMessage()); } return R.ok(shopOrderVO); } } springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java
@@ -76,8 +76,9 @@ boolean useragreement = requestURI.contains("useragreement"); boolean refreshToken = requestURI.contains("refreshToken"); boolean logout = requestURI.contains("logout"); boolean wxPay = requestURI.contains("wxNotify"); SafeboxRequestWrapper safeboxRequestWrapper = new SafeboxRequestWrapper(request); if (login||doc||css||js||ui||swagger||ico||docs||error||refreshToken||useragreement) { if (login||doc||css||js||ui||swagger||ico||docs||error||refreshToken||useragreement||wxPay) { //什么也不做 } else { // 获取请求头中JWT的Token springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/SercuritFilter.java
@@ -75,9 +75,10 @@ boolean contains = requestUrl.contains("/api/applets/"); boolean docs = !requestUrl.contains("docs"); boolean login = !requestUrl.contains("login"); boolean wxNotify = !requestUrl.contains("wxNotify"); boolean refreshToken = !requestUrl.contains("refreshToken"); boolean useragreement = !requestUrl.contains("useragreement"); if (contains&&docs&&login&&refreshToken&&useragreement) { if (contains&&docs&&login&&refreshToken&&useragreement&&wxNotify) { configAttributes.add(new SecurityConfig(SecurityConstants.ROLE_APPLETS)); } return configAttributes;