1.构建参数
Map<String, String[]> parameters = req.getParameterMap();
Map<String, String> parameterMap = new HashMap<>();
for (Object v : parameters.entrySet()) {
Map.Entry<String, String[]> item = (Map.Entry<String, String[]>) v;
parameterMap.put(item.getKey(), item.getValue()[0]);
}
2.验证签名
这里有坑,官方给的代码中没有要求传入signType 参数,而代码中使用的是rsa算法 所以需要传入signType 将算法变为参数中的算法类型(rsa2)
公钥是支付宝公钥,非应用公钥,这是一个细节方面
String signType = parameterMap.get("sign_type");
if (AlipaySignature.rsaCheckV1(parameterMap, alipayPublicKey, "UTF-8", signType)) {
return true;
}
博客主要讲述了支付宝签名验证相关内容。一是构建参数,二是验证签名,其中存在一些坑,官方代码未要求传入signType参数,但代码用的是rsa算法,需传入该参数将算法变为rsa2,且公钥要用支付宝公钥而非应用公钥。
4275

被折叠的 条评论
为什么被折叠?



