From e0395c5454534e7cf657b10045d00e4042dc7e71 Mon Sep 17 00:00:00 2001 From: houruijun <411269194@kidgrow.com> Date: Mon, 28 Sep 2020 15:51:08 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/pay_master' into pay_master --- kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/resources/application.yml | 1 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SaasClientPayController.java | 16 + kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/MyIWXPayDomain.java | 2 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderMapper.xml | 34 ++ kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderService.java | 9 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPay.java | 2 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SaasClientPayMapper.xml | 14 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPayRequest.java | 2 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPayXmlUtil.java | 2 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/SaasClientPay.java | 19 + kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/WxService.java | 26 ++ kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/AlipayServiceImpl.java | 82 ++++++ kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderController.java | 6 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/saasClientPay.html | 2 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SaasClientPayServiceImpl.java | 122 ++++++-- kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPayUtil.java | 2 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/MyConfig.java | 21 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ProductOrderMapper.java | 13 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISaasClientPayService.java | 10 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/alipay/AlipayConfig.java | 2 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/IWXPayDomain.java | 3 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/weixin/WxController.java | 89 +++--- kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/WxServiceImpl.java | 107 ++++++++ kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPayReport.java | 2 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/alipay/AlipayController.java | 127 +++++---- kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/AlipayService.java | 17 + kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPayConstants.java | 2 kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml | 12 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/alipay/AlipayProperties.java | 2 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderServiceImpl.java | 17 + kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WeiXinOfficPayProperties.java | 4 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPayConfig.java | 2 32 files changed, 592 insertions(+), 179 deletions(-) diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/SaasClientPay.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/SaasClientPay.java index 2e7263d..c8788d2 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/SaasClientPay.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/SaasClientPay.java @@ -11,6 +11,7 @@ import org.hibernate.validator.constraints.NotEmpty; import org.springframework.format.annotation.DateTimeFormat; +import javax.validation.constraints.NotNull; import java.util.Date; /** @@ -35,6 +36,7 @@ /** * 诊断医生所在科室 */ + @NotEmpty(message = "科室的名称不能为空") private String createHospitalDepartment; /** * 科室的唯一标识 @@ -44,21 +46,31 @@ /** * 创建医院的唯一标识 */ - @NotEmpty(message = "创建医院的唯一标识不能为空") + @NotNull(message = "创建医院的唯一标识不能为空") private Long createHospitalId; /** * 创建医院名称 */ + @NotEmpty(message = "医院名称不能为空") private String createHospitalName; + /** + * 医生id + */ + @NotEmpty(message = "医生id不能为空") + private String createDoctorId; /** + * 医生姓名 + */ + @NotEmpty(message = "医生姓名不能为空") + private String createDoctorName; /** * 金额 (单位为分) */ - @NotEmpty(message = "金额 (单位为分)不能为空") + private Integer payPrice; /** * 内部订单号 */ - @NotEmpty(message = "内部订单号不能为空") + private String outTradeNo; /** * 支付完成时间 @@ -77,6 +89,7 @@ */ @NotEmpty(message = "关联诊断记录ID不能为空") private String diaId; + /** * 孩子的id */ diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/alipay/AlipayConfig.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/alipay/AlipayConfig.java similarity index 93% rename from kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/alipay/AlipayConfig.java rename to kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/alipay/AlipayConfig.java index 330f9b5..e29b0a3 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/alipay/AlipayConfig.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/alipay/AlipayConfig.java @@ -1,4 +1,4 @@ -package com.kidgrow.oprationcenter.config.alipay; +package com.kidgrow.oprationcenter.alipay; import com.alipay.api.AlipayClient; import com.alipay.api.DefaultAlipayClient; diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/alipay/AlipayProperties.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/alipay/AlipayProperties.java similarity index 90% rename from kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/alipay/AlipayProperties.java rename to kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/alipay/AlipayProperties.java index 31fb6aa..feca4fc 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/alipay/AlipayProperties.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/alipay/AlipayProperties.java @@ -1,4 +1,4 @@ -package com.kidgrow.oprationcenter.config.alipay; +package com.kidgrow.oprationcenter.alipay; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ProductOrderMapper.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ProductOrderMapper.java index a4119be..6ff4a45 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ProductOrderMapper.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ProductOrderMapper.java @@ -1,8 +1,8 @@ package com.kidgrow.oprationcenter.mapper; -import com.kidgrow.oprationcenter.model.ProductOrder; -import com.kidgrow.db.mapper.SuperMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.kidgrow.db.mapper.SuperMapper; +import com.kidgrow.oprationcenter.model.ProductOrder; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -38,4 +38,13 @@ * @return */ int delProductDetail(@Param("orderId") Long orderId); + + /** + * 获取用户套餐的使用状态(正式 和 试用) + * 只要要有一个充值的套餐为 为正式套餐,则为正式用户; + * 只要有一个充值的套餐为 分享状态,则该医院的医生为正式用户 + * @param productOrder + * @return + */ + int getStatus(ProductOrder productOrder); } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/AlipayService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/AlipayService.java new file mode 100644 index 0000000..e01a618 --- /dev/null +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/AlipayService.java @@ -0,0 +1,17 @@ +package com.kidgrow.oprationcenter.service; + +import com.kidgrow.oprationcenter.model.SaasClientPay; + +import java.util.Map; + +public interface AlipayService { + /** + * 获取支付宝的 预支付 base64 二维码 + * @param saasClientPay + * @return + * @throws Exception + */ + String getCode(SaasClientPay saasClientPay) throws Exception; + + String notify( Map<String, String> requestMap); +} diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderService.java index e1498d6..39ee136 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderService.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderService.java @@ -51,5 +51,14 @@ * @return */ boolean saveProductDetail(Map<String,Object> params,SysUser sysUser); + + /** + * 获取用户套餐的使用状态(正式 和 试用) + * 只要要有一个充值的套餐为 为正式套餐,则为正式用户; + * 只要有一个充值的套餐为 分享状态,则该医院的医生为正式用户 + * @param productOrder + * @return + */ + ResultBody getStatus(ProductOrder productOrder); } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISaasClientPayService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISaasClientPayService.java index a5b7bfe..4e83c39 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISaasClientPayService.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISaasClientPayService.java @@ -2,11 +2,13 @@ import com.kidgrow.common.model.PageResult; +import com.kidgrow.common.model.ResultBody; import com.kidgrow.common.service.ISuperService; import com.kidgrow.oprationcenter.model.SaasClientPay; import com.kidgrow.oprationcenter.vo.SaasClientPayExcel; import com.kidgrow.oprationcenter.vo.SaasClientPayVo; +import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; @@ -45,5 +47,13 @@ */ List<SaasClientPayExcel> export(Map<String, Object> params); + + /** + * 获取微信和支付宝的二维码 + * @param saasClientPay + * @param request + * @return + */ + ResultBody getCode(SaasClientPay saasClientPay,HttpServletRequest request) throws Exception; } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/WxService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/WxService.java new file mode 100644 index 0000000..a832879 --- /dev/null +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/WxService.java @@ -0,0 +1,26 @@ +package com.kidgrow.oprationcenter.service; + + +import com.kidgrow.oprationcenter.model.SaasClientPay; + +import javax.servlet.http.HttpServletRequest; +import java.util.Map; + +public interface WxService { + /** + * 获取支付宝的 微信 base64 二维码 + * @param saasClientPay + * @param request + * @return + * @throws Exception + */ + Map<String,String> getCode(SaasClientPay saasClientPay, HttpServletRequest request) throws Exception; + + /** + * 微信的回调接口 + * @param requestMap + * @return + * @throws Exception + */ + String callback(Map<String, String> requestMap) throws Exception; +} diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/AlipayServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/AlipayServiceImpl.java new file mode 100644 index 0000000..7fb8cef --- /dev/null +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/AlipayServiceImpl.java @@ -0,0 +1,82 @@ +package com.kidgrow.oprationcenter.service.impl; + +import com.alipay.api.AlipayClient; +import com.alipay.api.domain.AlipayTradePrecreateModel; +import com.alipay.api.request.AlipayTradePrecreateRequest; +import com.alipay.api.response.AlipayTradePrecreateResponse; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.kidgrow.common.utils.QRCodeUtil; +import com.kidgrow.common.utils.StringUtils; +import com.kidgrow.oprationcenter.alipay.AlipayProperties; +import com.kidgrow.oprationcenter.model.SaasClientPay; +import com.kidgrow.oprationcenter.service.AlipayService; +import com.kidgrow.oprationcenter.service.ISaasClientPayService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; +import java.util.Map; + +@Slf4j +@Service +public class AlipayServiceImpl implements AlipayService { + @Resource + private AlipayProperties alipayProperties; + @Resource + private AlipayClient alipayClient; + @Autowired + @Lazy + private ISaasClientPayService saasClientPayService; + @Override + public String getCode(SaasClientPay saasClientPay) throws Exception { + AlipayTradePrecreateModel model = new AlipayTradePrecreateModel(); + model.setProductCode("FACE_TO_FACE_PAYMENT"); //销售产品码 + model.setOutTradeNo(saasClientPay.getOutTradeNo()); //商户订单号 + model.setSubject(saasClientPay.getChildName()+"的支付"); //订单标题 + double l = Double.parseDouble(saasClientPay.getPayPrice().toString()) / 100; + model.setTotalAmount(l+""); //订单总金额 单位为元 + AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest(); + request.setBizModel(model); + //兼容pkcs1 编码; + java.security.Security.addProvider( + new org.bouncycastle.jce.provider.BouncyCastleProvider() + ); + request.setNotifyUrl(alipayProperties.getNotifyUrl()); + request.setReturnUrl(alipayProperties.getReturnUrl()); + AlipayTradePrecreateResponse alipayTradePrecreateResponse = alipayClient.execute(request); + if (StringUtils.isBlank(alipayTradePrecreateResponse.getQrCode())) { + return null; + } + String content = alipayTradePrecreateResponse.getQrCode(); + String base64 = QRCodeUtil.creatRrCode(content, 200, 200, 0).replaceAll("\n", "").replaceAll("\r", ""); + return base64; + } + + @Override + public String notify(Map<String, String> requestMap) { + log.error("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"); + log.error(requestMap.toString()); + log.error("eeeeeeeeeeeeeeeewwwwwwwwwwww:"+requestMap.toString()); + if(requestMap.get("trade_status").equals("TRADE_SUCCESS")){ + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("out_trade_no",requestMap.get("out_trade_no")); + queryWrapper.eq("pay_status",0); + List<SaasClientPay> list = saasClientPayService.list(queryWrapper); + if(!list.isEmpty()){ + SaasClientPay saasClientPay = list.get(0); + saasClientPay.setPayTime(new Date()); + saasClientPay.setPayStatus(2); + saasClientPay.setPayMethod(1); + saasClientPay.setTradeNo(requestMap.get("trade_no")); + boolean b = saasClientPayService.updateById(saasClientPay); + } + return "success"; + }else { + return "fail"; + } + } +} diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderServiceImpl.java index 93a9485..87e3ca1 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderServiceImpl.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderServiceImpl.java @@ -201,4 +201,21 @@ } return false; } + + /** + * 获取用户套餐的使用状态(正式 和 试用) + * 只要要有一个充值的套餐为 为正式套餐,则为正式用户; + * 只要有一个充值的套餐为 分享状态,则该医院的医生为正式用户 + * @param productOrder + * @return + */ + @Override + public ResultBody getStatus(ProductOrder productOrder) { + int status = baseMapper.getStatus(productOrder); + if (status>0) { + return ResultBody.ok().data(true); + }else { + return ResultBody.ok().data(false); + } + } } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SaasClientPayServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SaasClientPayServiceImpl.java index 3233aa6..d17e295 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SaasClientPayServiceImpl.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SaasClientPayServiceImpl.java @@ -6,11 +6,14 @@ import com.kidgrow.common.model.ResultBody; import com.kidgrow.common.service.impl.SuperServiceImpl; import com.kidgrow.oprationcenter.mapper.SaasClientPayMapper; +import com.kidgrow.oprationcenter.model.PayManager; import com.kidgrow.oprationcenter.model.SaasClientPay; +import com.kidgrow.oprationcenter.service.AlipayService; +import com.kidgrow.oprationcenter.service.IPayManagerService; import com.kidgrow.oprationcenter.service.ISaasClientPayService; +import com.kidgrow.oprationcenter.service.WxService; import com.kidgrow.oprationcenter.vo.SaasClientPayExcel; import com.kidgrow.oprationcenter.vo.SaasClientPayVo; -//import com.kidgrow.recordcenter.feign.ChildService; import com.kidgrow.usercenter.feign.SysDoctorService; import com.kidgrow.usercenter.model.SysDoctor; import lombok.extern.slf4j.Slf4j; @@ -19,9 +22,10 @@ import org.springframework.cglib.beans.BeanCopier; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import javax.servlet.http.HttpServletRequest; +import java.util.*; + +//import com.kidgrow.recordcenter.feign.ChildService; /** @@ -42,8 +46,12 @@ */ @Autowired private SysDoctorService sysDoctorService; -// @Autowired -// private ChildService childService; + @Autowired + WxService wxService; + @Autowired + AlipayService alipayService; + @Autowired + IPayManagerService payManagerService; @Override public PageResult<SaasClientPayVo> findList(Map<String, Object> params){ Long doctorId = MapUtils.getLong(params, "doctorId"); @@ -69,19 +77,6 @@ beanCopier.copy(saasClientPay,vo,null); double v = Double.parseDouble(vo.getPayPrice().toString())/100; vo.setPrice(v+""); -// if (StringUtils.isNotBlank(vo.getChildId())) { -// Map<String,Object> map=new HashMap<>(); -// map.put("id",vo.getChildId()); -// ResultBody byId = childService.findById(map); -// if(byId.getCode()==0){ -// Child parse = JSON.parseObject(JSON.toJSONString(byId.getData()), Child.class); -// if(parse!=null){ -// vo.setChildName(parse.getChildName()); -// vo.setChildSex(parse.getChildSex()); -// vo.setChildBirthday(parse.getChildBirthday()); -// } -// } -// } listVo.add(vo); } } @@ -141,22 +136,85 @@ vo.setPayCustom(vc); Double vk = Double.parseDouble(saasClientPay.getPayKidgrow().toString())/100; vo.setPayKidgrow(vk); -// if (StringUtils.isNotBlank(saasClientPay.getChildId())) { -// Map<String,Object> map=new HashMap<>(); -// map.put("id",saasClientPay.getChildId()); -// ResultBody byId = childService.findById(map); -// if(byId.getCode()==0){ -// Child parse = JSON.parseObject(JSON.toJSONString(byId.getData()), Child.class); -// if(parse!=null){ -// vo.setChildName(parse.getChildName()); -// vo.setChildSex(parse.getChildSex()); -// vo.setChildBirthday(parse.getChildBirthday()); -// } -// } -// } listVo.add(vo); } } return listVo; } + + /** + * 获取微信和支付宝的二维码 + * @param saasClientPay + * @return + */ + @Override + public ResultBody getCode(SaasClientPay saasClientPay,HttpServletRequest request) throws Exception { + SaasClientPay modelByObject = findByObject(saasClientPay); + if(modelByObject!=null){ + String str=""; + Map<String, String> wxCode = this.getWxCode(modelByObject, request); + if(wxCode!=null){ + saasClientPay.setPrepayId(wxCode.get("prepay_id")); + str=wxCode.get("code_url"); + } + String aliCode = this.getaliPayCode(modelByObject); + List<String> list=new ArrayList<>(); + list.add(str); + list.add(aliCode); + Map<String,Object> map=new HashMap<>(); + map.put("list",list); + double v = Double.parseDouble(modelByObject.getPayPrice().toString())/100; + map.put("payPrice",v); + return ResultBody.ok().data(map); + } + saasClientPay.setId(UUID.randomUUID().toString().replace("-","")); + saasClientPay.setOutTradeNo(UUID.randomUUID().toString().replace("-","")); + PayManager payManager = new PayManager(); + payManager.setDepartmentId(Long.valueOf(saasClientPay.getCreateHospitalDepartid())); + payManager.setHospitalId(saasClientPay.getCreateHospitalId()); + payManager.setIsDel(false); + payManager.setEnabled(true); + PayManager byObject = payManagerService.findByObject(payManager); + if(byObject==null){ + return ResultBody.failed().msg("该部门或医院没有开通单次支付"); + } + saasClientPay.setPayPrice(byObject.getPayPrice()); +// saasClientPay.setPayPrice(1); + saasClientPay.setPayKidgrow(byObject.getPayKidgrow()); + saasClientPay.setPayCustom(byObject.getPayCustom()); + saasClientPay.setPayStatus(0); + String str=""; + Map<String, String> wxCode = this.getWxCode(saasClientPay, request); + if(wxCode!=null){ + saasClientPay.setPrepayId(wxCode.get("prepay_id")); + str=wxCode.get("code_url"); + } + boolean b = this.saveOrUpdate(saasClientPay); + String aliCode = this.getaliPayCode(saasClientPay); + List<String> list=new ArrayList<>(); + list.add(str); + list.add(aliCode); + Map<String,Object> map=new HashMap<>(); + map.put("list",list); + double v = Double.parseDouble(byObject.getPayPrice().toString())/100; + map.put("payPrice",v); + return ResultBody.ok().data(map); + } + /** + * 获取微信的二维码 + * @param saasClientPay + * @return + */ + public Map<String,String> getWxCode(SaasClientPay saasClientPay, HttpServletRequest request) throws Exception{ + return wxService.getCode(saasClientPay,request); + + } + /** + * 获取支付宝的二维码 + * @param saasClientPay + * @return + */ + public String getaliPayCode(SaasClientPay saasClientPay) throws Exception{ + return alipayService.getCode(saasClientPay); + } } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/WxServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/WxServiceImpl.java new file mode 100644 index 0000000..6ee053d --- /dev/null +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/WxServiceImpl.java @@ -0,0 +1,107 @@ +package com.kidgrow.oprationcenter.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.kidgrow.common.utils.QRCodeUtil; +import com.kidgrow.common.utils.StringUtils; +import com.kidgrow.oprationcenter.model.SaasClientPay; +import com.kidgrow.oprationcenter.service.ISaasClientPayService; +import com.kidgrow.oprationcenter.service.WxService; +import com.kidgrow.oprationcenter.weixin.*; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +@Service +public class WxServiceImpl implements WxService { + @Resource + WeiXinOfficPayProperties weiXinOfficPayProperties; + @Autowired + @Lazy + ISaasClientPayService iSaasClientPayService; + + @Override + public Map<String,String> getCode(SaasClientPay saasClientPay, HttpServletRequest request) throws Exception { + Map<String,String> jsonObject=new HashMap<>(); + Map<String,Object> mapto=new HashMap<>(); + jsonObject.put("body",saasClientPay.getChildName());//商品描述 + jsonObject.put("out_trade_no", saasClientPay.getOutTradeNo());//商户订单号 + jsonObject.put("total_fee",saasClientPay.getPayPrice().toString());//标价金额 单位为分 + jsonObject.put("spbill_create_ip",getIpAddress(request));//终端IP + jsonObject.put("notify_url",weiXinOfficPayProperties.getPayNotifyUrl());//通知地址 + jsonObject.put("trade_type","NATIVE");//交易类型 + MyConfig wxPayConfig= new MyConfig(weiXinOfficPayProperties); + WXPay wxPay=new WXPay(wxPayConfig); + Map<String, String> stringStringMap = wxPay.fillRequestData(jsonObject); + Map<String, String> result = wxPay.unifiedOrder(stringStringMap); + String resultStr = result.get("code_url"); + log.error(""); + if(result.get("code_url")==null|| StringUtils.isBlank(resultStr)){ + return null; + } + String s = QRCodeUtil.creatRrCode(resultStr, 200, 200, 0).replaceAll("\n","").replaceAll("\r",""); + String prepay_id = result.get("prepay_id"); + Map<String,String> map = new HashMap<>(); + map.put("code_url",s); + map.put("prepay_id",prepay_id); + return map; + } + public static String getIpAddress(HttpServletRequest request) { + String ip = request.getHeader("x-forwarded-for"); + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("Proxy-Client-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("WL-Proxy-Client-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("HTTP_CLIENT_IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("HTTP_X_FORWARDED_FOR"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getRemoteAddr(); + } + return ip; + } + + @Override + public String callback(Map<String, String> requestMap) throws Exception { + Map<String,String> map=new HashMap<>(); + map.put("return_code","FAIL"); + map.put("return_msg","INVALID_REQUEST"); + log.error("eeeeeeeeeeeeeee:"+requestMap.toString()); + boolean signatureValid = WXPayUtil.isSignatureValid(requestMap, weiXinOfficPayProperties.getKey(), WXPayConstants.SignType.HMACSHA256); + if(signatureValid){ + log.error("wwwwwwwwwwwwweeeeeeeeeeeeeeeeeeeee"); + //支付成功 + if(WXPayConstants.SUCCESS.equals(requestMap.get("result_code"))){ + //更新状态 out_trade_no + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("out_trade_no",requestMap.get("out_trade_no")); + queryWrapper.eq("pay_status",0); + List<SaasClientPay> list = iSaasClientPayService.list(queryWrapper); + if(!list.isEmpty()){ + SaasClientPay saasClientPay = list.get(0); + saasClientPay.setPayTime(new Date()); + saasClientPay.setPayStatus(2); + saasClientPay.setPayMethod(0); + saasClientPay.setTradeNo(requestMap.get("transaction_id")); + boolean b = iSaasClientPayService.updateById(saasClientPay); + map.put("return_code","SUCCESS"); + map.put("return_msg","OK"); + } + } + } + return WXPayUtil.mapToXml(map); + } +} diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/IWXPayDomain.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/IWXPayDomain.java similarity index 95% rename from kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/IWXPayDomain.java rename to kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/IWXPayDomain.java index 0e0a07b..c1a6836 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/IWXPayDomain.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/IWXPayDomain.java @@ -1,4 +1,5 @@ -package com.kidgrow.oprationcenter.config.weixin; +package com.kidgrow.oprationcenter.weixin; + /** * 域名管理,实现主备域名自动切换 diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/MyConfig.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/MyConfig.java similarity index 79% rename from kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/MyConfig.java rename to kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/MyConfig.java index ab08742..3021519 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/MyConfig.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/MyConfig.java @@ -1,8 +1,6 @@ -package com.kidgrow.oprationcenter.config.weixin; +package com.kidgrow.oprationcenter.weixin; import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.FileInputStream; import java.io.InputStream; public class MyConfig extends WXPayConfig{ @@ -15,14 +13,17 @@ private byte[] certData; - public MyConfig() throws Exception { - String certPath = "D:\\develop\\chengxu\\houtai\\3cc.txt"; - File file = new File(certPath); - InputStream certStream = new FileInputStream(file); - this.certData = new byte[(int) file.length()]; - certStream.read(this.certData); - certStream.close(); + public MyConfig() { + } +// public MyConfig() throws Exception { +// String certPath = "D:\\develop\\chengxu\\houtai\\3cc.txt"; +// File file = new File(certPath); +// InputStream certStream = new FileInputStream(file); +// this.certData = new byte[(int) file.length()]; +// certStream.read(this.certData); +// certStream.close(); +// } //wx84c77dcda51c612c @Override public String getAppID() { diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/MyIWXPayDomain.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/MyIWXPayDomain.java similarity index 87% rename from kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/MyIWXPayDomain.java rename to kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/MyIWXPayDomain.java index f32387d..936c589 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/MyIWXPayDomain.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/MyIWXPayDomain.java @@ -1,4 +1,4 @@ -package com.kidgrow.oprationcenter.config.weixin; +package com.kidgrow.oprationcenter.weixin; public class MyIWXPayDomain implements IWXPayDomain { @Override diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/WXPay.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPay.java similarity index 99% rename from kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/WXPay.java rename to kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPay.java index f8d17b6..6dd9882 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/WXPay.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPay.java @@ -1,4 +1,4 @@ -package com.kidgrow.oprationcenter.config.weixin; +package com.kidgrow.oprationcenter.weixin; //import com.github.wxpay.sdk.WXPayConstants.SignType; diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/WXPayConfig.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPayConfig.java similarity index 96% rename from kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/WXPayConfig.java rename to kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPayConfig.java index 00b4678..33f19b4 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/WXPayConfig.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPayConfig.java @@ -1,4 +1,4 @@ -package com.kidgrow.oprationcenter.config.weixin; +package com.kidgrow.oprationcenter.weixin; import java.io.InputStream; diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/WXPayConstants.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPayConstants.java similarity index 98% rename from kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/WXPayConstants.java rename to kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPayConstants.java index 71a5905..522ad74 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/WXPayConstants.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPayConstants.java @@ -1,4 +1,4 @@ -package com.kidgrow.oprationcenter.config.weixin; +package com.kidgrow.oprationcenter.weixin; import org.apache.http.client.HttpClient; diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/WXPayReport.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPayReport.java similarity index 99% rename from kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/WXPayReport.java rename to kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPayReport.java index 965d759..481c845 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/WXPayReport.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPayReport.java @@ -1,4 +1,4 @@ -package com.kidgrow.oprationcenter.config.weixin; +package com.kidgrow.oprationcenter.weixin; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/WXPayRequest.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPayRequest.java similarity index 99% rename from kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/WXPayRequest.java rename to kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPayRequest.java index f59ff8a..2583228 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/WXPayRequest.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPayRequest.java @@ -1,4 +1,4 @@ -package com.kidgrow.oprationcenter.config.weixin; +package com.kidgrow.oprationcenter.weixin; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/WXPayUtil.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPayUtil.java similarity index 99% rename from kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/WXPayUtil.java rename to kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPayUtil.java index eb8dc9f..2d30a32 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/WXPayUtil.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPayUtil.java @@ -1,4 +1,4 @@ -package com.kidgrow.oprationcenter.config.weixin; +package com.kidgrow.oprationcenter.weixin; //import com.github.wxpay.sdk.WXPayConstants.SignType; diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/WXPayXmlUtil.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPayXmlUtil.java similarity index 95% rename from kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/WXPayXmlUtil.java rename to kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPayXmlUtil.java index b4a6a7f..e38f5ef 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/WXPayXmlUtil.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WXPayXmlUtil.java @@ -1,4 +1,4 @@ -package com.kidgrow.oprationcenter.config.weixin; +package com.kidgrow.oprationcenter.weixin; import org.w3c.dom.Document; diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/WeiXinOfficPayProperties.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WeiXinOfficPayProperties.java similarity index 91% rename from kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/WeiXinOfficPayProperties.java rename to kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WeiXinOfficPayProperties.java index 1dbded0..133ba4a 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/weixin/WeiXinOfficPayProperties.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/weixin/WeiXinOfficPayProperties.java @@ -1,4 +1,4 @@ -package com.kidgrow.oprationcenter.config.weixin; +package com.kidgrow.oprationcenter.weixin; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; @@ -26,7 +26,7 @@ /** * API证书绝对路径 (本项目放在了 resources/cert/wxpay/apiclient_cert.p12") */ - private String certPath; +// private String certPath; /** * HTTP(S) 连接超时时间,单位毫秒 diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderMapper.xml b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderMapper.xml index 2ff14c1..7c788dc 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderMapper.xml +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderMapper.xml @@ -153,4 +153,38 @@ UPDATE product_order_record SET is_del=1,update_time=now() WHERE order_id= #{orderId}; UPDATE product_order_detail SET is_del=1,update_time=now() WHERE order_id= #{orderId}; </update> + <select id="getStatus" parameterType="com.kidgrow.oprationcenter.model.ProductOrder" resultType="int"> + SELECT + SUM(total) + FROM + ( + SELECT + count(*) total + FROM + `product_order` order_order + LEFT JOIN product_order_record record ON order_order.id = record.order_id + WHERE + order_order.hospital_id = #{hospitalId} + AND order_order.department_id = #{departmentId} + AND record.pro_type = 1 + AND order_order.enabled = 1 + AND order_order.is_del = 0 + AND record.enabled = 1 + AND record.is_del = 0 + UNION ALL + SELECT + count(*) total + FROM + `product_order` order_order + LEFT JOIN product_order_record record ON order_order.id = record.order_id + WHERE + order_order.hospital_id = #{hospitalId} + AND record.pro_type = 1 + AND record.is_share = 1 + AND order_order.enabled = 1 + AND order_order.is_del = 0 + AND record.enabled = 1 + AND record.is_del = 0 + ) cc + </select> </mapper> \ No newline at end of file diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SaasClientPayMapper.xml b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SaasClientPayMapper.xml index ec198ce..bc6c813 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SaasClientPayMapper.xml +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SaasClientPayMapper.xml @@ -51,8 +51,8 @@ <if test="p.prepayId != null and p.prepayId !=''"> and prepay_id = #{p.prepayId} </if> - <if test="p.type != null "> - and type = #{p.type} + <if test="p.type != null and p.type !=''"> + and type = #{p.type} </if> <if test="p.createUserId != null and p.createUserId !=''"> and create_user_id = #{p.createUserId} @@ -92,6 +92,12 @@ <if test="p.createHospitalName != null and p.createHospitalName !=''"> and create_hospital_name = #{p.createHospitalName} </if> + <if test="p.createDoctorId != null and p.createDoctorId !=''"> + and create_doctor_id = #{p.createDoctorId} + </if> + <if test="p.createDoctorIdName != null and p.createDoctorIdName !=''"> + and create_doctor_name like '%${p.createDoctorIdName}%' + </if> <if test="p.payPrice != null and p.payPrice !=''"> and pay_price = #{p.payPrice} </if> @@ -122,8 +128,8 @@ <if test="p.prepayId != null and p.prepayId !=''"> and prepay_id = #{p.prepayId} </if> - <if test="p.type != null "> - and type = #{p.type} + <if test="p.type != null and p.type !='' "> + and type = #{p.type} </if> <if test="p.createUserId != null and p.createUserId !=''"> and create_user_id = #{p.createUserId} diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderController.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderController.java index bd3005b..ba6faad 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderController.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderController.java @@ -192,4 +192,10 @@ } return resultBody; } + @ApiOperation(value = "获取用户套餐的使用状态") + @PostMapping("/getStatus") + public ResultBody getStatus(@RequestBody ProductOrder productOrder) { + return productOrderService.getStatus(productOrder); + } + } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SaasClientPayController.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SaasClientPayController.java index b6f93e1..370f34e 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SaasClientPayController.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SaasClientPayController.java @@ -18,6 +18,7 @@ import org.springframework.validation.ObjectError; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; @@ -75,6 +76,21 @@ ExcelUtil.exportExcel(saasClientPayExcel, null, "支付导出", SaasClientPayExcel.class, "saas_client_pay", response); return ResultBody.ok().msg("导出成功"); } + /** + * 获取微信和支付宝的二维码 + */ + @ApiOperation(value = "获取微信和支付宝的二维码") + @PostMapping("/getCode") + public ResultBody getCode(@Valid @RequestBody SaasClientPay saasClientPay, BindingResult bindingResult, HttpServletRequest request) throws Exception { + List<String> errMsg= new ArrayList<>(); + if (bindingResult.hasErrors()) { + for (ObjectError error : bindingResult.getAllErrors()) { + errMsg.add(error.getDefaultMessage()); + } + return ResultBody.failed().msg(errMsg.toString()); + } + return saasClientPayService.getCode(saasClientPay,request); + } /** * 查询 diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/alipay/AlipayController.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/alipay/AlipayController.java index 8628572..d653cb6 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/alipay/AlipayController.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/alipay/AlipayController.java @@ -13,8 +13,9 @@ import com.kidgrow.common.utils.DateUtils; import com.kidgrow.common.utils.QRCodeUtil; import com.kidgrow.common.utils.StringUtils; -import com.kidgrow.oprationcenter.config.alipay.AlipayProperties; +import com.kidgrow.oprationcenter.alipay.AlipayProperties; import com.kidgrow.oprationcenter.model.SaasClientPay; +import com.kidgrow.oprationcenter.service.AlipayService; import com.kidgrow.oprationcenter.service.ISaasClientPayService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -34,102 +35,112 @@ @RestController @RequestMapping("alipay") @Api(tags = "支付宝的支付controller") -public class AlipayController { - +public class AlipayController { + @Resource private AlipayClient alipayClient; @Resource private AlipayProperties alipayProperties; @Autowired private ISaasClientPayService saasClientPayService; + @Autowired + private AlipayService alipayService; @ApiOperation(value = "调用预支付的接口,生成二维码") @PostMapping("/precreate") - public ResultBody precreate(HttpServletResponse response) throws Exception{ //商户预创建支付订单,生成二维码 + public ResultBody precreate(HttpServletResponse response) throws Exception { //商户预创建支付订单,生成二维码 - String outTradeNo = UUID.randomUUID().toString().replaceAll("_", ""); + String outTradeNo = UUID.randomUUID().toString().replaceAll("-", ""); QueryWrapper queryWrapper = new QueryWrapper(); - queryWrapper.eq("dia_id","1"); - queryWrapper.eq("pay_status",0); - AlipayTradePrecreateModel model=new AlipayTradePrecreateModel(); + queryWrapper.eq("dia_id", "1"); + queryWrapper.eq("pay_status", 0); + AlipayTradePrecreateModel model = new AlipayTradePrecreateModel(); model.setProductCode("FACE_TO_FACE_PAYMENT"); //销售产品码 List<SaasClientPay> list = saasClientPayService.list(queryWrapper); if (!list.isEmpty()) { SaasClientPay saasClientPay = list.get(0); model.setOutTradeNo(outTradeNo); //商户订单号 model.setSubject("海贼王"); //订单标题 - model.setTotalAmount(Double.valueOf(saasClientPay.getPayPrice())/100+""); //订单总金额 - }else { + model.setTotalAmount(Double.valueOf(saasClientPay.getPayPrice()) / 100 + ""); //订单总金额 + } else { model.setOutTradeNo(outTradeNo); //商户订单号 model.setSubject("海贼王"); //订单标题 model.setTotalAmount("0.01"); //订单总金额 SaasClientPay saasClientPay = this.fengData(model); boolean b = saasClientPayService.saveOrUpdate(saasClientPay); } - AlipayTradePrecreateRequest request=new AlipayTradePrecreateRequest(); + AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest(); request.setBizModel(model); //兼容pkcs1 编码; java.security.Security.addProvider( new org.bouncycastle.jce.provider.BouncyCastleProvider() ); - AlipayTradePrecreateResponse alipayTradePrecreateResponse=alipayClient.execute(request); + request.setNotifyUrl(alipayProperties.getNotifyUrl()); + request.setReturnUrl(alipayProperties.getReturnUrl()); + AlipayTradePrecreateResponse alipayTradePrecreateResponse = alipayClient.execute(request); if (StringUtils.isBlank(alipayTradePrecreateResponse.getQrCode())) { return ResultBody.failed().data("生成二维码失败"); } - String content=alipayTradePrecreateResponse.getQrCode(); - String base64 = QRCodeUtil.creatRrCode(content, 200, 200, 0).replaceAll("\n","").replaceAll("\r",""); + String content = alipayTradePrecreateResponse.getQrCode(); + String base64 = QRCodeUtil.creatRrCode(content, 200, 200, 0).replaceAll("\n", "").replaceAll("\r", ""); System.out.println(base64); return ResultBody.ok().data(base64); } + //数据封装 - public SaasClientPay fengData(AlipayTradePrecreateModel model){ + public SaasClientPay fengData(AlipayTradePrecreateModel model) { SaasClientPay saasClientPay = new SaasClientPay(); - saasClientPay.setCreateHospitalDepartment(""); - saasClientPay.setCreateHospitalDepartid(""); - saasClientPay.setCreateHospitalId(Long.valueOf(1L)); saasClientPay.setPayPrice(1); saasClientPay.setOutTradeNo(model.getOutTradeNo()); saasClientPay.setPayStatus(0); saasClientPay.setPayMethod(1); saasClientPay.setDiaId("1"); - saasClientPay.setId( UUID.randomUUID().toString().replaceAll("_", "")); + saasClientPay.setId(UUID.randomUUID().toString().replaceAll("-", "")); saasClientPay.setCreateTime(new Date()); - saasClientPay.setCreateUserId(Long.valueOf(1L)); - saasClientPay.setCreateUserName(""); return saasClientPay; } + @ApiOperation(value = "取消订单,支付超时、支付结果未知是可撤销,超过24小时不可撤销-------暂时没有配置") @PostMapping("/cancel") - public ResultBody cancel() throws Exception{ //取消订单,支付超时、支付结果未知是可撤销,超过24小时不可撤销 - AlipayTradeCancelModel model=new AlipayTradeCancelModel(); + public ResultBody cancel() throws Exception { //取消订单,支付超时、支付结果未知是可撤销,超过24小时不可撤销 + AlipayTradeCancelModel model = new AlipayTradeCancelModel(); model.setOutTradeNo("300"); - - AlipayTradeCancelRequest request=new AlipayTradeCancelRequest(); + + AlipayTradeCancelRequest request = new AlipayTradeCancelRequest(); request.setBizModel(model); - - AlipayTradeCancelResponse response=alipayClient.execute(request); + + AlipayTradeCancelResponse response = alipayClient.execute(request); return ResultBody.ok().data(response.getBody()); } @ApiOperation(value = "trade_success状态下异步通知接口,端口异常的接口") @PostMapping("/notify") - public ResultBody notify(HttpServletRequest request) throws Exception{ //trade_success状态下异步通知接口 - if (check(request.getParameterMap())){ + public String notify(HttpServletRequest request) throws Exception { //trade_success状态下异步通知接口 + if (check(request.getParameterMap())) { System.out.println(request.getParameter("trade_status")); Map<String, String> requestMap = this.getRequestMap(request.getParameterMap()); log.error("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"); - log.error(request.toString()); - log.error("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"); - System.out.println("异步通知 "+ Instant.now()); - }else { + log.error(requestMap.toString()); + log.error("eeeeeeeeeeeeeeeewwwwwwwwwwww:"); + if (requestMap.get("trade_status").equals("TRADE_SUCCESS")) { + log.error("wwwwwwwwwww"); + //更新状态 out_trade_no + log.error("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"); + System.out.println("异步通知 " + Instant.now()); + return alipayService.notify(requestMap); + }else { + return "fail"; + } + } else { System.out.println("验签失败"); + return "fail"; } - return ResultBody.ok().data("订单失败"); } + @ApiOperation(value = "订单支付成功后同步返回地址") @PostMapping("/return") - public ResultBody returnUrl(HttpServletRequest request, Map<String,Object> map) throws Exception{ //订单支付成功后同步返回地址 - if (check(request.getParameterMap())){ + public ResultBody returnUrl(HttpServletRequest request, Map<String, Object> map) throws Exception { //订单支付成功后同步返回地址 + if (check(request.getParameterMap())) { Map<String, String> requestMap = this.getRequestMap(request.getParameterMap()); log.error("wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww"); log.error(request.toString()); @@ -137,15 +148,15 @@ log.error(map.toString()); log.error("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"); String trade_status = requestMap.get("trade_status"); - if(StringUtils.isNotBlank(trade_status)){ + if (StringUtils.isNotBlank(trade_status)) { //支付成功 - if(trade_status.equals("TRADE_SUCCESS")){ + if (trade_status.equals("TRADE_SUCCESS")) { //更新状态 out_trade_no QueryWrapper queryWrapper = new QueryWrapper(); - queryWrapper.eq("out_trade_no",requestMap.get("out_trade_no")); - queryWrapper.eq("pay_status",0); + queryWrapper.eq("out_trade_no", requestMap.get("out_trade_no")); + queryWrapper.eq("pay_status", 0); List<SaasClientPay> list = saasClientPayService.list(queryWrapper); - if(!list.isEmpty()){ + if (!list.isEmpty()) { SaasClientPay saasClientPay = list.get(0); saasClientPay.setPayTime(DateUtils.parseDate(requestMap.get("gmt_payment"))); saasClientPay.setPayStatus(2); @@ -155,25 +166,27 @@ } } return ResultBody.ok().data("success"); - }else { + } else { return ResultBody.failed().data("false"); } } - private Map<String,String> getRequestMap(Map<String,String[]> requestParams){ - Map<String,String> params = new HashMap<>(); - for (String name : requestParams.keySet()) { - String[] values = requestParams.get(name); - String valueStr = ""; - for (int i = 0; i < values.length; i++) { - valueStr = (i == values.length - 1) ? valueStr + values[i] - : valueStr + values[i] + ","; - } - params.put(name, valueStr); - System.out.println(name+" ==> "+valueStr); - } - return params; - } - private boolean check(Map<String,String[]> requestParams) throws Exception{ //对return、notify参数进行验签 + + private Map<String, String> getRequestMap(Map<String, String[]> requestParams) { + Map<String, String> params = new HashMap<>(); + for (String name : requestParams.keySet()) { + String[] values = requestParams.get(name); + String valueStr = ""; + for (int i = 0; i < values.length; i++) { + valueStr = (i == values.length - 1) ? valueStr + values[i] + : valueStr + values[i] + ","; + } + params.put(name, valueStr); + System.out.println(name + " ==> " + valueStr); + } + return params; + } + + private boolean check(Map<String, String[]> requestParams) throws Exception { //对return、notify参数进行验签 Map<String, String> requestMap = this.getRequestMap(requestParams); return AlipaySignature.rsaCheckV1(requestMap, alipayProperties.getAlipayPublicKey(), alipayProperties.getCharset(), alipayProperties.getSignType()); //调用SDK验证签名 diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/weixin/WxController.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/weixin/WxController.java index 4f7da27..0b502ac 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/weixin/WxController.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/weixin/WxController.java @@ -1,16 +1,15 @@ package com.kidgrow.oprationcenter.controller.weixin; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.kidgrow.common.model.ResultBody; -import com.kidgrow.common.utils.DateUtils; import com.kidgrow.common.utils.QRCodeUtil; import com.kidgrow.common.utils.StringUtils; -import com.kidgrow.oprationcenter.config.weixin.MyConfig; -import com.kidgrow.oprationcenter.config.weixin.WXPay; -import com.kidgrow.oprationcenter.config.weixin.WXPayUtil; -import com.kidgrow.oprationcenter.config.weixin.WeiXinOfficPayProperties; import com.kidgrow.oprationcenter.model.SaasClientPay; import com.kidgrow.oprationcenter.service.ISaasClientPayService; +import com.kidgrow.oprationcenter.service.WxService; +import com.kidgrow.oprationcenter.weixin.MyConfig; +import com.kidgrow.oprationcenter.weixin.WXPay; +import com.kidgrow.oprationcenter.weixin.WXPayUtil; +import com.kidgrow.oprationcenter.weixin.WeiXinOfficPayProperties; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -24,6 +23,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; import java.util.*; @@ -40,8 +41,16 @@ ISaasClientPayService iSaasClientPayService; @Resource WeiXinOfficPayProperties weiXinOfficPayProperties; + @Autowired + WxService wxService; - @ApiOperation(value = "保存") + /** + * 测试微信的预支付接口 + * @param map + * @return + * @throws Exception + */ + @ApiOperation(value = "测试微信的预支付接口") @PostMapping("pay") public ResultBody save(@RequestBody Map<String,Object> map) throws Exception { Long hospitalId = MapUtils.getLong(map, "hospitalId"); @@ -53,13 +62,14 @@ if (doctorId!=null) { return ResultBody.failed().data("请输入医生id"); } + if (diaId!=null) { return ResultBody.failed().data("请输入诊断记录ID"); } Map<String,String> jsonObject=new HashMap<>(); Map<String,Object> mapto=new HashMap<>(); jsonObject.put("body","腾讯");//商品描述 - jsonObject.put("out_trade_no","20150806123434");//商户订单号 + jsonObject.put("out_trade_no",UUID.randomUUID().toString().replaceAll("-",""));//商户订单号 jsonObject.put("total_fee","1");//标价金额 jsonObject.put("spbill_create_ip","192.168.2.240");//终端IP // jsonObject.put("notify_url",myConfig.getPayNotifyUrl());//通知地址 @@ -76,9 +86,6 @@ } SaasClientPay saasClientPay=new SaasClientPay(); saasClientPay.setId(UUID.randomUUID().toString().replaceAll("_", "")); - saasClientPay.setCreateHospitalDepartment(""); - saasClientPay.setCreateHospitalDepartid(""); - saasClientPay.setCreateHospitalId(Long.valueOf(1L)); saasClientPay.setPayPrice(1); saasClientPay.setCreateHospitalName(""); saasClientPay.setOutTradeNo(jsonObject.get("out_trade_no")); @@ -86,52 +93,34 @@ saasClientPay.setPayStatus(0); saasClientPay.setPayMethod(0); saasClientPay.setDiaId("1"); + saasClientPay.setCreateTime(new Date()); boolean save = iSaasClientPayService.saveOrUpdate(saasClientPay); String s = QRCodeUtil.creatRrCode(resultStr, 200, 200, 0).replaceAll("\n","").replaceAll("\r",""); return ResultBody.ok().data(s); } + + /** + * 微信的回调接口 + * @param request + * @param response + * @return + * @throws Exception + */ @RequestMapping("/callback") - public void OrderCallBack(HttpServletRequest request, HttpServletResponse response,Map<String,Object> map) throws Exception { - Map<String, String> requestMap = this.getRequestMap(request.getParameterMap()); - log.error("wwwwwwwwwwwwwwwwwwwwwwwwwwwwwww"); - log.error(requestMap.toString()); - log.error("wwwwwwwwwwwwwwwwwwwwwwwwwwwwwww"); - log.error(map.toString()); - log.error("eeeeeeeeeeeeeeeeeeeeee"); - if(WXPayUtil.isSignatureValid(requestMap, "GSFcX6WdgRTAS6154EW14WE3SGBSER49")){ - //支付成功 - if(requestMap.get("result_code").equals("SUCCESS")){ - //更新状态 out_trade_no - QueryWrapper queryWrapper = new QueryWrapper(); - queryWrapper.eq("out_trade_no",requestMap.get("out_trade_no")); - queryWrapper.eq("pay_status",0); - List<SaasClientPay> list = iSaasClientPayService.list(queryWrapper); - if(!list.isEmpty()){ - SaasClientPay saasClientPay = list.get(0); - saasClientPay.setPayTime(DateUtils.parseDate(requestMap.get("time_end"))); - saasClientPay.setPayStatus(2); - saasClientPay.setTradeNo(requestMap.get("transaction_id")); - boolean b = iSaasClientPayService.saveOrUpdate(saasClientPay); - } - } - }else { - System.out.println("验签失败"); + public String OrderCallBack(HttpServletRequest request, HttpServletResponse response) throws Exception { + InputStream inStream = request.getInputStream(); + ByteArrayOutputStream outSteam = new ByteArrayOutputStream(); + byte[] buffer = new byte[1024]; + int len = 0; + while ((len = inStream.read(buffer)) != -1) { + outSteam.write(buffer, 0, len); } + String resultxml = new String(outSteam.toByteArray(), "utf-8"); + Map<String, String> requestMap = WXPayUtil.xmlToMap(resultxml); + String callback = wxService.callback(requestMap); + return callback; } - private Map<String,String> getRequestMap(Map<String,String[]> requestParams){ - Map<String,String> params = new HashMap<>(); - for (String name : requestParams.keySet()) { - String[] values = requestParams.get(name); - String valueStr = ""; - for (int i = 0; i < values.length; i++) { - valueStr = (i == values.length - 1) ? valueStr + values[i] - : valueStr + values[i] + ","; - } - params.put(name, valueStr); - System.out.println(name+" ==> "+valueStr); - } - return params; - } + public static void main(String[] args) throws Exception { WxController weixinController=new WxController(); Map<String,Object> map=null; diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/resources/application.yml b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/resources/application.yml index fef3071..3cca647 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/resources/application.yml +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/resources/application.yml @@ -120,4 +120,3 @@ alipay-public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlxD+qCFXTnJrwbGgKPNEcZqrPpHnNoJDTdP+zhWI7ABv/rASfOhWZi56vyQhKldgbc01VBFa0myTpECHlPMZn32DGNg8DIxuV+LEIT+l2Lqjn4wQtX3zUNPHR3bTZlMEVw9JYQZI+XR2i4ZWoOszo6ahAO9SxEuNUlsCSBDMEIPaEjGJmu57X+os8TRlgj8Mxo90JVqSZlRq7eFc7wVTMe5e9p9ITctdiB+utkO0/rSh4T+VUaV1zNk8/n5jh0xDSXL4QdEe832Naeu67Y6w6vezkvF9GUwEmfJqs6PH3sF1gOKgjakbFXauEOJXnXEdyMmOKhG93jT+9GtvV/ywmwIDAQAB - diff --git a/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml b/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml index d9a35c2..332f7ac 100644 --- a/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml +++ b/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml @@ -228,9 +228,9 @@ - /api-file/baseUplaod - /api-user/users/python - /api-evaluation/evaluationxrayinfo/checkQRCode - - /api-record/wxController/callback - - /api-record/alipay/return - - /api-record/alipay/notify + - /api-opration/wxController/callback + - /api-opration/alipay/notify + - /api-opration/alipay/return # - /api-user/syshospital/findAllByMap # - /api-user/sysdictionaries/findAll # - /api-user/sysdepartment/findListByHospitalId @@ -265,9 +265,9 @@ /api-file/baseUplaod, /api-user/users/python, /api-evaluation/evaluationxrayinfo/checkQRCode, - /api-record/wxController/callback, - /api-record/alipay/return, - /api-record/alipay/notify + /api-opration/wxController/callback, + /api-opration/alipay/return, + /api-opration/alipay/notify # /api-user/syshospital/findAllByMap, # /api-user/sysdictionaries/findAll, # /api-user/sysdepartment/findListByHospitalId diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/saasClientPay.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/saasClientPay.html index 53fb049..9d5f45e 100644 --- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/saasClientPay.html +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/saasClientPay.html @@ -189,7 +189,7 @@ type:0, createHospitalId: $("#hospitalId").val(), createHospitalDepartid: departmentId, - doctorId: doctorId, + createDoctorId: doctorId, startTime: startTime, endTime: endTime } -- Gitblit v1.8.0