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-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/AlipayServiceImpl.java | 82 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 82 insertions(+), 0 deletions(-) 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"; + } + } +} -- Gitblit v1.8.0