# WXToken

项目地址:[https://github.com/henson/WXToken](https://github.com/henson/WXToken)

因为手上有一个项目需要用到微信的朋友圈分享,涉及到微信JSSDK,所以写了个生成示例,自动获取微信access_token、jsapi_ticket和signature签名算法,开箱即用。

## 配置

首选进入main.go,配置相关参数:

```go

var (

//微信公众号

wxAppID = ""

wxSecret = ""

//随机字符串

wxNoncestr = ""

//Port 本地端口

Port = ":8383"

)

```

因为access_token和jsapi_ticket的有效期都只有7200秒,需要在自己的服务全局缓存,所以用BoltDB做了持久化并自动更新。本项目也附带自适应web模板、ajax交互示例,可以当成web项目参考。

## JSSDK使用步骤

### 步骤一:绑定域名

先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。

备注:登录后可在“开发者中心”查看对应的接口权限。

### 步骤二:引入JS文件

在需要调用JS接口的页面引入如下JS文件,(支持https):[http://res.wx.qq.com/open/js/jweixin-1.2.0.js](http://res.wx.qq.com/open/js/jweixin-1.2.0.js)

备注:支持使用 AMD/CMD 标准模块加载方法加载

### 步骤三:通过config接口注入权限验证配置

所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用,目前Android微信客户端不支持pushState的H5新特性,所以使用pushState来实现web app的页面会导致签名失败,此问题会在Android6.2中修复)。

```

wx.config({

debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。

appId: '', // 必填,公众号的唯一标识

timestamp: , // 必填,生成签名的时间戳

nonceStr: '', // 必填,生成签名的随机串

signature: '',// 必填,签名

jsApiList: [] // 必填,需要使用的JS接口列表

});

```

签名算法见[微信JSSDK说明附录1](https://mp.weixin.qq.com/wiki?action=doc&id=mp1421141115#62),所有JS接口列表见[微信JSSDK说明附录2](https://mp.weixin.qq.com/wiki?action=doc&id=mp1421141115#63)

### 步骤四:通过ready接口处理成功验证

```

wx.ready(function(){

// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。

});

```

### 步骤五:通过error接口处理失败验证

```

wx.error(function(res){

// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。

});

```

详细请参考[微信官方说明文档](https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115)

有疑问加站长微信联系(非本文作者)

微信jssdk ajax 获取签名,【Golang版】微信access_token、jsapi_ticket、signature签名算法生成示例,开箱即用...相关推荐

  1. PHP---微信JS-SDK获取access_token/jsapi_ticket/signature权限签名算法,php/thinkphp实现微信分享自定义文字和图片...

    PHP---微信JS-SDK获取access_token/jsapi_ticket/signature权限签名算法, php/thinkphp实现微信分享自定义文字和图片. 一.先看微信JS-SDK文 ...

  2. 视频教程-微信公众平台开发实战PHP版-微信开发

    微信公众平台开发实战PHP版 互联商通创始人/架构师, 在IT领域摸爬滚打20年的全栈老程序员(架构师.培训讲师).熟悉iOS.Android及LNMP的架构下快速开发互联网相关项目.精通微信和支付宝 ...

  3. 微信团队原创分享:iOS版微信的内存监控系统技术实践

    为什么80%的码农都做不了架构师?>>>    本文来自微信开发团队yangyang的技术分享. 一.前言 FOOM(Foreground Out Of Memory),是指App在 ...

  4. 微信小程序获取带表情的微信名乱码问题

    微信小程序获取带表情的微信名乱码问题 在后台获取完微信用户数据后,对微信名进行UTF-8编码 URLEncoder.encode(nickName, "utf-8") ,将编码后的 ...

  5. 微信团队原创分享:Android版微信后台保活实战分享(进程保活篇)

    http://www.52im.net/thread-210-1-1.html 哪些部分需要"保活"? 按照我们的理解包含两部分: 网络连接保活: 如何保证消息接收实时性.详见本文 ...

  6. 微信昵称乱码 mysql_微信网页开发获取用户昵称乱码 微信昵称包含emoji表情乱码的解决方案...

    微信网页开发获取用户昵称乱码 微信昵称包含emoji表情乱码的解决方案如下: 问题产生原因:由于数据库及属性一致设为utf8,而utf8只支持1-3个字节.当用户昵称为emoji表情时,获取用户基本信 ...

  7. 对hash签名失败_vue项目中微信jssdk在ios签名失败

    一.问题描述 1. vue项目中微信jssdk签名时,在安卓和ios是有差异的,签名时使用的url=window.location.href.split('#')[0],此时在安卓没问题,在ios会导 ...

  8. Java微信公众平台获取签名

    如果想使用微信的JSSDK,需要注册公众号和获取签名,Java代码实现如附件: 使用的是servlet,access_token和ticket缓存在application作用域里 附件为源代码:wx. ...

  9. 微信 android 平台 应用签名错误,IOS微信上Vue单页面应用JSSDK签名失败解决方案

    背景 手机型号: 型号:iphone 7 / iphone xs max 版本:ios 10.3.1 / ios 12.1 微信版本:WeChat 6.7.3 问题还原: Vue应用(vue-rout ...

最新文章

  1. Diango 模板层
  2. Navicat设置字段类型
  3. SQL SERVER数据导入到EXCEL
  4. 数学图形(1.43)贝壳形曲线与鱼形曲线
  5. 六.激光SLAM框架学习之A-LOAM框架---项目工程代码介绍---4.laserMapping.cpp--后端建图和帧位姿精估计(优化)
  6. target ajax,jQuery target - jquery事件
  7. 使用 Responsive Elements 快速构建响应式网站
  8. 【NeurIPS 2019】Yoshua Bengio报告:深度学习系统从1代到2代中的基础知识
  9. 龙格库塔求解车辆振动模型
  10. 如何跨网络远程操作另一台计算机,如何远程控制另一台电脑?
  11. 微信屏蔽的是域名还是服务器ip,域名从未使用也会被微信屏蔽,这个你怎么看?...
  12. 交换机指示灯状态说明
  13. 【CC精品教程】ContextCapture(CC)集群处理环境部署图文教程
  14. 华为wifi信号如何连接到服务器,如何解决华为路由器搜到信号却无法连接
  15. js获取对象的方法,根据id、根据name、根据标签名、根据类名
  16. 模糊控制——(3)模糊自适应整定PID控制
  17. #NameError: name ‘x‘ is not defined
  18. 实验室设计SICOLAB第三方检测中心实验室设计
  19. XSS Challenges/刷题/Stage #4
  20. JAVA基础控制台版本演示增删改查项目(带完整源码)

热门文章

  1. 笔记本电脑下载python视频教程-如何使用Python访问/下载OneNote笔记本?
  2. python推荐系统-利用python构建一个简单的推荐系统
  3. python工程师薪资坑吗-想转行,是要入坑Python还是Java?这问题还用问?
  4. 学python是看书还是看视频-零基础自学Python是看书还是看视频?
  5. python基础知识梳理-Python基础知识梳理 - 第03部分
  6. python软件代码示例-Python学习示例源码
  7. python自带库处理excel-python处理excel之第三方库openpyxl
  8. 关于深度学习中GPU显存使用的介绍
  9. mysql基础sql语句_SQL基础语句汇总
  10. java工程师的工作时间_Java 工程师真的每天只需工作四小时吗?