支付宝异步回调验签代码示例
以下是支付宝异步回调验签的代码示例:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.codec.binary.Base64;
import com.alipay.api.internal.util.AlipaySignature;
public class AlipayCallback {
public static boolean verifyCallback(HttpServletRequest request) {
Map<String, String> params = new HashMap<>();
// 获取支付宝POST过来反馈信息
Map<String, String[]> requestParams = request.getParameterMap();
for (Iterator<String> 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] + ",";
}
// 乱码解决,这段代码在出现乱码时使用
// valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8");
params.put(name, valueStr);
}
// 调用SDK验证签名
try {
boolean signVerified = AlipaySignature.rsaCheckV1(params, AlipayConfig.alipayPublicKey, AlipayConfig.charset, AlipayConfig.signType);
if (signVerified) {
// 验证成功
return true;
} else {
// 验证失败
return false;
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
}
在上面的代码中,AlipayConfig是支付宝的配置文件,包含了支付宝公钥、字符编码和签名类型等信息。AlipaySignature.rsaCheckV1方法用于验证签名,参数params是支付宝回调的参数,AlipayConfig.alipayPublicKey是支付宝的公钥,AlipayConfig.charset是字符编码,AlipayConfig.signType是签名类型。
你可以根据自己的实际情况修改代码中的配置和逻辑
原文地址: http://www.cveoy.top/t/topic/iVwL 著作权归作者所有。请勿转载和采集!