2021与蓝度共同重构项目,服务端
liuhaonan
2022-10-25 d495f9b8cdc83663e4189bc3cc72ac9543ff5555
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/AliPayUtils.java
@@ -11,8 +11,8 @@
import com.sandu.ximon.admin.config.AlipayConfig;
import com.sandu.ximon.admin.pay.alipay.UsrAlipayConfigService;
import com.sandu.ximon.dao.domain.AliConfigEntity;
import com.sandu.ximon.dao.domain.WxConfigEntity;
import lombok.AllArgsConstructor;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -23,23 +23,23 @@
    public static boolean alipayQuery(String out_trade_no, Long streetlightId) {
        AliConfigEntity WxConfigEntity = UsrAlipayConfigService.getBean().getConfigByPoleId(streetlightId);// 获取客户的支付宝配置
        String checkStr = ConfigCheckUtils.checkAlipayConfig(WxConfigEntity);
        if( checkStr != null){
        AliConfigEntity aliConfigEntity = UsrAlipayConfigService.getBean().getConfigByPoleId(streetlightId);// 获取客户的支付宝配置
        String checkStr = ConfigCheckUtils.checkAlipayConfig(aliConfigEntity);
        if (checkStr != null) {
            LogUtils.error("查询失败");
            return false;
        }
        //获得初始化的AlipayClient
        AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl,
                WxConfigEntity.getAppId(), WxConfigEntity.getPrivateKey(),
                AlipayConfig.format, AlipayConfig.charset, WxConfigEntity.
                aliConfigEntity.getAppId(), aliConfigEntity.getPrivateKey(),
                AlipayConfig.format, AlipayConfig.charset, aliConfigEntity.
                getPublicKey(), AlipayConfig.sign_type);
        //设置请求参数
        AlipayTradeQueryRequest alipayRequest = new AlipayTradeQueryRequest();
        //商户订单号,商户网站订单系统中唯一订单号
        alipayRequest.setBizContent("{\"out_trade_no\":\""+ out_trade_no +"\"}");
        alipayRequest.setBizContent("{\"out_trade_no\":\"" + out_trade_no + "\"}");
        //请求
        String result = null;
@@ -48,19 +48,19 @@
        } catch (AlipayApiException e) {
            e.printStackTrace();
        }
        Map map = (Map) new Gson().fromJson(result,Map.class).get("alipay_trade_query_response");
        Map map = (Map) new Gson().fromJson(result, Map.class).get("alipay_trade_query_response");
        if (map.get("sub_msg") != null) {
            if ("交易不存在".equals(map.get("sub_msg"))) {
                return false;
            }
        }
        if(map.get("trade_status")==null){
        if (map.get("trade_status") == null) {
            return false;
        }
        if("TRADE_SUCCESS".equals(map.get("trade_status"))){
        if ("TRADE_SUCCESS".equals(map.get("trade_status"))) {
//            String payTime = (String) map.get("send_pay_date");
            return true;
        }else if("TRADE_CLOSED".equals(map.get("trade_status"))){
        } else if ("TRADE_CLOSED".equals(map.get("trade_status"))) {
            LogUtils.error("交易已关闭(支付宝)");
            return false;
        }
@@ -68,32 +68,32 @@
    }
    /**
     * 支付宝退款接口
     *
     * @return
     */
    public static boolean alipayrefund(Long streetlightId,
                                String out_trade_no,
                                Double refundAmount) {
                                       String out_trade_no,
                                       Double refundAmount) {
        //LogService.getBean().log((long)0, ServerTask.SERVER_TASK,"退款操作",null,"{ 进行支付宝退款:"+out_trade_no+" }");
        //退款金额,不能大于订单总金额
        String refund_amount = refundAmount+"";
        String refund_amount = refundAmount + "";
        //退款的原因说明
        String refund_reason = "充电桩退款";
        //标识一次退款请求,同一笔交易多次退款需要保证唯一,如需部分退款,则此参数必传。
        String  out_request_no = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
        String out_request_no = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
        AliConfigEntity WxConfigEntity = UsrAlipayConfigService.getBean().getConfigByPoleId(streetlightId);   //找到是哪个客户的充电桩  就退款给谁
        String checkStr = ConfigCheckUtils.checkAlipayConfig(WxConfigEntity);
        if( checkStr != null){
        AliConfigEntity AliConfigEntity = UsrAlipayConfigService.getBean().getConfigByPoleId(streetlightId);   //找到是哪个客户的充电桩  就退款给谁
        String checkStr = ConfigCheckUtils.checkAlipayConfig(AliConfigEntity);
        if (checkStr != null) {
            return false;
        }
        // SDK 公共请求类,包含公共请求参数,以及封装了签名与验签,开发者无需关注签名与验签
        AlipayClient client = new DefaultAlipayClient(AlipayConfig.gatewayUrl, WxConfigEntity.getAppId(),
                WxConfigEntity.getPrivateKey(), AlipayConfig.format,
                AlipayConfig.charset, WxConfigEntity.getPublicKey(), AlipayConfig.sign_type);
        AlipayClient client = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AliConfigEntity.getAppId(),
                AliConfigEntity.getPrivateKey(), AlipayConfig.format,
                AlipayConfig.charset, AliConfigEntity.getPublicKey(), AlipayConfig.sign_type);
        AlipayTradeRefundRequest alipay_request = new AlipayTradeRefundRequest();
        AlipayTradeRefundModel model = new AlipayTradeRefundModel();
        model.setOutTradeNo(out_trade_no);
@@ -110,13 +110,13 @@
            e.printStackTrace();
        }
//        System.out.println(alipay_response.getBody());
        if("10000".equals(alipay_response.getCode())){
        if ("10000".equals(alipay_response.getCode())) {
            //  退款成功
         //   LogService.getBean().log((long)0, ServerTask.SERVER_TASK,"退款操作",null,"{ 进行支付宝退款(成功):"+out_trade_no+",退款金额:"+refundAmount+" }");
            //   LogService.getBean().log((long)0, ServerTask.SERVER_TASK,"退款操作",null,"{ 进行支付宝退款(成功):"+out_trade_no+",退款金额:"+refundAmount+" }");
            return true;
        }
        //保存退款金额和退款单号,将订单状态置为完成(RFERROR),保存到数据库
      //  LogService.getBean().log((long)0, ServerTask.SERVER_TASK,"退款操作",null,"{ 进行支付宝退款(失败):"+out_trade_no+",退款金额:"+refundAmount+",reason: "+ JSON.toJSONString(alipay_response)+" }");
        //  LogService.getBean().log((long)0, ServerTask.SERVER_TASK,"退款操作",null,"{ 进行支付宝退款(失败):"+out_trade_no+",退款金额:"+refundAmount+",reason: "+ JSON.toJSONString(alipay_response)+" }");
        return false;
    }