微信jssdk基本使用
来源:互联网 发布:seo牛人 编辑:程序博客网 时间:2024/06/05 19:11
对于如何使用jssdk并没有,太大难度,对于不熟悉的人来说,最大的坑在它配置的过程中。
使用jssdk需要注意以下几点:
1.需要在微信公众平台设置js接口安全域名。需要注意的是此处你需要设置的是域名,使用ip是不行的。同时这个设置每个月只可以修改3次,大家要确定后再修改。
2.后台需要通过appid,appsecret先获取到access_token,之后通过access_token才可以获得ticket。同时最好通过redis保存ticket。微信对此有说明。
3.如果需要使用媒体下载接口,即http://file.api.weixin.qq.com/cgi-bin/media/get?access_token="+access_token+"&media_id="+media_id;
你还需要缓存access_token。
以下是具体交互步骤,后台采用golang搭建请求。
后台方法:
func GetTicket() []byte {url := "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential" +"&appid=" + config.WxAppId +"&secret=" + config.WxAppSecrettoken := WxGet(url)if token == nil{fmt.Println("获取token错误")}var wxToken dao.WXTokenjson.Unmarshal(token,&wxToken)fmt.Println(wxToken.AccessToken)//保存微信accesstokenif wxToken.AccessToken != "" {redispool.RedisSETString("wx_access_token",wxToken.AccessToken,7200)}ticketUrl := "https://api.weixin.qq.com/cgi-bin/ticket/getticket?" +"access_token=" + wxToken.AccessToken + "&type=jsapi"ticket := WxGet(ticketUrl)if ticket == nil{fmt.Println("获取ticket错误")}fmt.Println("ticker:",ticket)var wxTicket dao.WXTicketjson.Unmarshal(ticket,&wxTicket)fmt.Println("wxTicket:",wxTicket)return ticket}func WxGet(u string) []byte {resp, err := http.Get(u)defer resp.Body.Close()if err != nil {fmt.Println(err)return nil}body, err := ioutil.ReadAll(resp.Body)if err != nil {fmt.Println(err)return nil}fmt.Println("body",string(body))return body}
前台方法:
$.get("/ticket",function(data,status){ console.log("Data: " + data.ticket + "\nStatus: " + status); var timestamp = Date.parse(new Date()); timestamp = timestamp / 1000; console.log("time:",timestamp); var u = uuid(); console.log("uuid:",u); console.log("ticket:",data.ticket); var l = location.href.split('#')[0] var stringTemp = "jsapi_ticket=" + data.ticket + "&noncestr=" + u + "×tamp=" + timestamp + "&url=" + l; var s = hex_sha1(stringTemp); console.log("sign:",s) wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: '', // 必填,公众号的唯一标识 timestamp: timestamp, // 必填,生成签名的时间戳 nonceStr: u, // 必填,生成签名的随机串 signature: s,// 必填,签名,见附录1 jsApiList: ["startRecord","stopRecord","onVoiceRecordEnd","playVoice","pauseVoice","stopVoice" ,"onVoicePlayEnd","uploadVoice","downloadVoice","chooseImage","previewImage","uploadImage","downloadImage"] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); });
在生成sign的url最好使用location.href.split('#')[0]来获得你的网址,同时你的网址需要和js安全域名一致。
阅读全文
0 0
- 微信jssdk基本使用
- 微信jssdk使用
- 使用微信JSSDK实现图片上传
- 微信分享 JSSDK的使用
- 微信签名及jsSDK的使用
- ThinkPHP微信JSSDK的使用
- 微信 JSSDK
- 微信JSSDK-demo
- 微信JSSDK使用指南
- 微信:JSSDK开发
- 微信jssdk总结
- 微信jssdk开发
- 微信 JSSDK 调用
- 微信JSSDK生成
- 微信jssdk封装
- 微信jssdk接口
- 关于使用微信JSSDK的配置问题
- 微信JSSDK开发详细文档-案例文档-使用策略
- 5.1 二叉树的顺序存储实验
- 公专星沙考场科目三考试考前相关注意事项
- 华为研发工程师编程题3
- 用选择法对10个数由小到大排序
- 认证鉴权与API权限控制在微服务架构中的设计与实现(一)
- 微信jssdk基本使用
- capstone训练营2017-12-11
- 360木马查杀后mysql数据不能启动
- MIT6.00 1x 第一讲-计算机科学简介-笔记
- 算法导论 第十章 基本数据结构 练习10.1-2
- codeforces 896C
- leetcode题解-19. Remove Nth Node From End of List
- WinPE VirtIO云主机版 支持west263 阿里云aliyun 送精简win2k3镜像
- eclipse版本和jdk对应关系