| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- package com.poteviohealth.ym.ipos.utils;
- import com.alibaba.fastjson.JSONObject;
- import com.google.common.collect.Maps;
- import com.poteviohealth.cgp.common.utils.HttpUtils;
- import lombok.extern.log4j.Log4j2;
- import org.apache.commons.codec.digest.DigestUtils;
- import org.apache.commons.lang3.ArrayUtils;
- import java.lang.reflect.Field;
- import java.util.Map;
- /**
- * 请求返回类封装
- * @author Qin
- */
- @Log4j2
- public class YmUtil {
- private static final String SECRETKEY = "sXEEYUDtjkunTEYENlkp";
- public static final String SUCCESS = "0000";
- public static final String FAIL = "9998";
- private static final String URL = "https://ipos-sa-std.wangcaio2o.com";
- public static <T> Object resultBack(T obj, T clazz) throws IllegalAccessException {
- Map<String,Object> maps = YmUtil.findObjectFields(obj,false);
- String sign = generateSign(obj);
- JSONObject object = (JSONObject) JSONObject.toJSON(maps);
- object.put("sign", sign);
- String jsonObject = JSONObject.toJSONString(object);
- log.info(clazz.getClass()+"===="+jsonObject);
- String val = HttpUtils.post(URL,jsonObject);
- log.info(clazz.getClass()+"==return=="+val);
- if(clazz.getClass().toString().contains("UserSearchBack")
- || clazz.getClass().toString().contains("SettlementQueryBack")){
- return val;
- }
- return JSONObject.parseObject(val, clazz.getClass());
- }
- private static <T> String generateSign(T obj){
- StringBuilder sb = new StringBuilder(SECRETKEY);
- try {
- Map<String,Object> maps = YmUtil.findObjectFields(obj,true);
- for (String s : maps.keySet()) {
- sb.append(s).append(maps.get(s));
- }
- sb.append(SECRETKEY);
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- }
- return DigestUtils.md5Hex(sb.toString().getBytes()).toUpperCase();
- }
- private static <T> Map<String,Object> findObjectFields(T obj,boolean isType) throws IllegalAccessException {
- Map<String,Object> returnMaps =Maps.newTreeMap();
- Class clazz = obj.getClass();
- Field[] fields = new Field[0];
- for(Class<?> curClz = clazz; curClz != Object.class; curClz = curClz.getSuperclass()) {
- fields = ArrayUtils.addAll(fields, curClz.getDeclaredFields());
- }
- for (Field f : fields) {
- f.setAccessible(true);
- String fieldName = f.getName();
- Object fieldValue = f.get(obj);
- if(fieldValue =="" || fieldValue == null){
- continue;
- }else if(isType){
- if(f.getGenericType().getTypeName().contains("com.poteviohealth.ym.ipos.model")){
- continue;
- }
- }
- returnMaps.put(fieldName,fieldValue);
- }
- return returnMaps;
- }
- public static void main(String[] args) {
- /* UserSearch userSearch = new UserSearch();
- UserSearchDetail detail = new UserSearchDetail();
- detail.setPhone("18010031183");
- userSearch.setMerchant_query_request(detail);
- UserSearchBack back = null;
- try {
- String val = (String) YmUtil.resultBack(userSearch,new UserSearchBack());
- JSONObject jsonObject = new JSONObject(JSON.parseObject(val));
- if(val.contains("image_list")){
- List<ImageListBack> list = jsonObject.getJSONArray("image_list").stream().map(item -> JSON.parseObject(item.toString(), new TypeReference<ImageListBack>() {})).collect(Collectors.toList());
- jsonObject.put("image_list",list);
- }
- back = JSONObject.toJavaObject(jsonObject, UserSearchBack.class);
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- }
- System.out.println(JSONObject.toJSONString(back));*/
- }
- }
|