101captain
2022-06-22 1e322e359ad16e6bd48f3f5f30d3f1fcde564942
bug修改
4个文件已修改
2个文件已添加
159 ■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/applets/pom.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommonApi.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UserApi.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxCallbackApi.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/umf/UmfPayUtil.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/lib/UMF_SDK_V01.jar 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/pom.xml
@@ -65,6 +65,13 @@
            <artifactId>minio</artifactId>
            <version>6.0.8</version>
        </dependency>
        <dependency>
            <groupId>com.panzhihua</groupId>
            <artifactId>UMF</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/src/main/resources/lib/UMF_SDK_V01.jar</systemPath>
        </dependency>
    </dependencies>
    <build>
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommonApi.java
@@ -1,20 +1,21 @@
package com.panzhihua.applets.api;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
import java.util.Base64;
import java.util.List;
import java.util.UUID;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import com.jcraft.jsch.SftpException;
import com.panzhihua.applets.config.MinioUtil;
import com.panzhihua.applets.umf.UmfPayUtil;
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.utlis.DateUtils;
import net.coobird.thumbnailator.Thumbnails;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang3.RandomUtils;
@@ -205,4 +206,21 @@
        String result = HttpUtils.sendGet(url, param);
        return R.ok(JSON.parseObject(result));
    }
    @ApiOperation("uu洗车下单接口")
    @GetMapping("/uuPay")
    public R uuPay(@RequestParam("orderid") String orderid,@RequestParam("openid")String openid,@RequestParam("amount")String amount){
        SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
        sftp.login();
        try {
            sftp.download("/mnt/data/web/excel/", "53461_.key.p8", "D:/mnt/data/web/file/53461_.key.p8");
        } catch (SftpException e) {
            e.printStackTrace();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        sftp.logout();
        UmfPayUtil umfPayUtil=new UmfPayUtil();
        Map map=umfPayUtil.pay(openid, DateUtils.getCurrentDateString(),openid,amount);
        return R.ok(map);
    }
}
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UserApi.java
@@ -2,31 +2,22 @@
import static java.util.stream.Collectors.toList;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import com.panzhihua.applets.umf.UmfPayUtil;
import com.panzhihua.common.constants.HttpStatus;
import com.panzhihua.common.model.vos.community.rentHouse.WxPayOrderVO;
import com.panzhihua.common.utlis.DateUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.util.ObjectUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxCallbackApi.java
@@ -101,4 +101,71 @@
            e.printStackTrace();
        }
    }
    @PostMapping("wxNotifyAll")
    public void payCallbackAll(HttpServletRequest request, HttpServletResponse response) {
        log.info("微信支付回调start");
        String inputLine = "";
        String notityXml = "";
        try {
            while ((inputLine = request.getReader().readLine()) != null) {
                notityXml += inputLine;
            }
            // 关闭流
            request.getReader().close();
            log.info("微信回调内容信息:" + notityXml);
            // 解析成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);
                    // 封装 返回值
                    StringBuffer buffer = new StringBuffer();
                    buffer.append("<xml>");
                    buffer.append("<return_code>SUCCESS</return_code>");
                    buffer.append("<return_msg>OK</return_msg>");
                    buffer.append("</xml>");
                    // 给微信服务器返回 成功标示 否则会一直询问 咱们服务器 是否回调成功
                    PrintWriter writer = response.getWriter();
                    // 返回
                    writer.print(buffer.toString());
                } 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();
        }
    }
}
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/umf/UmfPayUtil.java
New file
@@ -0,0 +1,40 @@
package com.panzhihua.applets.umf;
import com.umf.api.service.UmfService;
import com.umf.api.service.UmfServiceImpl;
import java.util.HashMap;
import java.util.Map;
import static com.umf.api.service.UmfServiceImpl.printResult;
/**
 * @author zzj
 */
public class UmfPayUtil {
    public Map pay(String orderid,String merdate,String openid,String amount){
        Map reqMapPublic = preparePublic(orderid,merdate,openid,amount);
        UmfService instance = new UmfServiceImpl("53461","/mnt/data/web/file/53461_.key.p8");
        Map respMap = instance.miniProgramPayMap(reqMapPublic);
        return respMap;
    }
    //小程序支付请求参数
    public static Map preparePublic(String orderid,String merdate,String openid,String amount) {
        Map reqMap = new HashMap();
        reqMap.put("mer_id","53461");
        reqMap.put("notify_url","http://xxx.xxx.com");
        reqMap.put("goods_inf","商品描述");
        reqMap.put("order_id",orderid);
        reqMap.put("mer_date",merdate);
        reqMap.put("amount",amount);
        reqMap.put("app_id","wx118de8a734d269f0");
        reqMap.put("open_id",openid);
        reqMap.put("scancode_type","WECHAT");
        return reqMap;
    }
}
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/lib/UMF_SDK_V01.jar
Binary files differ