|
@@ -0,0 +1,101 @@
|
|
|
|
|
+package com.java110.common.smartMeter.factory.zhongkong;
|
|
|
|
|
+
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
+import com.java110.common.charge.factory.dingding.DingdingChargeUtils;
|
|
|
|
|
+import com.java110.core.factory.AuthenticationFactory;
|
|
|
|
|
+import com.java110.core.log.LoggerFactory;
|
|
|
|
|
+import com.java110.utils.cache.MappingCache;
|
|
|
|
|
+import com.java110.utils.factory.ApplicationContextFactory;
|
|
|
|
|
+import com.java110.utils.util.DateUtil;
|
|
|
|
|
+import com.java110.utils.util.PayUtil;
|
|
|
|
|
+import org.slf4j.Logger;
|
|
|
|
|
+import org.springframework.http.HttpEntity;
|
|
|
|
|
+import org.springframework.http.HttpHeaders;
|
|
|
|
|
+import org.springframework.http.HttpMethod;
|
|
|
|
|
+import org.springframework.http.ResponseEntity;
|
|
|
|
|
+import org.springframework.web.client.HttpStatusCodeException;
|
|
|
|
|
+import org.springframework.web.client.RestTemplate;
|
|
|
|
|
+
|
|
|
|
|
+import java.util.HashMap;
|
|
|
|
|
+import java.util.Map;
|
|
|
|
|
+import java.util.TreeMap;
|
|
|
|
|
+
|
|
|
|
|
+public class WyRequestUtils {
|
|
|
|
|
+ private static Logger logger = LoggerFactory.getLogger(WyRequestUtils.class);
|
|
|
|
|
+
|
|
|
|
|
+ private static String secretKey = "Wr7nGOUMMjC0F8SzsGKAoRo8BpQ10nNk";
|
|
|
|
|
+
|
|
|
|
|
+ /*public static void main(String[] args) {
|
|
|
|
|
+ String bh="WY_001";
|
|
|
|
|
+ String amount="100.00";
|
|
|
|
|
+ Map<String,String> paramMap=new HashMap<>();
|
|
|
|
|
+ paramMap.put("bh",bh);
|
|
|
|
|
+ paramMap.put("amount",amount);
|
|
|
|
|
+ System.out.println(getSign(paramMap));
|
|
|
|
|
+ //d7ebdef32e1021b4c05320c4d634c1d7
|
|
|
|
|
+ }*/
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 使用 Map按key进行排序
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param map
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ private static Map<String, String> sortMapByKey(Map<String, String> map) {
|
|
|
|
|
+ if (map == null || map.isEmpty()) {
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ //升序排序
|
|
|
|
|
+ Map<String, String> sortMap = new TreeMap<>(String::compareTo);
|
|
|
|
|
+ sortMap.putAll(map);
|
|
|
|
|
+ return sortMap;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public static String getSign(Map<String, String> map) {
|
|
|
|
|
+ //按Key进行排序
|
|
|
|
|
+ Map<String, String> sortMap = sortMapByKey(map);
|
|
|
|
|
+ StringBuilder signStr = new StringBuilder();
|
|
|
|
|
+ if (sortMap != null) {
|
|
|
|
|
+ for (Map.Entry<String, String> entry : sortMap.entrySet()) {
|
|
|
|
|
+ signStr.append(entry.getKey()).append("=").append(entry.getValue()).append("&");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ String sign = signStr.append(secretKey).toString();
|
|
|
|
|
+ return AuthenticationFactory.md5(sign);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 请求充电桩 接口
|
|
|
|
|
+ * <p>
|
|
|
|
|
+ * MappingCache.getValue(DING_DING_DOMAIN, DING_DING_APP_ID),
|
|
|
|
|
+ * MappingCache.getValue(DING_DING_DOMAIN, DING_DING_APP_SECURE
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param url
|
|
|
|
|
+ * @param reqMap
|
|
|
|
|
+ * @param httpMethod
|
|
|
|
|
+ * @return
|
|
|
|
|
+ * @throws Exception
|
|
|
|
|
+ */
|
|
|
|
|
+ public static String execute(String url, Map<String, String> reqMap, HttpMethod httpMethod) {
|
|
|
|
|
+ RestTemplate outRestTemplate = ApplicationContextFactory.getBean("outRestTemplate", RestTemplate.class);
|
|
|
|
|
+ HttpHeaders httpHeaders = new HttpHeaders();
|
|
|
|
|
+ HttpEntity httpEntity = null;
|
|
|
|
|
+ if(reqMap != null) {
|
|
|
|
|
+ reqMap.put("sign", getSign(reqMap));
|
|
|
|
|
+ httpEntity = new HttpEntity(JSONObject.toJSONString(reqMap), httpHeaders);
|
|
|
|
|
+ }else{
|
|
|
|
|
+ httpEntity = new HttpEntity("", httpHeaders);
|
|
|
|
|
+ }
|
|
|
|
|
+ ResponseEntity<String> response = null;
|
|
|
|
|
+ try {
|
|
|
|
|
+ response = outRestTemplate.exchange(url, httpMethod, httpEntity, String.class);
|
|
|
|
|
+ } catch (HttpStatusCodeException e) {
|
|
|
|
|
+ logger.error("请求异常", e.getResponseBodyAsString());
|
|
|
|
|
+ return e.getResponseBodyAsString();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return response.getBody();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+}
|