AlipayServiceImpl.java 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package com.nju.edu.pay.service.impl;
  2. import com.alipay.api.AlipayApiException;
  3. import com.alipay.api.internal.util.AlipaySignature;
  4. import com.nju.edu.pay.configuration.AlipayProperties;
  5. import com.nju.edu.pay.service.AlipayService;
  6. import lombok.extern.slf4j.Slf4j;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.stereotype.Component;
  9. import javax.servlet.http.HttpServletRequest;
  10. import java.util.HashMap;
  11. import java.util.Iterator;
  12. import java.util.Map;
  13. @Component
  14. @Slf4j
  15. public class AlipayServiceImpl implements AlipayService {
  16. @Autowired
  17. AlipayProperties alipayProperties;
  18. @Override
  19. public boolean verifySign(HttpServletRequest request) {
  20. // 获取支付宝POST过来反馈信息
  21. Map<String,String> params = new HashMap<>();
  22. Map requestParams = request.getParameterMap();
  23. for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) {
  24. String name = (String) iter.next();
  25. String[] values = (String[]) requestParams.get(name);
  26. String valueStr = "";
  27. for (int i = 0; i < values.length; i++) {
  28. valueStr = (i == values.length - 1) ? valueStr + values[i]
  29. : valueStr + values[i] + ",";
  30. }
  31. params.put(name, valueStr);
  32. }
  33. try {
  34. boolean verifyResult = AlipaySignature.rsaCheckV1(params,
  35. alipayProperties.getAlipayPublicKey(),
  36. alipayProperties.getCharset(),
  37. alipayProperties.getSignType());
  38. return verifyResult;
  39. } catch (AlipayApiException e) {
  40. log.debug("verify sign error, exception is:{}", e);
  41. return false;
  42. }
  43. }
  44. }