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