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.jarBinary files differ