From 098fbb51845dbda46ceed0cfff6e818d3636aa51 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 14 Feb 2023 13:15:15 +0800
Subject: [PATCH] 微信支付,去掉了auth_code参数

---
 src/main/java/cc/mrbird/febs/pay/model/JsApiPayReqData.java |   56 +++++-----
 src/test/java/cc/mrbird/febs/ProfitTest.java                |  137 ++++++++++++++++----------
 src/main/resources/application-dev.yml                      |    2 
 src/test/java/cc/mrbird/febs/PayTest.java                   |   51 ++++++++--
 4 files changed, 152 insertions(+), 94 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/pay/model/JsApiPayReqData.java b/src/main/java/cc/mrbird/febs/pay/model/JsApiPayReqData.java
index 1ab1b2f..ae43745 100644
--- a/src/main/java/cc/mrbird/febs/pay/model/JsApiPayReqData.java
+++ b/src/main/java/cc/mrbird/febs/pay/model/JsApiPayReqData.java
@@ -18,30 +18,30 @@
 public class JsApiPayReqData {
 
     //每个字段具体的意思请查看API文档
-    private String appid = "";
-    private String mch_id = "";
-    private String device_info = "";
-    private String nonce_str = "";
-    private String sign = "";
-    private String body = "";
-    private String detail = "";
-    private String attach = "";
-    private String out_trade_no = "";
-    private String fee_type = "";
-    private int total_fee = 0;
+    private String appid = "";//公众账号ID
+    private String mch_id = "";//商户号
+    private String device_info = "";//设备号
+    private String nonce_str = "";//随机字符串
+    private String sign = "";//签名
+    private String body = "";//商品描述
+    private String detail = "";//商品详情
+    private String attach = "";//附加数据
+    private String out_trade_no = "";//商户订单号
+    private String fee_type = "";//标价币种
+    private int total_fee = 0;//标价金额
     /**
      * 接收微信支付异步通知回调地址
      */
-    private String trade_type = WechatConfigure.TRADE_TYPE_JSAPI;
-    private String notify_url ;
-    private String openid = "";
-    private String limit_pay = "";
-    private String spbill_create_ip = "";
-    private String product_id = "";
-    private String time_start = "";
-    private String time_expire = "";
-    private String goods_tag = "";
-    private String auth_code = "";
+    private String trade_type = WechatConfigure.TRADE_TYPE_JSAPI;//交易类型
+    private String notify_url ;//通知地址
+    private String openid = "";//用户标识
+    private String limit_pay = "";//指定支付方式
+    private String spbill_create_ip = "";//终端IP
+    private String product_id = "";//商品ID
+    private String time_start = "";//交易起始时间
+    private String time_expire = "";//交易结束时间
+    private String goods_tag = "";//订单优惠标记
+//    private String auth_code = "";//
 
     
     public JsApiPayReqData() {
@@ -268,13 +268,13 @@
         this.goods_tag = goods_tag;
     }
 
-    public String getAuth_code() {
-        return auth_code;
-    }
-
-    public void setAuth_code(String auth_code) {
-        this.auth_code = auth_code;
-    }
+//    public String getAuth_code() {
+//        return auth_code;
+//    }
+//
+//    public void setAuth_code(String auth_code) {
+//        this.auth_code = auth_code;
+//    }
 
     public Map<String,Object> toMap(){
         Map<String,Object> map = new HashMap<String, Object>();
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 7d1cf01..3f5844d 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -81,4 +81,4 @@
   serviceName: yiyuanshucai
 
 system:
-  job: false
\ No newline at end of file
+  job: true
\ No newline at end of file
diff --git a/src/test/java/cc/mrbird/febs/PayTest.java b/src/test/java/cc/mrbird/febs/PayTest.java
index ede5efa..01314e0 100644
--- a/src/test/java/cc/mrbird/febs/PayTest.java
+++ b/src/test/java/cc/mrbird/febs/PayTest.java
@@ -1,13 +1,23 @@
 package cc.mrbird.febs;
 
+import cc.mrbird.febs.common.properties.XcxProperties;
+import cc.mrbird.febs.common.utils.RedisUtils;
+import cc.mrbird.febs.common.utils.SpringContextHolder;
+import cc.mrbird.febs.pay.util.WechatConfigure;
+import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.alipay.api.AlipayApiException;
 import com.alipay.api.domain.AlipayTradeAppPayModel;
 import com.alipay.api.response.AlipayTradeAppPayResponse;
+import com.baomidou.mybatisplus.extension.exceptions.ApiException;
 import com.ijpay.alipay.AliPayApi;
 import lombok.extern.slf4j.Slf4j;
 import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.web.client.RestTemplate;
+
+import javax.annotation.Resource;
 
 /**
  * @author wzy
@@ -17,17 +27,36 @@
 @SpringBootTest
 public class PayTest {
 
+
+    @Autowired
+    private RedisUtils redisUtils;
+    @Resource
+    RestTemplate restTemplate;
     @Test
-    public void aliPay() throws AlipayApiException {
-        AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
-        model.setBody("这是测试用");
-        model.setSubject("支付测试用的");
-        model.setOutTradeNo("2021092712215802974");
-        model.setTimeoutExpress("15m");
-        model.setTotalAmount("0.01");
-        model.setPassbackParams("callback params");
-        model.setProductCode("QUICK_MSECURITY_PAY");
-        AlipayTradeAppPayResponse resp = AliPayApi.appPayToResponse(model, "");
-        log.info("=====>>>{}", JSONObject.toJSONString(resp));
+    public void aliPay(){
+
+        String appId = "wxfb1acf504eb9d058";
+        String appSecret = "7ee226a964b1be7cfb96f5e0dc739c44";
+        String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appId + "&secret=" + appSecret;
+        String jsonStr = restTemplate.getForObject(url, String.class);
+
+        /**
+         * 返回结果
+         * {"access_token":"ACCESS_TOKEN","expires_in":7200}
+         */
+        if (!jsonStr.contains("access_token")) {
+            System.out.println("获取微信access_token失败");
+        }
+
+        String accessTokenKey = WechatConfigure.WX_ACCESS_TOKEN_REDIS_KEY;
+        JSONObject jsonObject = JSONObject.parseObject(jsonStr);
+        String accessToken = jsonObject.getString(accessTokenKey);
+        if (StrUtil.isEmpty(accessToken)) {
+            log.error("获取access token失败: {}" , jsonObject.getString("errmsg"));
+            throw new ApiException("获取access token失败");
+        } else {
+            log.info("wx access_token : {}",accessToken);
+            redisUtils.set(accessTokenKey,accessToken);
+        }
     }
 }
diff --git a/src/test/java/cc/mrbird/febs/ProfitTest.java b/src/test/java/cc/mrbird/febs/ProfitTest.java
index a23900d..fa3a8ef 100644
--- a/src/test/java/cc/mrbird/febs/ProfitTest.java
+++ b/src/test/java/cc/mrbird/febs/ProfitTest.java
@@ -5,14 +5,17 @@
 import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
 import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
 import cc.mrbird.febs.common.enumerates.OrderStatusEnum;
+import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.common.utils.HttpCurlUtil;
 import cc.mrbird.febs.common.utils.MallUtils;
 import cc.mrbird.febs.common.utils.RedisUtils;
 import cc.mrbird.febs.mall.dto.AdminLeaderAddFenceDto;
 import cc.mrbird.febs.mall.dto.ApiLeaderRefundOrderDto;
+import cc.mrbird.febs.mall.dto.ApiRechargeWalletDto;
 import cc.mrbird.febs.mall.entity.*;
 import cc.mrbird.febs.mall.mapper.*;
 import cc.mrbird.febs.mall.service.*;
+import cc.mrbird.febs.pay.model.BrandWCPayRequestData;
 import cc.mrbird.febs.pay.model.WxGenerateQrCodeDto;
 import cc.mrbird.febs.pay.service.IXcxPayService;
 import cc.mrbird.febs.pay.util.WechatConfigure;
@@ -411,62 +414,88 @@
 
     @Test
     public void qrcode(){
-        MallMember member = mallMemberMapper.selectById(58L);
-        Long id = 320L;
+        MallMember member = mallMemberMapper.selectById(402L);
+        
+//        ApiRechargeWalletDto apiRechargeWalletDto = new ApiRechargeWalletDto();
+//        apiRechargeWalletDto.setAmount(new BigDecimal(1));
+//        apiRechargeWalletDto.setMemberId(402L);
+//        BrandWCPayRequestData brandWCPayRequestData = null;
+//        try {
+//            brandWCPayRequestData = iXcxPayService.startRechargeWallet(apiRechargeWalletDto);
+//        } catch (Exception e) {
+//            throw new FebsException("支付失败");
+//        }
+//        String wxResultStr = JSONUtil.toJsonStr(brandWCPayRequestData);
+//        String payResultStr = brandWCPayRequestData.getPrepay_id();
+//        Map<String, Object> map = new HashMap<>();
+//        map.put("orderInfo", payResultStr);
+//        map.put("wxResultStr", wxResultStr);
+        
+        Long id = 345417L;
         MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(id);
-        if(ObjectUtil.isEmpty(mallOrderInfo)){
+        BrandWCPayRequestData brandWCPayRequestData = null;
+        try {
+            brandWCPayRequestData = iXcxPayService.startPayment(mallOrderInfo);
+        } catch (Exception e) {
+            throw new FebsException("支付失败");
         }
-        Integer status = mallOrderInfo.getStatus();
-        if(OrderStatusEnum.WAIT_SHIPPING.getValue() != status){
-        }
-        Integer deliveryState = mallOrderInfo.getDeliveryState();
-        if(1 != deliveryState){
-        }
-        //根据子订单生成退款记录
-        List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(id);
-        if(CollUtil.isEmpty(mallOrderItemList)){
-        }
-        for(MallOrderItem mallOrderItem : mallOrderItemList){
-            QueryWrapper<MallRefundEntity> objectQueryWrapper = new QueryWrapper<>();
-            objectQueryWrapper.eq("member_id",member.getId());
-            objectQueryWrapper.eq("order_id",mallOrderInfo.getId());
-            objectQueryWrapper.eq("item_id",mallOrderItem.getId());
-            MallRefundEntity mallRefund = mallRefundMapper.selectOne(objectQueryWrapper);
-            MallRefundEntity mallRefundEntity = new MallRefundEntity();
-            if(ObjectUtil.isEmpty(mallRefund)){
-                mallRefundEntity.setRefundNo(mallOrderInfo.getOrderNo()+"_RITEM"+mallOrderItem.getId());
-                mallRefundEntity.setMemberId(member.getId());
-                mallRefundEntity.setOrderId(mallOrderInfo.getId());
-                mallRefundEntity.setItemId(mallOrderItem.getId());
-                if("余额支付".equals(mallOrderInfo.getPayMethod())){
-                    mallRefundEntity.setType(3);
-                }else if("微信支付".equals(mallOrderInfo.getPayMethod())){
-                    mallRefundEntity.setType(1);
-                }else{
-                    mallRefundEntity.setType(3);
-                }
-                mallRefundEntity.setState(3);
-                mallRefundEntity.setAmount(mallOrderItem.getAmount());
-                mallRefundMapper.insert(mallRefundEntity);
-            }else{
-                if(mallRefund.getState() == 2){
-                    mallRefundEntity.setId(mallRefund.getId());
-                    mallRefundEntity.setRefundNo(mallRefund.getRefundNo());
-                    mallRefundEntity.setMemberId(mallRefund.getMemberId());
-                    mallRefundEntity.setOrderId(mallRefund.getOrderId());
-                    mallRefundEntity.setItemId(mallRefund.getItemId());
-                    mallRefundEntity.setType(mallRefund.getType());
-                    mallRefundEntity.setState(3);
-                    mallRefundEntity.setAmount(mallRefund.getAmount());
-                    mallRefundMapper.updateById(mallRefundEntity);
-                }
-            }
-            ApiLeaderRefundOrderDto apiLeaderRefundOrderDto = new ApiLeaderRefundOrderDto();
-            apiLeaderRefundOrderDto.setOrderId(mallOrderInfo.getId());
-            apiLeaderRefundOrderDto.setItemId(mallOrderItem.getId());
-            apiLeaderRefundOrderDto.setAgreeState(1);
-            iApiMallTeamLeaderService.leaderRefundOrder(apiLeaderRefundOrderDto);
-        }
+        String s = JSONUtil.toJsonStr(brandWCPayRequestData);
+        String prepay_id = brandWCPayRequestData.getPrepay_id();
+        
+        
+//        if(ObjectUtil.isEmpty(mallOrderInfo)){
+//        }
+//        Integer status = mallOrderInfo.getStatus();
+//        if(OrderStatusEnum.WAIT_SHIPPING.getValue() != status){
+//        }
+//        Integer deliveryState = mallOrderInfo.getDeliveryState();
+//        if(1 != deliveryState){
+//        }
+//        //根据子订单生成退款记录
+//        List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(id);
+//        if(CollUtil.isEmpty(mallOrderItemList)){
+//        }
+//        for(MallOrderItem mallOrderItem : mallOrderItemList){
+//            QueryWrapper<MallRefundEntity> objectQueryWrapper = new QueryWrapper<>();
+//            objectQueryWrapper.eq("member_id",member.getId());
+//            objectQueryWrapper.eq("order_id",mallOrderInfo.getId());
+//            objectQueryWrapper.eq("item_id",mallOrderItem.getId());
+//            MallRefundEntity mallRefund = mallRefundMapper.selectOne(objectQueryWrapper);
+//            MallRefundEntity mallRefundEntity = new MallRefundEntity();
+//            if(ObjectUtil.isEmpty(mallRefund)){
+//                mallRefundEntity.setRefundNo(mallOrderInfo.getOrderNo()+"_RITEM"+mallOrderItem.getId());
+//                mallRefundEntity.setMemberId(member.getId());
+//                mallRefundEntity.setOrderId(mallOrderInfo.getId());
+//                mallRefundEntity.setItemId(mallOrderItem.getId());
+//                if("余额支付".equals(mallOrderInfo.getPayMethod())){
+//                    mallRefundEntity.setType(3);
+//                }else if("微信支付".equals(mallOrderInfo.getPayMethod())){
+//                    mallRefundEntity.setType(1);
+//                }else{
+//                    mallRefundEntity.setType(3);
+//                }
+//                mallRefundEntity.setState(3);
+//                mallRefundEntity.setAmount(mallOrderItem.getAmount());
+//                mallRefundMapper.insert(mallRefundEntity);
+//            }else{
+//                if(mallRefund.getState() == 2){
+//                    mallRefundEntity.setId(mallRefund.getId());
+//                    mallRefundEntity.setRefundNo(mallRefund.getRefundNo());
+//                    mallRefundEntity.setMemberId(mallRefund.getMemberId());
+//                    mallRefundEntity.setOrderId(mallRefund.getOrderId());
+//                    mallRefundEntity.setItemId(mallRefund.getItemId());
+//                    mallRefundEntity.setType(mallRefund.getType());
+//                    mallRefundEntity.setState(3);
+//                    mallRefundEntity.setAmount(mallRefund.getAmount());
+//                    mallRefundMapper.updateById(mallRefundEntity);
+//                }
+//            }
+//            ApiLeaderRefundOrderDto apiLeaderRefundOrderDto = new ApiLeaderRefundOrderDto();
+//            apiLeaderRefundOrderDto.setOrderId(mallOrderInfo.getId());
+//            apiLeaderRefundOrderDto.setItemId(mallOrderItem.getId());
+//            apiLeaderRefundOrderDto.setAgreeState(1);
+//            iApiMallTeamLeaderService.leaderRefundOrder(apiLeaderRefundOrderDto);
+//        }
     }
 
     /**

--
Gitblit v1.9.1