package com.doumee.config.wx; import com.alibaba.fastjson.JSONObject; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.constants.Constants; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.utils.DateUtil; import com.doumee.core.utils.HttpsUtil; import com.doumee.dao.business.WithdrawalOrdersMapper; import com.doumee.dao.business.model.Orders; import com.doumee.dao.business.model.WithdrawalOrders; import com.doumee.dao.system.model.SystemDictData; import com.wechat.pay.java.service.refund.model.AmountReq; import com.wechat.pay.java.service.refund.model.CreateRequest; import com.wechat.pay.java.service.refund.model.QueryByOutRefundNoRequest; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.math.BigDecimal; import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.Objects; /** * 微信小程序-公共方法 */ @Service @Slf4j public class WxMiniUtilService { @Autowired private WithdrawalOrdersMapper withdrawalOrdersMapper; @Autowired private SystemDictDataBiz systemDictDataBiz; @Autowired private WxPayProperties wxPayProperties; @Transactional(rollbackFor = {BusinessException.class,Exception.class}) public boolean wxRefund(WithdrawalOrders withdrawalOrders,Orders orders) { // // 发送退款请求 // withdrawalOrders.setCreateTime(new Date()); // withdrawalOrdersMapper.insert(withdrawalOrders); // CreateRequest request = new CreateRequest(); // request.setOutTradeNo(orders.getOutTradeNo()); // request.setOutRefundNo(withdrawalOrders.getId().toString()); // request.setSubMchid(WxMiniConfig.wxProperties.getSubMchId()); // request.setNotifyUrl(WxMiniConfig.wxProperties.getRefundNotifyUrl()); // AmountReq amountReq = new AmountReq(); // amountReq.setTotal(1L);//withdrawalOrders.getAmount()); // amountReq.setRefund(1L);//withdrawalOrders.getAmount()); // amountReq.setCurrency("CNY"); // request.setAmount(amountReq); // try { // log.error("=============="+JSONObject.toJSONString(request)); // com.wechat.pay.java.service.refund.model.Refund response = WxMiniConfig.wxPayService.refund(request); // log.error("=============="+JSONObject.toJSONString(response)); // if ("SUCCESS".equals(response.getStatus().name()) // || "PROCESSING".equals(response.getStatus().name()) ) { // return true; // }else{ // throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,退款申请失败哦!"); // } // }catch (Exception e){ // e.printStackTrace(); // throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,退款申请失败!"); // } return false; } }