java接入微信js-sdk
来源:互联网 发布:java web消息推送框架 编辑:程序博客网 时间:2024/04/29 22:17
关于js-sdk大家一起不陌生;但是接入的话可能有种种问题;下面我就来分享下我在使用中的各种问题
1.必须要有个公众号;并且支持相对应的接口;你必须要有台服务器;
下面是绑定域名
注意这里;最好是把主域名和子域名全部写进去;免得发生错误
2.下面是java代码做后台处理;调用接口实现签名
package com.base.weixin;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import com.google.gson.Gson;public class Jssdk {public final static String APPID = "";private final static String SECRET = "";// 1.获取access_token/** * * 获得ACCESS_TOKEN * * * * @Title: getAccess_token * * @Description: 获得ACCESS_TOKEN * * @param @return 设定文件 * * @return String 返回类型 * * @throws * */public static String getAccess_token() {String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+APPID + "&secret=" +SECRET;String accessToken = null;try {URL urlGet = new URL(url);HttpURLConnection http = (HttpURLConnection) urlGet.openConnection();http.setRequestMethod("GET"); // 必须是get方式请求http.setRequestProperty("Content-Type","application/x-www-form-urlencoded");http.setDoOutput(true);http.setDoInput(true);System.setProperty("sun.net.client.defaultConnectTimeout", "30000");// 连接超时30秒System.setProperty("sun.net.client.defaultReadTimeout", "30000"); // 读取超时30秒http.connect();InputStream is = http.getInputStream();int size = is.available();byte[] jsonBytes = new byte[size];is.read(jsonBytes);String message = new String(jsonBytes, "UTF-8");Gson gson=new Gson();GetAccess fromJson = gson.fromJson(message,GetAccess.class);//System.out.println(message);accessToken=fromJson.getAccess_token();is.close();} catch (Exception e) {e.printStackTrace();}return accessToken;}// 2.获取jsapi_ticket/** * 调用微信JS接口的临时票据 * * @param access_token 接口访问凭证 * @return */ public static String getJsApiTicket(String access_token) { String ticket=null; String url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi"; String requestUrl = url.replace("ACCESS_TOKEN", access_token); try {URL urlGet = new URL(requestUrl);HttpURLConnection http = (HttpURLConnection) urlGet.openConnection();http.setRequestMethod("GET"); // 必须是get方式请求http.setRequestProperty("Content-Type","application/x-www-form-urlencoded");http.setDoOutput(true);http.setDoInput(true);System.setProperty("sun.net.client.defaultConnectTimeout", "30000");// 连接超时30秒System.setProperty("sun.net.client.defaultReadTimeout", "30000"); // 读取超时30秒http.connect();InputStream is = http.getInputStream();int size = is.available();byte[] jsonBytes = new byte[size];is.read(jsonBytes);String message = new String(jsonBytes, "UTF-8");Gson gson=new Gson();GetAccess fromJson = gson.fromJson(message,GetAccess.class);ticket=fromJson.getTicket();//System.out.println(message);//System.out.println(ticket); is.close();} catch (Exception e) {e.printStackTrace();} return ticket; } public static void main(String[] args) {Jssdk.getJsApiTicket(Jssdk.getAccess_token());}}
下面是;调用并返回相对应的数据到页面让js使用 【最好是加上缓存;接口的调用有限制】
//微信分享
String url=UrlGet.getUrl(getRequest());
Map<String, String> sign = Sign.sign(Jssdk.getJsApiTicket(Jssdk.getAccess_token()), url);
setAttr("sign",sign);
//微信分享end
//以下是调用的js代码
<!-- 微信分享 --><script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script><script type="text/javascript"> var url = window.location.href;wx.config({ debug: flase, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:'${sign.appid}', // 必填,公众号的唯一标识 timestamp:'${sign.timestamp}', // 必填,生成签名的时间戳 nonceStr: '${sign.nonceStr}', // 必填,生成签名的随机串 signature: '${sign.signature}',// 必填,签名,见附录1 jsApiList: ['onMenuShareTimeline'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2});wx.ready(function(){//wx.onMenuShareTimeline({ title: '${content.title}', // 分享标题 link: url, // 分享链接 imgUrl: 'm.e-faxin.com${content.type_img}', // 分享图标 success: function () { // 用户确认分享后执行的回调函数//alert("ok"); }, cancel: function () { // 用户取消分享后执行的回调函数 }});wx.onMenuShareAppMessage({ title: '${content.title}', // 分享标题 desc: '东方法信', // 分享描述 link: url, // 分享链接 imgUrl:'m.e-faxin.com${content.type_img}', // 分享图标 type: '', // 分享类型,music、video或link,不填默认为link dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空 success: function () { // 用户确认分享后执行的回调函数 }, cancel: function () { // 用户取消分享后执行的回调函数 }});});wx.error(function(res){alert("失败"+res);})</script>
0 0
- java接入微信js-sdk
- 微信开放平台JS SDK接入sha1算法
- 微信公众号接入JS SDK问题小结
- ios接入微信sdk
- ios 接入微信sdk
- 手把手教您开发JAVA微信SDK-新手接入
- 微信分享SDK接入——Java
- 微信分享SDK接入——Java
- 微信分享SDK接入——Java
- 微信接入js-sdk-获取地理位置,打开微信内置地图
- JavaScript强化教程 —— Cocos2d-JS游戏快速接入微信JS-SDK
- java微信js SDK页面签名
- 微信开发:js sdk 分享(java)
- Unity IOS微信SDK接入
- 第三方SDK接入--微信
- Android微信SDK接入总结
- iOS -- 接入微信SDK包报错
- 接入第三方SDK-微信支付
- Binary Tree Level Order Traversal
- Java中OutOfMemoryError(内存溢出)的三种情况及解决办法
- CSDN-markdown效果源码对照
- doubang中tinyRTP传输逻辑
- 汽水小公举控件
- java接入微信js-sdk
- 第十三周项目1Prim算法的验证
- Javascript、Jquery获取浏览器和屏幕各种高度宽度
- 第13周SHH数据结构-【项目3-Dijkstra算法的验证 】
- 大学生到底适不适合创业 来自互联网大佬的指点
- 归并排序
- bootstrap不同级别的标题
- 交互设计的标准法则
- Binary Tree Level Order Traversal II