java110
2021-09-06 f278bf1dc5f6091b60acea56a5c19d1fa24a8aff
优化 代码调整欠费欠费逻辑
2个文件已修改
33 ■■■■ 已修改文件
service-front/src/main/java/com/java110/front/controller/app/PaymentController.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-front/src/main/java/com/java110/front/smo/payment/adapt/chinaums/ChinaUmsOweFeeToNotifyAdapt.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-front/src/main/java/com/java110/front/controller/app/PaymentController.java
@@ -215,10 +215,7 @@
        String sign = params.get("sign");
        System.out.println(sign);
        /*验签*/
        //对通知内容生成sign
        //String strSign = makeSign(md5key, params);
        //System.out.println("strSign="+strSign);
        String preStr = buildSignString(params);
        paramIn.put("preSign",preStr);
        paramIn.put("sign",sign);
@@ -264,6 +261,16 @@
            paramIn.put(key, request.getParameter(key));
        }
        logger.debug("微信支付回调报文" + paramIn.toJSONString());
        /*接收参数*/
        Map<String, String> params = getRequestParams(request);
        System.out.println("params:" + params);
        String sign = params.get("sign");
        System.out.println(sign);
        String preStr = buildSignString(params);
        paramIn.put("preSign",preStr);
        paramIn.put("sign",sign);
        return oweFeeToNotifySMOImpl.toNotify(paramIn.toJSONString(), request);
    }
service-front/src/main/java/com/java110/front/smo/payment/adapt/chinaums/ChinaUmsOweFeeToNotifyAdapt.java
@@ -29,6 +29,7 @@
import com.java110.utils.util.DateUtil;
import com.java110.utils.util.PayUtil;
import com.java110.utils.util.StringUtil;
import org.apache.commons.codec.digest.DigestUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -37,6 +38,7 @@
import org.springframework.web.client.HttpStatusCodeException;
import org.springframework.web.client.RestTemplate;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.SortedMap;
import java.util.TreeMap;
@@ -123,7 +125,11 @@
            }
            paramMap.put(key, map.get(key).toString());
        }
        String sign = PayUtil.createSign(paramMap, smallWeChatDto.getPayPassword());
        String preSign = map.getString("preSign");
        String text = preSign + smallWeChatDto.getPayPassword();
        System.out.println("待签名字符串:" + text);
        String sign = DigestUtils.sha256Hex(getContentBytes(text)).toUpperCase();
        if (!sign.equals(map.get("sign"))) {
            throw new IllegalArgumentException("鉴权失败");
        }
@@ -238,4 +244,14 @@
        return PayUtil.md5(str);
    }
    // 根据编码类型获得签名内容byte[]
    public static byte[] getContentBytes(String content) {
        try {
            return content.getBytes("UTF-8");
        } catch (UnsupportedEncodingException e) {
            throw new RuntimeException("签名过程中出现错误");
        }
    }
}