| | |
| | | package com.ruoyi.other.controller; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.core.web.page.PageInfo; |
| | | import com.ruoyi.common.security.service.TokenService; |
| | |
| | | import com.ruoyi.system.api.feignClient.SysUserClient; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.BufferedReader; |
| | | import java.io.IOException; |
| | | import java.io.PrintWriter; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDateTime; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * <p> |
| | | * 微信回调 |
| | | * 微信回调 |
| | | * </p> |
| | | * |
| | | * @author 无关风月 |
| | |
| | | private WechatPayService wechatPayService; |
| | | @Resource |
| | | private TServicePayService servicePayService; |
| | | |
| | | @ResponseBody |
| | | @PostMapping("/integralCallback") |
| | | public void integralCallback(HttpServletRequest request, HttpServletResponse response){ |
| | | public R integralCallback(HttpServletRequest request) throws IOException { |
| | | System.err.println("积分充值回调"); |
| | | PayResult payResult= null; |
| | | try { |
| | | payResult = wechatPayService.processNotify(request); |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | Map<String, String> params = new HashMap<String, String>(); |
| | | System.err.println("请求"+request); |
| | | BufferedReader reader = request.getReader(); |
| | | String string1 = reader.toString(); |
| | | System.err.println("请求reader"+string1); |
| | | StringBuilder requestBody = new StringBuilder(); |
| | | String line; |
| | | while ((line = reader.readLine()) != null) { |
| | | requestBody.append(line); |
| | | } |
| | | IntegralPay integralPay = integralPayService.lambdaQuery().eq(IntegralPay::getCode, payResult.getOrderNumber()).one(); |
| | | if (integralPay != null && integralPay.getPayStatus() == 1){ |
| | | System.err.println("全部请求体"+requestBody); |
| | | JSONObject jsonObject = JSONObject.parseObject(requestBody.toString()); |
| | | JSONObject resp_data = jsonObject.getJSONObject("resp_data"); |
| | | String string = resp_data.getString("trans_stat"); |
| | | if (!string.equals("S")){ |
| | | return R.ok(); |
| | | } |
| | | String req_seq_id = resp_data.getString("req_seq_id"); |
| | | String hf_seq_id = resp_data.getString("hf_seq_id"); |
| | | IntegralPay integralPay = integralPayService.lambdaQuery().eq(IntegralPay::getCode, req_seq_id).one(); |
| | | if (integralPay != null && integralPay.getPayStatus() == 1) { |
| | | |
| | | SysUser data = sysUserClient.getSysUser(integralPay.getUserId()).getData(); |
| | | integralPay.setPayStatus(2); |
| | | integralPay.setPayTime(LocalDateTime.now()); |
| | | integralPay.setOrderNumber(payResult.getTransactionId()); |
| | | integralPay.setOrderNumber(hf_seq_id); |
| | | integralPayService.updateById(integralPay); |
| | | IntegralRecord integralRecord = new IntegralRecord(); |
| | | integralRecord.setPayId(integralPay.getId()); |
| | |
| | | integralRecord.setDelFlag(0); |
| | | integralRecord.setCreateTime(LocalDateTime.now()); |
| | | integralRecordService.save(integralRecord); |
| | | data.setIntegral(data.getIntegral()+integralPay.getIntegralCount()); |
| | | data.setIntegral(data.getIntegral()!=null?data.getIntegral() + integralPay.getIntegralCount():integralPay.getIntegralCount()); |
| | | sysUserClient.updateSysUser(data); |
| | | return R.ok(null, "success"); |
| | | } |
| | | response.setStatus(200); |
| | | PrintWriter out = null; |
| | | try { |
| | | out = response.getWriter(); |
| | | } catch (IOException e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | out.println("success"); |
| | | out.flush(); |
| | | out.close(); |
| | | return R.ok(null, "error"); |
| | | } |
| | | |
| | | @ResponseBody |
| | | @PostMapping("/serviceCallback") |
| | | public void serviceCallback(HttpServletRequest request, HttpServletResponse response){ |
| | | public void serviceCallback(HttpServletRequest request, HttpServletResponse response) { |
| | | System.err.println("服务费缴纳回调"); |
| | | PayResult payResult= null; |
| | | PayResult payResult = null; |
| | | try { |
| | | payResult = wechatPayService.processNotify(request); |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | ServicePay servicePay = servicePayService.lambdaQuery().eq(ServicePay::getCode, payResult.getOrderNumber()).one(); |
| | | if (servicePay != null && servicePay.getPayStatus() == 1){ |
| | | if (servicePay != null && servicePay.getPayStatus() == 1) { |
| | | servicePay.setPayStatus(2); |
| | | ServicePay servicePayBefore = servicePayService.lambdaQuery() |
| | | .eq(ServicePay::getUserId, servicePay.getUserId()) |
| | | .eq(ServicePay::getPayStatus,2) |
| | | .eq(ServicePay::getPayStatus, 2) |
| | | .orderByDesc(ServicePay::getCreateTime) |
| | | .last("limit 1") |
| | | .one(); |
| | | if (servicePayBefore!=null){ |
| | | if (servicePayBefore != null) { |
| | | servicePay.setEndTime(servicePayBefore.getEndTime().plusDays(365)); |
| | | }else{ |
| | | } else { |
| | | servicePay.setEndTime(LocalDateTime.now().plusDays(365)); |
| | | |
| | | } |
| | |
| | | servicePay.setOrderNumber(payResult.getTransactionId()); |
| | | servicePayService.updateById(servicePay); |
| | | } |
| | | response.setStatus(200); |
| | | PrintWriter out = null; |
| | | try { |
| | | out = response.getWriter(); |
| | | } catch (IOException e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | out.println("success"); |
| | | out.flush(); |
| | | out.close(); |
| | | response.setStatus(200); |
| | | PrintWriter out = null; |
| | | try { |
| | | out = response.getWriter(); |
| | | } catch (IOException e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | out.println("success"); |
| | | out.flush(); |
| | | out.close(); |
| | | } |
| | | |
| | | |
| | | |
| | | } |