/** * url请求微信 * Created by wangmeng on 2017/1/24. */ @Service public class WxHttpHelper { private static final Logger logger = LoggerFactory.getLogger(WxHttpHelper.class); @Autowired private RestTemplate restTemplate; @Value("${pay.appKey}") private String appkey; /** * 微信post请求数据 * @param url 发送请求的url * @param content 发送内容 * @return String 执行结果 */ public String sendPostMessage(String url,String content){ logger.info(String.format("请求微信url【%s】,请求微信参数:【%s】",url,content)); Map<String, Object> map = new LinkedHashMap<String, Object>(); // map.put(WeChatConstants.URL_ACCESS_TOKEN_NAME, redisServiceImpl.get(RedisConstants.ACCESS_TOKEN_NAME)); url = UrlUtils.setUrlParamValue(url, map); String returnMsg = restTemplate.postForObject(url, content, String.class, ""); logger.info("微信响应结果:{}",returnMsg); return returnMsg; } /** * 微信签名,规则是:按参数名称a-z排序,遇到空值的参数不参加签名 * 传入微信返回信息解析后的SortedMap格式参数数据 * @param params * @return */ public String createSign(SortedMap<String, Object> params){ StringBuffer sb = new StringBuffer(); Set es = params.entrySet(); Iterator it = es.iterator(); while(it.hasNext()) { Map.Entry entry = (Map.Entry)it.next(); String k = String.valueOf(entry.getKey()); String v = String.valueOf(entry.getValue()); if(null != v && !"".equals(v) && !WeChatConstants.SIGN.equals(k) && !WeChatConstants.KEY.equals(k)) { sb.append(k + "=" + v + "&"); } } sb.append("key=" + appkey); String sign = MD5Utils.MD5Encode(sb.toString(),"UTF-8").toUpperCase(); return sign; } }
请求微信以及微信支付sign生成
最新推荐文章于 2024-09-01 10:58:14 发布