摘要:本文主要向大家介绍了JAVA从入门到精通的微信js-sdk+JAVA实现“分享到朋友圈”和“发送给朋友”功能详解,通过具体的内容向大家展示,希望对大家在JAVA从入门到精通的路上走的更远。
本文主要向大家介绍了JAVA从入门到精通的微信js-sdk+JAVA实现“分享到朋友圈”和“发送给朋友”功能详解,通过具体的内容向大家展示,希望对大家在JAVA从入门到精通的路上走的更远。
主要为以下实现步骤:
1.绑定域名
先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。(特别提示不需要加上http或者https,吃过亏)
2.页面引入js文件
3.通过config接口注入权限验证配置
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '', // 必填,公众号的唯一标识
timestamp: , // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名,见附录1
jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
复制代码
4.通过ready接口处理成功验证
wx.ready(function(){
//详细代码
});
复制代码
5.通过error接口处理失败验证
wx.error(function(res){});
复制代码
详细页面代码
复制代码
java后台action代码:
//微信分享
public void shareToFriend(){
HttpServletRequest request = ServletActionContext.getRequest();
String timeStamp = Sha1Util.getTimeStamp();//时间戳
String nonceStr = WxConfig.getUUID();//随机字符串,不长于32位
String url=request.getParameter("url");
String signature = WxConfig.getSignature("APPId", "APP_secret", url, timeStamp, nonceStr);
request.setAttribute("timeStamp", timeStamp);
request.setAttribute("nonceStr", nonceStr);
request.setAttribute("url", url);
request.setAttribute("signature", signature);
WXjssdk result = new WXjssdk(timeStamp,nonceStr,signature,url);
CommonUtil.returnMsg(ServletActionContext.getResponse(), new Gson().toJson(result));
}
复制代码
WxConfig.java代码
">//jsapi_ticket
public final static String WEIXIN_JSAPI_TICKET_URL ="https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi";
//access_token
public static String getAccessToken(String appId,String appSecret){
String access_token;
access_token = mapToken.get("accessToken");
if(access_token==null){
String url = HttpUtil.WEIXIN_HOST_API + "/cgi-bin/token?grant_type=client_credential&appid="+appId+"&secret="+appSecret;
String menuJsonStr = HttpUtil.get(url);
final Type type = new TypeToken<Map
final Map
try{
access_token = accessTokenInfo.get("access_token").toString();
Object expires_in = accessTokenInfo.get("expires_in");
mapToken.put("accessToken", access_token);
logger.info("access_token:"+access_token+";expires_in:"+expires_in);
}catch (JSONException e) {
access_token = null;
e.printStackTrace();
logger.error("errcode:{}:"+accessTokenInfo.get("errcode")+"errmsg:{}:"+accessTokenInfo.get("errmsg"));
}
}
return access_token;
}
//jsapi_ticket
public static String getJsapiTicket(String accessToken){
String ticket;
ticket = mapTicket.get("ticket");
if(ticket==null){
String url = HttpUtil.WEIXIN_HOST_API + "/cgi-bin/ticket/getticket?access_token="+accessToken+"&type=jsapi";
String menuJsonStr = HttpUtil.get(url);
final Type type = new TypeToken<Map
final Map
try{
ticket = ticketInfo.get("ticket").toString();
String expires_in = ticketInfo.get("expires_in").toString();
mapTicket.put("ticket", ticket);
logger.info("jsapi_ticket:"+ticket+";expires_in:"+expires_in);
}catch (JSONException e) {
ticket = null;
e.printStackTrace();
logger.error("ticket errcode:{}:"+ticketInfo.get("errcode")+"errmsg:{}:"+ticketInfo.get("errmsg"));
}
}
return ticket;
}
//生成随机字符串UUID
public static String getUUID(){
String uuid = UUID.randomUUID().toString().trim().replaceAll("-", "");
return uuid;
}
//JS-SDK Signature
public static String getSignature(String appId,String appSecret,String url,String timeStamp,String nonceStr){
String accessToken = getAccessToken(appId,appSecret);
String jsapi_ticket = getJsapiTicket(accessToken);
logger.info("accessToken==="+accessToken);
String signValue = "jsapi_ticket="+jsapi_ticket+"&noncestr="+nonceStr+"×tamp="+timeStamp+"&url="+url;
logger.info("微信JS-SDK权限验证的签名串:"+signValue);
//这个签名.主要是给加载微信js使用.别和上面的搞混了.
String signature = Sha1Util.getSha1((signValue));
logger.info("微信JS-SDK权限验证的签名:"+signature);
return signature;
}
复制代码
另外项目用到的Sha1Util.java和MD5Util.java可以直接在平台下载。
希望对JAVA有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言JAVA频道!
擅长针对企业软件开发的产品设计及开发的细节与流程设计课程内容。座右铭:大道至简!
已有23人表明态度,87%喜欢该老师!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号