springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxCallbackApi.java
@@ -12,6 +12,8 @@ import com.panzhihua.applets.umf.MyAESUtil; import com.panzhihua.applets.umf.UmfPayUtil; import com.panzhihua.applets.unionpay.Refund; import com.panzhihua.common.model.dtos.wx.UnionpayCarWash; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.service.user.UserService; import com.panzhihua.common.utlis.DateUtils; @@ -126,6 +128,7 @@ e.printStackTrace(); } } @GetMapping("wxNotifyAll") public void payCallbackAll(HttpServletRequest request, HttpServletResponse response) { //获取联动发送请求的参数 @@ -166,14 +169,76 @@ out.flush(); out.close(); } /** * 银联支付回调专用 银联方面只能是有个post * @param request * @param response */ @PostMapping("wxNotifyAllUnionpay") public void payCallbackAllUnionpay(HttpServletRequest request, HttpServletResponse response) { //获取联动发送请求的参数 String requestParam = request.getQueryString(); log.error("花城洗车请求参数 :" + requestParam); System.out.println("花城洗车请求参数 :" + requestParam); //调用异步通知解析方法 UmfService service = new UmfServiceImpl("53461",file); Map respMap = null; try { respMap = service.notifyDataParserMap(requestParam); } catch (Exception e) { e.printStackTrace(); } if(respMap.get("error_code").equals("0000")){ //调用uu洗车支付成功回调 Map map=new HashMap(); map.put("orderId",respMap.get("order_id")); HttpClientUtil.sendPostByJson("https://uu-api.imashuo.com/notify/wx/pzh-pay",JSONObject.toJSONString(map), 1,"appid","10000"); log.error("花城洗车回调成功 :" + respMap.get("order_id")); } //调用SDK生成返回联动平台字符串,加到CONTENT中 String resMetaData = service.responseUMFMap(respMap); response.setContentType("text/html;charset=utf-8"); PrintWriter out = null; try { out = response.getWriter(); } catch (IOException e) { e.printStackTrace(); } out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<HTML>"); out.println("<HEAD><META NAME=\"MobilePayPlatform\" CONTENT=\"" + resMetaData + "\" /></HEAD>"); out.println("<BODY>"); out.println("</BODY>"); out.println("</HTML>"); out.flush(); out.close(); } @ApiOperation("uu洗车退款接口") @PostMapping("/uuRepay") public R uuRepay(@RequestBody String aesString){ public R uuRepay(@RequestBody String aesString) { try { Map<String, String> aesMap= (Map<String, String>) JSON.parse(aesString); String desString=MyAESUtil.Decrypt(aesMap.get("aesString"),"Ryo7M3n8loC5Abcd"); Map<String,String> desMap= (Map) JSON.parse(desString); Map map=umfPayUtil.repay(desMap.get("orderId"),desMap.get("merdate"), DateUtils.getDateFormatString(new Date(),"yyMMddHHmmss")+"0001",desMap.get("refundAmount"),desMap.get("orgAmount")); Map map=umfPayUtil.repay(desMap.get("orderId"),desMap.get("merdate"), DateUtils.getDateFormatString(new Date(), "yyMMddHHmmss")+"0001",desMap.get("refundAmount"),desMap.get("orgAmount")); if(desMap.get("orderId")!=null) { R r=communityService.queryById(desMap.get("orderId")); UnionpayCarWash wash=(UnionpayCarWash)r.getData(); if(wash!=null) { String re=Refund.sendOrder(wash.getMoney(),wash.getUnionpayOrderId()); map.put("unionpay","退款成功"); } } return R.ok(map); } catch (Exception e) { e.printStackTrace(); springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/UnifiedOrder.java
@@ -42,8 +42,6 @@ @Component public class UnifiedOrder { @Value("${umf.notify_url}") static String NOTIFYURL; // static String url = "https://test-api-open.chinaums.com/v1/netpay/wx/unified-order"; static String url = "https://api-mop.chinaums.com/v1/netpay/wx/unified-order"; @@ -62,7 +60,7 @@ reqBody.secureTransaction = "false"; reqBody.orderDesc = orderDesc; reqBody.productId = productId; reqBody.notifyUrl = "https://huacheng.psciio.com/api/huacheng-applets/wx/wxNotifyAll"; reqBody.notifyUrl = "https://huacheng.psciio.com/api/huacheng-applets/wx/wxNotifyAllUnionpay"; reqBody.tradeType = "MINI"; reqBody.subOpenId = OpenId; springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/wx/UnionpayCarWash.java
New file @@ -0,0 +1,26 @@ package com.panzhihua.common.model.dtos.wx; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; @Data @Builder @AllArgsConstructor @NoArgsConstructor @ApiModel("银联支付和洗车订单关联表") public class UnionpayCarWash { @ApiModelProperty(value = "主键") private String id; @ApiModelProperty(value = "洗车id") private String carWashId; @ApiModelProperty(value = "银联id") private String unionpayOrderId; @ApiModelProperty(value = "交易金额") private String money; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -11215,4 +11215,16 @@ @GetMapping("/pudaScreen/specialPeople") R specialPeople(); /** * 通过洗车订单查询银联订单 * * @param Id * @return */ @GetMapping("/unionpay/detail") R queryById(@RequestParam("Id") String id); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/UnionpayCarWashApi.java
New file @@ -0,0 +1,29 @@ package com.panzhihua.service_community.api; import com.panzhihua.common.model.vos.R; import com.panzhihua.service_community.service.UnionpayCarWashService; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; @Slf4j @RestController @RequestMapping("/unionpay") public class UnionpayCarWashApi { @Resource private UnionpayCarWashService unionpayCarWashService; @GetMapping("/detail") public R queryById(@RequestParam("Id") String id) { return R.ok(unionpayCarWashService.queryById(id)); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/UnionpayCarWashDao.java
New file @@ -0,0 +1,14 @@ package com.panzhihua.service_community.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.panzhihua.service_community.entity.UnionpayCarWash; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @Mapper public interface UnionpayCarWashDao extends BaseMapper<UnionpayCarWash> { UnionpayCarWash queryById(@Param("carWashId") String carWashId); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/UnionpayCarWash.java
New file @@ -0,0 +1,26 @@ package com.panzhihua.service_community.entity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; @Data @Builder @AllArgsConstructor @NoArgsConstructor @ApiModel("银联支付和洗车订单关联表") public class UnionpayCarWash { @ApiModelProperty(value = "主键") private String id; @ApiModelProperty(value = "洗车id") private String carWashId; @ApiModelProperty(value = "银联id") private String unionpayOrderId; @ApiModelProperty(value = "交易金额") private String money; } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/UnionpayCarWashService.java
New file @@ -0,0 +1,8 @@ package com.panzhihua.service_community.service; import com.panzhihua.service_community.entity.UnionpayCarWash; public interface UnionpayCarWashService { UnionpayCarWash queryById(String carWashId); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/UnionpayCarWashServiceImpl.java
New file @@ -0,0 +1,32 @@ package com.panzhihua.service_community.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.common.model.vos.R; import com.panzhihua.service_community.dao.AutomessageSysUserDao; import com.panzhihua.service_community.dao.UnionpayCarWashDao; import com.panzhihua.service_community.entity.AutomessageSysUser; import com.panzhihua.service_community.entity.UnionpayCarWash; import com.panzhihua.service_community.service.AutomessageSysUserService; import com.panzhihua.service_community.service.UnionpayCarWashService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; /** * @ClassName: UnionpayCarWashServiceImpl * @Author: yh * @Date: 2022/10/21 9:39 * @Description: */ @Slf4j @Service public class UnionpayCarWashServiceImpl extends ServiceImpl<UnionpayCarWashDao, UnionpayCarWash> implements UnionpayCarWashService { @Override public UnionpayCarWash queryById(String carWashId) { return baseMapper.queryById(carWashId); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/unionpay_car_wash.xml
New file @@ -0,0 +1,24 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.panzhihua.service_community.dao.UnionpayCarWashDao"> <resultMap type="com.panzhihua.service_community.entity.UnionpayCarWash" id="UnionpayCarWashMap"> <result property="id" column="id"/> <result property="carWashId" column="car_wash_id"/> <result property="unionpayOrderId" column="unionpay_order_id"/> <result property="money" column="money"/> </resultMap> <!--查询单个--> <select id="queryById" resultMap="UnionpayCarWashMap"> select id, car_wash_id, unionpay_order_id, money from unionpay_car_wash where car_wash_id = #{carWashId} </select> </mapper>