| | |
| | | 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; |
| | | |
| | |
| | | @RequestMapping(value = "/api/pay") |
| | | public class PayCallBackController { |
| | | |
| | | @Autowired |
| | | private IPayService payService; |
| | | |
| | | @Resource |
| | | private AliPayProperties aliPayProperties; |
| | | |
| | | @RequestMapping("/aliCallBack") |
| | | public FebsResponse aliPayCallBack(HttpServletRequest request) { |
| | | log.info("进入回调"); |
| | | public String aliPayCallBack(HttpServletRequest request){ |
| | | log.info("进入支付宝回调"); |
| | | Map<String, String> params = AliPayApi.toMap(request); |
| | | log.info("回调参数:{}", JSONObject.toJSONString(params)); |
| | | for (Map.Entry<String, String> entry : params.entrySet()) { |
| | | log.info("支付宝回调:{}===={}", entry.getKey(), entry.getValue()); |
| | | |
| | | boolean verifyResult = false; |
| | | try { |
| | | verifyResult = AlipaySignature.verifyV1(params, aliPayProperties.getPublicKey(), "UTF-8", "RSA2"); |
| | | } catch (AlipayApiException e) { |
| | | log.info("验证失败=="); |
| | | return "failure"; |
| | | } |
| | | return new FebsResponse().success(); |
| | | |
| | | 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("支付失败"); |
| | | return "failure"; |
| | | } |
| | | } else { |
| | | log.info("验证失败"); |
| | | return "failure"; |
| | | } |
| | | } |
| | | } |