package cc.mrbird.febs.pay.controller; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.pay.properties.AliPayProperties; import cc.mrbird.febs.pay.service.IPayService; import com.alibaba.fastjson.JSONObject; import com.alipay.api.AlipayApiException; import com.alipay.api.internal.util.AlipaySignature; import com.ijpay.alipay.AliPayApi; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.Map; /** * @author wzy * @date 2021-09-27 **/ @Slf4j @RestController @RequestMapping(value = "/api/pay") public class PayCallBackController { @Autowired private IPayService payService; @Resource private AliPayProperties aliPayProperties; @RequestMapping("/aliCallBack") public String aliPayCallBack(HttpServletRequest request){ log.info("进入支付宝回调"); Map params = AliPayApi.toMap(request); boolean verifyResult = false; try { verifyResult = AlipaySignature.verifyV1(params, aliPayProperties.getPublicKey(), "UTF-8", "RSA2"); } catch (AlipayApiException e) { log.info("=验证失败=:{}", params); return "failure"; } if (verifyResult) { if ("TRADE_SUCCESS".equals(params.get("trade_status")) || "TRADE_FINISHED".equals(params.get("trade_status"))) { payService.aliCallback(params); return "success"; } else { log.info("支付失败:{}", params); return "failure"; } } else { log.info("验证失败:{}", params); return "failure"; } } }