微信页面 config注入获取权限 自定义微信分享的图片链接及标题
2017-05-19 00:00
771 查看
页面js:
引入微信官方提供的js
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
注入config,然后定义分享参数,包含图片链接、描述、标题等
后台实现config的参数值生成
sign 方法进行jsapi_ticket的签名生成
生成config需要的签名信息等
引入微信官方提供的js
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
注入config,然后定义分享参数,包含图片链接、描述、标题等
wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: '${signMap.appId}', // 必填,公众号的唯一标识 timestamp: '${signMap.timestamp}', // 必填,生成签名的时间戳 nonceStr: '${signMap.nonceStr}', // 必填,生成签名的随机串 signature: '${signMap.signature}',// 必填,签名 jsApiList: [ 'checkJsApi', 'onMenuShareTimeline', 'onMenuShareAppMessage', 'showOptionMenu', 'hideOptionMenu'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2} }); window.share_config = { "share": { "imgUrl": $(".slideimg").eq(0).attr("src"),//分享图,默认当相对路径处理,所以使用绝对路径的的话,“http://”协议前缀必须在。 "desc" : $("#h-prodname").val(),//摘要,如果分享到朋友圈的话,不显示摘要。 "title" : $("#h-prodname").val(),//分享卡片标题 "link": window.location.href,//分享出去后的链接,这里可以将链接设置为另一个页面。(此链接带有code用来获取openid 不需要再次通过 微信网页授权获取) "success":function(){//分享成功后的回调函数 }, 'cancel': function () { // 用户取消分享后执行的回调函数 } } }; wx.ready(function () { wx.onMenuShareAppMessage(share_config.share);//分享给好友 wx.onMenuShareTimeline(share_config.share);//分享到朋友圈 wx.onMenuShareQQ(share_config.share);//分享给手机QQ });
后台实现config的参数值生成
sign 方法进行jsapi_ticket的签名生成
public static Map<String, String> sign(String jsapi_ticket, String url) { Map<String, String> ret = new HashMap<String, String>(); String nonce_str = create_nonce_str(); String timestamp = create_timestamp(); String string1; String signature = ""; //注意这里参数名必须全部小写,且必须有序 string1 = "jsapi_ticket=" + jsapi_ticket + "&noncestr=" + nonce_str + "×tamp=" + timestamp + "&url=" + url; System.out.println(string1); try { MessageDigest crypt = MessageDigest.getInstance("SHA-1"); crypt.reset(); crypt.update(string1.getBytes("UTF-8")); //对string1 字符串进行SHA-1加密处理 signature = byteToHex(crypt.digest()); //对加密后字符串转成16进制 } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } ret.put("appId", WeixinKit.getApiConfig().getAppId()); ret.put("url", url); ret.put("string1", string1); ret.put("jsapi_ticket", jsapi_ticket); ret.put("nonceStr", nonce_str); ret.put("timestamp", timestamp); ret.put("signature", signature); return ret; } private static String byteToHex(final byte[] hash) { Formatter formatter = new Formatter(); for (byte b : hash) { formatter.format("%02x", b); } String result = formatter.toString(); formatter.close(); return result; } //生成随机字符串 private static String create_nonce_str() { return UUID.randomUUID().toString(); } //生成时间戳字符串 private static String create_timestamp() { return Long.toString(System.currentTimeMillis() / 1000); }
生成config需要的签名信息等
ApiConfigKit.setThreadLocalApiConfig(WeixinKit.getApiConfig()); JsTicket JsTicket = JsTicketApi.getTicket(JsApiType.jsapi);//获取jsticket //生成config需要的签名信息等 Map<String, String> signMap = sign(JsTicket.getTicket(), getRequest().getRequestURL().append("?").append(getRequest().getQueryString()).toString()); setAttr("signMap", signMap);
相关文章推荐
- 关于微信自定义分享的链接、标题、描述、图片都未生效问题详解
- 微信开发(2):微信js sdk分享朋友圈,朋友,获取config接口注入权限验证(java)
- 如何在不接入微信API的情况下自定义分享内容(图片、链接、标题)
- 微信分享获取不到自定义标题和图片
- 微信自定义分享链接(设置标题+简介+图片)
- 实现微信JS-SDK分享自定义标题和图片
- 微信分享朋友圈分享代码自定义标题、说明、图标和分享链接
- 微信分享自定义标题和图片的js
- iOS 直接改变.html后缀的链接所对应的html页面样式,并获取html的标题,图片地址,id,内容
- 微信自定义分享标题、图片不正确原因排查
- 微信分享自定义图片标题摘要
- 和小猪一起搞微信开发——自定义分享到朋友圈的缩略图,链接,标题和摘要
- H5页面在QQ和微信上分享,为什么不能自定义设置图片和摘要?
- c#微信分享自定义标题、说明、图标和分享链接
- 吐血中, 调用分享到微信好友,加载的网络图片显示不出来,微信分享,自定义分享标题、内容描述关键词限制(红包)
- 微信分享时如何自定义标题,简介和图片
- 微信分享链接title,图片的实现(多页面)
- jsp自定义微信分享的标题,图片,摘要
- 微信分享网页自定义分享标题,图片,说明