package cc.mrbird.febs.pay.controller;
|
|
import cc.mrbird.febs.pay.properties.AliPayProperties;
|
import cc.mrbird.febs.pay.service.AliIPayService;
|
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.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 AliIPayService payService;
|
|
@Resource
|
private AliPayProperties aliPayProperties;
|
|
@RequestMapping("/aliCallBack")
|
public String aliPayCallBack(HttpServletRequest request){
|
log.info("进入支付宝回调");
|
Map<String, String> 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";
|
}
|
}
|
}
|