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; @@ -85,6 +86,8 @@ private CommunityService communityService; @Resource private MinioUtil minioUtil; @Resource private UmfPayUtil umfPayUtil; public static void main(String[] args) { // int nextInt = RandomUtils.nextInt(99999, 1000000); @@ -205,4 +208,10 @@ 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){ Map map=umfPayUtil.pay(orderid, DateUtils.getCurrentDateString(),openid,amount); return R.ok(map); } } springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/LoginApi.java
@@ -2,6 +2,7 @@ import javax.annotation.Resource; import com.panzhihua.common.model.vos.user.UuLoginVO; import org.apache.commons.lang3.StringUtils; import org.springframework.util.ObjectUtils; import org.springframework.validation.annotation.Validated; @@ -299,4 +300,9 @@ int type = 1; return userService.userAgreement(type); } @ApiOperation("uu洗车登录") @PostMapping("uuLogin") public R uuLogin(@RequestBody UuLoginVO uuLoginVO){ return userService.uuLogin(uuLoginVO); } } 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
@@ -2,15 +2,24 @@ import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import java.util.HashMap; import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.panzhihua.applets.umf.UmfPayUtil; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.utlis.DateUtils; import com.panzhihua.common.utlis.HttpClientUtil; import com.umf.api.service.UmfService; import com.umf.api.service.UmfServiceImpl; import io.swagger.annotations.ApiOperation; import org.json.XML; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @@ -19,6 +28,8 @@ import com.panzhihua.common.utlis.StringUtils; import lombok.extern.slf4j.Slf4j; import static com.umf.api.service.UmfServiceImpl.printResult; /** * @auther lyq @@ -32,6 +43,10 @@ @Resource private CommunityService communityService; @Resource private UmfPayUtil umfPayUtil; @Value("${umf.file}") private String file; @PostMapping("wxNotify") public void payCallback(HttpServletRequest request, HttpServletResponse response) { @@ -101,4 +116,47 @@ e.printStackTrace(); } } @GetMapping("wxNotifyAll") public void payCallbackAll(HttpServletRequest request, HttpServletResponse response) { //获取联动发送请求的参数 String requestParam = request.getQueryString(); 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://api.uucsh.cn/notify/wx/pzh-pay",JSONObject.toJSONString(map),1,"appid","10000");; } //调用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洗车退款接口") @GetMapping("/uuRepay") public R uuRepay(@RequestParam("orderid") String orderid, @RequestParam("merdate") String merdate, @RequestParam("refundAmount")String refundAmount, @RequestParam("orgAmount")String orgAmount){ Map map=umfPayUtil.repay(orderid,merdate, DateUtils.getDateFormatString(new Date(),"yyMMddHHmmss")+"0001",refundAmount,orgAmount); return R.ok(map); } } springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/umf/UmfPayUtil.java
New file @@ -0,0 +1,63 @@ package com.panzhihua.applets.umf; import com.umf.api.service.UmfService; import com.umf.api.service.UmfServiceImpl; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.Map; import static com.umf.api.service.UmfServiceImpl.printResult; /** * @author zzj */ @Component public class UmfPayUtil { @Value("${umf.file}") private String file; @Value("${umf.notify_url}") private String notifyUrl; public Map pay(String orderid,String merdate,String openid,String amount){ Map reqMapPublic = preparePublic(orderid,merdate,openid,amount,notifyUrl); UmfService instance = new UmfServiceImpl("53461",file); Map respMap = instance.miniProgramPayMap(reqMapPublic); return respMap; } public Map repay(String orderid,String merdate,String refundNo,String refundAmount,String orgAmount){ Map reqMapPublic=prepareRepay(orderid,merdate,refundNo,refundAmount,orgAmount); UmfService instance = new UmfServiceImpl("53461",file); Map respMap=instance.generalRefundMap(reqMapPublic); return respMap; } //小程序支付请求参数 public static Map preparePublic(String orderid,String merdate,String openid,String amount,String notifyUrl) { Map reqMap = new HashMap(); reqMap.put("mer_id","53461"); reqMap.put("notify_url",notifyUrl); 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; } //小程序支付请求参数 public static Map prepareRepay(String orderid,String merdate,String refundNo,String refundAmount,String orgAmount) { Map reqMap = new HashMap(); reqMap.put("mer_id","53461"); reqMap.put("order_id",orderid); reqMap.put("mer_date",merdate); reqMap.put("refund_no",refundNo); reqMap.put("refund_amount",refundAmount); reqMap.put("org_amount",orgAmount); return reqMap; } } springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/lib/UMF_SDK_V01.jarBinary files differ
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/template/53461_.key.p8Binary files differ
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UuLoginVO.java
New file @@ -0,0 +1,23 @@ package com.panzhihua.common.model.vos.user; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author zzj */ @Data @ApiModel public class UuLoginVO { @ApiModelProperty("省") private String province; @ApiModelProperty("市") private String city; @ApiModelProperty("区") private String area; private String appid; private String timestamp; private String sign; private String mobile; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/user/UserService.java
@@ -539,6 +539,14 @@ R userAgreement(@RequestParam("type") int type); /** * uu洗车登录 * @param uuLoginVO * @return */ @PostMapping("uuLogin") R uuLogin(@RequestBody UuLoginVO uuLoginVO); /** * 意见反馈 * * @param sysUserFeedbackDTO springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/UserApi.java
@@ -1351,4 +1351,8 @@ return userService.updateUserPartyStatus(userId); } @PostMapping("/uuLogin") public R uuLogin(@RequestBody UuLoginVO uuLoginVO){ return userService.uuLogin(uuLoginVO); } } springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/UserService.java
@@ -837,4 +837,11 @@ R deleteUserCashByPhone(String phone); R updateUserPartyStatus(Long userId); /** * uu洗车登录 * @param uuLoginVO * @return */ R uuLogin(UuLoginVO uuLoginVO); } springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -4,24 +4,20 @@ import static java.util.Objects.nonNull; import static org.apache.commons.lang3.StringUtils.isNotBlank; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Random; import java.util.Set; import java.util.*; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import javax.annotation.Resource; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.panzhihua.common.model.dtos.community.microCommercialStreet.BindUserPhoneDTO; import com.panzhihua.common.model.vos.community.ComAreaTownCommunityVO; import com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO; import com.panzhihua.common.model.vos.community.microCommercialStreet.McsLoginUserInfoVO; import com.panzhihua.common.model.vos.user.*; import com.panzhihua.common.utlis.*; import com.panzhihua.service_user.dao.*; import com.panzhihua.service_user.entity.SysAppConfig; import com.panzhihua.service_user.entity.SysTemplateConfig; @@ -76,28 +72,6 @@ import com.panzhihua.common.model.vos.grid.admin.GridMemberBuildingVO; import com.panzhihua.common.model.vos.partybuilding.ActivityManagerVO; import com.panzhihua.common.model.vos.shop.ShopStoreVO; import com.panzhihua.common.model.vos.user.AdministratorsUserVO; import com.panzhihua.common.model.vos.user.ChangePasswordVO; import com.panzhihua.common.model.vos.user.ComMngFamilyInfoVO; import com.panzhihua.common.model.vos.user.ComMngUserTagVO; import com.panzhihua.common.model.vos.user.CommunityUserInfoVO; import com.panzhihua.common.model.vos.user.MenuRoleVO; import com.panzhihua.common.model.vos.user.NoticeUnReadVO; import com.panzhihua.common.model.vos.user.SysOperLogVO; import com.panzhihua.common.model.vos.user.SysUserAgreementVO; import com.panzhihua.common.model.vos.user.SysUserFeedbackVO; import com.panzhihua.common.model.vos.user.SysUserNoticeVO; import com.panzhihua.common.model.vos.user.SysUserVO; import com.panzhihua.common.model.vos.user.UpdateUserArchivesVO; import com.panzhihua.common.model.vos.user.UserArchivesVO; import com.panzhihua.common.model.vos.user.UserPhoneVO; import com.panzhihua.common.utlis.IdCard; import com.panzhihua.common.utlis.SensitiveUtil; import com.panzhihua.common.utlis.SmsUtil; import com.panzhihua.common.utlis.Snowflake; import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.common.utlis.WxUtil; import com.panzhihua.common.utlis.WxXCXTempSend; import com.panzhihua.service_user.model.dos.ComActFourMember; import com.panzhihua.service_user.model.dos.ComMngFamilyInfoDO; import com.panzhihua.service_user.model.dos.ComMngUserTagDO; @@ -3286,4 +3260,24 @@ } return R.ok(); } @Override public R uuLogin(UuLoginVO uuLoginVO) { uuLoginVO.setAppid("10000"); String timeStamp=PayUtil.create_timestamp(); uuLoginVO.setTimestamp(timeStamp); try { uuLoginVO.setSign(PayUtil.MD5(uuLoginVO.getAppid()+"e10adc3949ba59abbe56e057f20f883e"+timeStamp).toLowerCase(Locale.ROOT)); } catch (Exception e) { e.printStackTrace(); } Map<String, String> headerMap=new HashMap<>(); headerMap.put("appid","10000"); String resultJson=HttpClientUtil.get("https://api.uucsh.cn/member/wx/get-access?province="+uuLoginVO.getProvince()+"&city="+uuLoginVO.getCity()+"&area="+uuLoginVO.getArea()+"&appid=10000×tamp="+uuLoginVO.getTimestamp()+"&sign="+uuLoginVO.getSign()+"&mobile="+uuLoginVO.getMobile(),headerMap,null); JSONObject result = JSON.parseObject(resultJson); if(result.get("status").equals(1)){ return R.ok(result.get("data")); } return R.fail("信息错误"); } } springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java
@@ -87,6 +87,7 @@ boolean refreshToken = requestURI.contains("refreshToken"); boolean logout = requestURI.contains("logout"); boolean wxPay = requestURI.contains("wxNotify"); boolean uuRepay = requestURI.contains("uuRepay"); boolean wxCgi = requestURI.contains("cgi"); boolean isShop = requestURI.contains("isShop"); boolean noToken = requestURI.contains("noToken"); @@ -100,7 +101,7 @@ SafeboxRequestWrapper safeboxRequestWrapper = new SafeboxRequestWrapper(request); if (login || doc || css || js || ui || swagger || ico || docs || error || refreshToken || useragreement || wxPay // ||wxCgi||isShop||listadvertisement||noToken||bigscreen) { || wxCgi || isShop || listadvertisement || noToken) { || wxCgi || isShop || listadvertisement || noToken||uuRepay) { // 什么也不做 } else { // 获取请求头中JWT的Token