java110
2021-09-03 47b5b0a7e0266fc7e2fbe095929c589bd5ebb98c
service-front/src/main/java/com/java110/front/smo/payment/adapt/chinaums/ChinaUmsPayNotifyAdapt.java
@@ -26,6 +26,7 @@
import com.java110.utils.util.BeanConvertUtil;
import com.java110.utils.util.DateUtil;
import com.java110.utils.util.PayUtil;
import org.apache.commons.codec.digest.DigestUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -34,13 +35,8 @@
import org.springframework.web.client.HttpStatusCodeException;
import org.springframework.web.client.RestTemplate;
import java.util.Date;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;
import java.util.UUID;
import java.io.UnsupportedEncodingException;
import java.util.*;
/**
 * 富友 支付 通知实现
@@ -124,11 +120,15 @@
//            }
            paramMap.put(key, map.get(key).toString());
        }
        String sign = PayUtil.createChinaUmsSign(paramMap, smallWeChatDto.getPayPassword());
        //String sign = PayUtil.createChinaUmsSign(paramMap, smallWeChatDto.getPayPassword());
        String preSign = map.getString("preSign");
        String text = preSign + smallWeChatDto.getPayPassword();
        System.out.println("待签名字符串:" + text);
        String sign = DigestUtils.md5Hex(getContentBytes(text)).toUpperCase();
//        if (!sign.equals(map.get("sign"))) {
//            throw new IllegalArgumentException("鉴权失败");
//        }
        if (!sign.equals(map.get("sign"))) {
            throw new IllegalArgumentException("鉴权失败");
        }
        //JSONObject billPayment = JSONObject.parseObject(map.getString("billPayment"));
        String outTradeNo = map.get("merOrderId").toString();
@@ -143,6 +143,7 @@
        }
        return 1;
    }
    //SJ=lJQi&
    //B7C091FCE2AFC3DDEE16DEDD04C234CF
    public static void main(String[] args) {
@@ -243,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("签名过程中出现错误");
        }
    }
}