| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- 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<String,String> 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;
- }
- }
- }
|