没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论












vue使用微信使用微信JS-SDK实现分享功能实现分享功能
主要介绍了vue使用微信JS-SDK实现分享功能,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
最近开发微信公众号内嵌H5页面,使用vue搭建的项目,由于业务需求,需要实现微信自定义分享功能,所以项目中集成微信JS-SDK。微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的
网页开发工具包。通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、卡券、支付等微信特有的能力,为微信用
户提供更优质的网页体验。
1.绑定域名绑定域名
微信公众号开发测试帐号: http://mp.weixin.qq.com/debug ... ,需要填写接口配置,一个公网能访问的域名,推荐用natapp/路由侠。填写JS接口安全域名 ,设置JS接口安全域后,通过关注该测试
号,开发者即可在该域名下调用微信开放的JS接口,请阅读 微信JSSDK开发文档
1)这里使用路由侠,实现内网穿透 http://www.luyouxia.com/ ,下载安装后,配置相应的内网映射地址
2)设置JS接口安全域
2.引入引入JS文件文件
通过npm安装微信的js-sdk,或者在index.html页面中直接加script标签来引用,这里采用npm安装,
npm install weixin-js-sdk
在需要分享的页面中引入
import wx from 'weixin-js-sdk'
3.java实现实现js-sdk权限签名算法权限签名算法
1)jsapi_ticket
生成签名之前必须先了解一下jsapi_ticket,jsapi_ticket是公众号用于调用微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。由于获取jsapi_ticket的api调用
次数非常有限,频繁刷新jsapi_ticket会导致api调用受限,影响自身业务,开发者必须在自己的服务全局缓存jsapi_ticket。
2)获取access_token(有效期7200秒,开发者必须在自己的服务全局缓存access_token)
access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token,官方文档:
https://mp.weixin.qq.com/wiki ...
@RequestMapping(value = "/get_access_token", method = RequestMethod.GET)
public String getAssessToken() {
String url = "https://api.weixin.qq.com/cgi-bin/token";
String str = HttpClientUtil.sendGet(url, "grant_type=" + Constants.GRANTTYPE + "&secret=" + Constants.APPSECRET + "&appid=" + Constants.APPID);
JSONObject jsonObject = JSONObject.fromObject(str);
return jsonObject.toString();
}
3)获取access_token后,采用http GET方式请求获得jsapi_ticket
@RequestMapping(value = "/get_ticket", method = RequestMethod.GET)
public String getTicket() {
String urlToken = "https://api.weixin.qq.com/cgi-bin/token";
String tokenObj = HttpClientUtil.sendGet(urlToken, "grant_type=" + Constants.GRANTTYPE + "&secret=" + Constants.APPSECRET + "&appid=" + Constants.APPID);
JSONObject jsonToken = JSONObject.fromObject(tokenObj);
String access_token = jsonToken.getString("access_token");
String urlTicket = "https://api.weixin.qq.com/cgi-bin/ticket/getticket";
String strTicket = HttpClientUtil.sendGet(urlTicket, "type=jsapi" + "&access_token=" + access_token);
JSONObject jsonTicket = JSONObject.fromObject(strTicket);
return jsonTicket.toString();
}
4)签名算法
签名生成规则如下:参与签名的字段包括noncestr(随机字符串), 有效的jsapi_ticket, timestamp(时间戳), url(当前网页的URL,不包含#及其后面部分) 。对所有待签名参数按照字段名的ASCII 码
从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1。这里需要注意的是所有参数名均为小写字符。对string1作sha1加密,字段名和字段值都采用原始
值,不进行URL 转义。
//主要代码
@RequestMapping(value = "/get_signature", method = RequestMethod.GET)
public Map<String, String> getSignature(String url) {
Map<String, String> ret = new HashMap<String, String>();
String wxTicket = getWxApiTicket();
String nonce_str = create_nonce_str();
String timestamp = create_timestamp();
String str;
String signature = "";
//注意这里参数名必须全部小写,且必须有序
str = "jsapi_ticket=" + wxTicket +
"&noncestr=" + nonce_str +
"×tamp=" + timestamp +
"&url=" + url;
logger.info(str);
try {
MessageDigest crypt = MessageDigest.getInstance("SHA-1");
crypt.reset();
crypt.update(str.getBytes("UTF-8"));
signature = byteToHex(crypt.digest());
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
ret.put("url", url);
ret.put("jsapi_ticket", wxTicket);
ret.put("nonceStr", nonce_str);
ret.put("timestamp", timestamp);
ret.put("signature", signature);
ret.put("appId", Constants.APPID);
return ret;
}
签名接口返回信息
{
"signature":"4021b3f502e6bd15798a0433af33c4ef1be4ff83",
"appId":"wx618f45e4948c3889",
"jsapi_ticket":"sM4AOVdWfPE4DxkXGEs8VOxnOWlkG3Q1qP1pwA8mBLNgkCewNOfFiU8EmlnAx8_Fe0Zh-rGS03Nu8BQZB0a4-g",
"url":null,
"nonceStr":"ab5d0e96-429b-4a86-bd88-dc1276dcf76f",
"timestamp":"1566527616"
}
注意事项注意事项
资源评论

- 本本纲目2023-07-29文档给出了一些实际的代码示例,帮助读者更好地应用微信JS-SDK进行分享功能开发。
- 嗨了伐得了2023-07-29文档中还提供了一些注意事项,让读者能够避免一些常见的错误。
- 金山文档2023-07-29这篇文档详细介绍了如何在Vue项目中使用微信JS-SDK实现分享功能,很实用。
- 我就是月下2023-07-29作者以简洁明了的语言介绍了使用微信JS-SDK实现分享功能的步骤,让人容易理解。
- 陈莽昆2023-07-29总体来说,这篇文档对于想要在Vue项目中使用微信JS-SDK实现分享功能的开发者来说是一份很有价值的参考资料。

weixin_38571992
- 粉丝: 1
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 东北大学2021年9月《数控机床与编程》作业考核试题及答案参考10.docx
- 基于改进的遗传程序设计实现组合电路的进化设计的开题报告.docx
- 认识计算机课件(2).pptx
- 福建师范大学2021年9月《数据库应用》技术作业考核试题及答案参考5.docx
- JavaScript的String字符串对象常用操作总结.doc
- 计算机二级ps考试题库资料讲解.docx
- 学习MATLAB作图教学材料.ppt
- 南方CASS软件该怎样计算土方量.doc
- 从众安在线看我国互联网保险的发展轨迹.docx
- IT国内应用软件项目管理的若干问题.doc
- 通信电源配套勘察设计规程(2).doc
- 第5章光纤通信有源器件x教程文件.ppt
- 交通学院通信原理.pptx
- 事业单位人力资源开发信息化研究.docx
- 单片机的流量控制系统.doc
- Web系统性能测试研究及应用.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
