package com.ruoyi.web.controller.errand; import com.alibaba.fastjson2.JSONObject; import com.ruoyi.common.core.domain.R; import com.ruoyi.errand.object.dto.app.VipPaymentDTO; import com.ruoyi.errand.service.VipOrderService; import com.ruoyi.errand.utils.UniPayCallbackResult; import com.ruoyi.errand.utils.wx.PayResult; import com.ruoyi.errand.utils.wx.WechatPayService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; import java.io.PrintWriter; @RestController @RequestMapping(value = "/app/vipOrder") @Slf4j public class VipOrderController { @Autowired private VipOrderService vipOrderService; @Autowired private WechatPayService wechatPayService; /** * 购买会员 */ @PostMapping("/vipPayment") @ApiOperation(value = "购买会员",tags = "app用户端-成为会员") public R vipPayment(@RequestBody @Valid VipPaymentDTO vipPaymentDTO) { return vipOrderService.vipPayment(vipPaymentDTO); } /** * 订单支付回调通知 */ @ResponseBody @PostMapping("/orderPaymentCallback") public void orderPaymentCallback(HttpServletRequest request, HttpServletResponse response){ System.err.println("1111111111111"); PayResult payResult= null; try { payResult = wechatPayService.processNotify(request); } catch (Exception e) { throw new RuntimeException(e); } System.out.println("1111111111111111111111"); // System.out.println(jsonString); R callback = vipOrderService.orderPaymentCallback(payResult); if(callback.getCode() == 200){ response.setStatus(200); PrintWriter out = null; try { out = response.getWriter(); } catch (IOException e) { throw new RuntimeException(e); } out.println("success"); out.flush(); out.close(); } } }