美文网首页我爱编程
微信js-sdk分享和地理java代码

微信js-sdk分享和地理java代码

作者: 四脚蛇 | 来源:发表于2018-06-27 10:17 被阅读0次

主要也是参照https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115

这么多代码就是为了获得一个签名

配置文件里面配置了Appid secrete,微信接口url等

@PostConstruct

@Scheduled(fixedDelay = 7000 * 1000)

public void initTicket() throws ServiceException{

try {

accessToken = getAccessToken();

if(StringUtils.isNotEmpty(accessToken)){

jsapiTicket = getJsapiTicket(accessToken);

}

if(jsapiTicket==null) {

Log.error(this.getClass(), jsapiTicket);

}

} catch (Exception e) {

Log.error(getClass(), e.getMessage());

throw new ServiceException(e.getMessage(), e);

}

}

public MapgetSign(String url) throws ServiceException{Map signMap = new HashMap<>();

signMap.put("noncestr", SystemUtil.generateNonceStr());

signMap.put("timestamp", String.valueOf(SystemUtil.getCurrentTimestamp()));

signMap.put("jsapi_ticket", jsapiTicket);

if(url.contains(ANGULAR_JS_MARK)){

signMap.put("url", url.substring(0, url.indexOf(ANGULAR_JS_MARK)));

} else {

signMap.put("url", url);

}

try {

signMap.put("signature", generateSignature(signMap));

} catch (Exception e) {

Log.error(getClass(), e.getMessage());

throw new ServiceException(e.getMessage(), e);

}

signMap.put("appId", SystemUtil.getValue("wx_app_id"));

signMap.remove("jsapi_ticket");

return signMap;

}

private String getAccessToken() throws Exception{

String url = SystemUtil.getValue("wx_jsapi_access_token_url");

url = url.replace("APPID", SystemUtil.getValue("wx_app_id"));

url = url.replace("SECRET", SystemUtil.getValue("wx_app_secret"));

JSONObject json = SystemUtil.request(url);

return json.getString("access_token");

}

private String getJsapiTicket(String accessToken) throws Exception{

if(!StringUtils.isEmpty(accessToken)){

String url = SystemUtil.getValue("wx_jsapi_ticket_url");

url = url.replace("ACCESS_TOKEN", accessToken);

JSONObject json = SystemUtil.request(url);

return json.getString("ticket");

}else{

return null;

}

}

private String generateSignature(Mapdata) throws Exception { Set keySet = data.keySet();

        String[] keyArray = keySet.toArray(new String[keySet.size()]);

        Arrays.sort(keyArray);

        StringBuilder sb = new StringBuilder();

        for(String k : keyArray){

        if(sb.length() > 0){

        sb.append("&");

        }

        sb.append(k).append("=").append(data.get(k).trim());

        }

        return SHA1.encode(sb.toString()).toUpperCase();

    }

相关文章

  • 微信js-sdk分享和地理java代码

    主要也是参照https://mp.weixin.qq.com/wiki?t=resource/res_main&i...

  • anglarjs微信js-sdk分享和地理js代码

    用的微信接口版本是jweixin-1.0.0.js 具体参照:https://mp.weixin.qq.com/w...

  • 面向微信开发

    在做一个在微信分享文章的项目,在微信分享的链接要有描述和图片必须调用微信的JS-SDK。而且现在(201904)只...

  • 前端之三方分享

    昨天因为调通了微信的js-sdk的接口,知道了它所谓的分享只能在微信浏览器里面使用,所以今天又开始找三方分享的代码...

  • 微信 JS-SDK 录音功能开发

    今天分享一下我第一次接触微信开发,微信JS-SDK录音功能开发的经历. 在开发微信JS-SDK录音功之前我是没有接...

  • 微信JS-SDK updateAppMessageShareDa

    最近开发一个项目时,有微信H5网页自定义分享功能,使用了微信JS-SDK的分享到好友和分享到朋友圈功能。 微信开发...

  • ThinkPHP3.2.3集成微信分享JS-SDK实践

    先来看看微信分享效果: 在没有集成微信分享js-sdk前是这样的:没有摘要,缩略图任意抓取正文图片 在集成微信分享...

  • 微信分享

    微信分享 准备工作 如果想要是使用微信的分享功能,需要使用微信JS-SDK来完成。且只能点击微信右上角的...调起...

  • 2018-06-05

    JS-SDK 列表 JS-SDK Demo 这个demo主要用来查看代码,看效果可以用微信官方提供的开发工具进行调...

  • 微信公众号开发(四)微信分享

    引言 如果想要使用微信的分享功能,需要使用微信 JS-SDK 来完成,并且只能通过点击微信右上角的...进行分享,...

网友评论

    本文标题:微信js-sdk分享和地理java代码

    本文链接:https://www.haomeiwen.com/subject/rrtbyftx.html