package com.nju.edu.pay.service.impl; import com.alipay.api.AlipayApiException; import com.alipay.api.internal.util.AlipaySignature; import com.nju.edu.pay.configuration.AlipayProperties; import com.nju.edu.pay.service.AlipayService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.Iterator; import java.util.Map; @Component @Slf4j public class AlipayServiceImpl implements AlipayService { @Autowired AlipayProperties alipayProperties; @Override public boolean verifySign(HttpServletRequest request) { // 获取支付宝POST过来反馈信息 Map params = new HashMap<>(); Map requestParams = request.getParameterMap(); for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) { String name = (String) iter.next(); String[] values = (String[]) requestParams.get(name); String valueStr = ""; for (int i = 0; i < values.length; i++) { valueStr = (i == values.length - 1) ? valueStr + values[i] : valueStr + values[i] + ","; } params.put(name, valueStr); } try { boolean verifyResult = AlipaySignature.rsaCheckV1(params, alipayProperties.getAlipayPublicKey(), alipayProperties.getCharset(), alipayProperties.getSignType()); return verifyResult; } catch (AlipayApiException e) { log.debug("verify sign error, exception is:{}", e); return false; } } }