From b2b6d451f9042f1c509ec7ff3111026c0af79e27 Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Thu, 22 Jun 2017 09:12:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AF=8C=E5=8F=8B=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E9=97=AE=E9=A2=98=EF=BC=8C=E7=AD=BE=E5=90=8D=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../egzosn/pay/fuiou/api/FuiouPayService.java | 27 +++++-------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java b/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java index d2839a7..64dfba9 100644 --- a/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java +++ b/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java @@ -84,7 +84,7 @@ public class FuiouPayService extends BasePayService { } try { //返回参数校验 和 重新请求订单检查数据是否合法 - return (signVerify(params, (String) params.get("md5")) && verifySource((String) params.get("order_id"))); + return (signVerify(params, (String) params.remove("md5")) && verifySource((String) params.get("order_id"))); } catch (PayErrorException e) { e.printStackTrace(); } @@ -100,26 +100,11 @@ public class FuiouPayService extends BasePayService { */ @Override public boolean signVerify (Map params, String responseSign) { - LinkedHashSet keySet = new LinkedHashSet<>(); - keySet.add("mchnt_cd");//商户代码 - keySet.add("order_id");//商户订单号 - keySet.add("order_date");//订单日期 - keySet.add("order_amt");//交易金额 - keySet.add("order_st");//订单状态 - keySet.add("order_pay_code");//错误代码 - keySet.add("order_pay_error");//错误中文描述 - keySet.add("resv1");//保留字段 - keySet.add("fy_ssn");//富友流水号 - StringBuilder verifyMD5Str = new StringBuilder(); - for (String keyStr : keySet) { - String keyValue = (String) params.get(keyStr); - if (null == keyValue){ - log.debug(String.format("富友支付返回结果校验:<参数:%s>不能为空,",keyStr)); - } - verifyMD5Str.append(keyValue).append("|"); - } - String sign = createSign(verifyMD5Str.deleteCharAt(verifyMD5Str.length() -1).toString(),payConfigStorage.getInputCharset()); -// System.out.println("加密串"+verifyMD5Str+",,返回参数生成MD5="+sign+",,返回MD5摘要值"+returnSign); + + params = new LinkedHashMap<>(params); + + String sign = createSign(SignUtils.parameters2MD5Str(params,"|"),payConfigStorage.getInputCharset()); + return responseSign.equals(sign); }