We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
随着业务需求的不断增加,微信 JS-SDK 接口的调用就成了必然。因为只有合法调用了微信 JS-SDK 接口,才能使用相关功能,比如自定义微信内转发链接的样式等等。
公众号接口权限说明:在开发业务之前,一定要先来这里看看,当前用于开发的公众号是否有对应的权限!
echostr
abc.com/wx
用于调用后端服务的前端页面,所属域名必须在公众号的 JS接口安全域名 的列表之中。
设置 ⇒ 公众号设置 ⇒ 功能设置 ⇒ JS接口安全域名,在这里将前端页面所属域名添加进来。
另外在设置界面提供下载的 txt 文件,必须能够通过指定的域名直接访问到,否则也会设置失败。
先接入微信公众平台:接入指南
重点是第二步,在自己的服务器上要编写后台服务,将微信服务器所发送的 GET 请求中的 echostr 原样返回,这样微信服务器才能验证成功,平台就正式接入了。
注意:即使所有设置都不变,每次提交服务器配置时,微信服务器所发送的 GET 测试请求中的各项参数也会变化。
再注意:本次提交服务器配置的时间,如果和上一次提交隔了几分钟以上的话,初次提交会超时,再次提交就 OK 了,不知道是不是自己的代码写得还不够完善。
示例代码:
router.get('/wx', function (req, res, next) { res.send(req.query.echostr); });
设置了 IP 白名单之后,自己的服务器才能获取到 access_token 和 jsapi_ticket 。
access_token
jsapi_ticket
开发 ⇒ 基本配置 ⇒ 公众号开发信息 ⇒ IP 白名单 ⇒ 查看 ⇒ 修改
微信公众平台接口调试工具:用于验证指定的 appId 和 appSecret 能否成功获取 access_token
appId
appSecret
微信 JS 接口签名校验工具:用于验证签名算法是否正确
参考链接:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183
let APPID = "" let APPSECRET = "" let accessTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + APPID + "&secret=" + APPSECRET
let ACCESS_TOKEN = "" let jsApi_Ticket = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + ACCESS_TOKEN + "&type=jsapi"
注意:确认一下发送到后端的 URL 是否需要先用 encodeURIComponent() 编码。
encodeURIComponent()
通过接口获取到 access_token 再获取到 jsapi_ticket 之后,要用 jsapi_ticket 进行签名。这时签名所用的 timestamp 和 noncestr ,必须和前面第一步接入平台验证 echostr 时所用的 timestamp 和 noncestr 相同。也就是说每次在公众号的“开发 ⇒ 基本配置 ⇒ 服务器配置”中更新了 timestamp 和 noncestr 之后,也要在后台的签名代码中对应更新。
timestamp
noncestr
这么说的话,在每次验证服务器配置的时候,把 timestamp 和 noncestr 写入数据库或者缓存不就好了?
vue 微信 转发
提供给开发者的测试账号,似乎可以不受限制地进行转发?上网查了查,测试帐号好像也没什么特殊的限制,写代码测试了一下,的确可用。不过为了保险起见,还是用正式的账号吧。
此处将实际的业务代码补充进来。
研究这个微信 JS-SDK 的调用真是个大工程,印象中搞了两个星期才弄好?要踩的坑实在是太多了。
用微信开发者工具测试微信 JS-SDK 接口的调用情况时,启动开发者工具之后,首次打开调用了接口的页面时,控制台显示的“当前页面通过 wx.config 获取到的 JSSDK 权限如下”的结果为空,需在不关闭开发者工具的前提下,刷新一下页面,这里显示的结果才有对应的值。
经过测试,发现这个问题在 Windows 和 Mac 上的微信开发者工具中均会出现。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
需求描述
随着业务需求的不断增加,微信 JS-SDK 接口的调用就成了必然。因为只有合法调用了微信 JS-SDK 接口,才能使用相关功能,比如自定义微信内转发链接的样式等等。
方案调研
整体流程
接口权限
公众号接口权限说明:在开发业务之前,一定要先来这里看看,当前用于开发的公众号是否有对应的权限!
echostr
,所以应当填写abc.com/wx
这样的接口地址而不只是域名。设置安全域名
用于调用后端服务的前端页面,所属域名必须在公众号的 JS接口安全域名 的列表之中。
设置 ⇒ 公众号设置 ⇒ 功能设置 ⇒ JS接口安全域名,在这里将前端页面所属域名添加进来。
另外在设置界面提供下载的 txt 文件,必须能够通过指定的域名直接访问到,否则也会设置失败。
接入平台
先接入微信公众平台:接入指南
重点是第二步,在自己的服务器上要编写后台服务,将微信服务器所发送的 GET 请求中的
echostr
原样返回,这样微信服务器才能验证成功,平台就正式接入了。注意:即使所有设置都不变,每次提交服务器配置时,微信服务器所发送的 GET 测试请求中的各项参数也会变化。
再注意:本次提交服务器配置的时间,如果和上一次提交隔了几分钟以上的话,初次提交会超时,再次提交就 OK 了,不知道是不是自己的代码写得还不够完善。
示例代码:
设置后端服务 IP 的白名单
设置了 IP 白名单之后,自己的服务器才能获取到
access_token
和jsapi_ticket
。开发 ⇒ 基本配置 ⇒ 公众号开发信息 ⇒ IP 白名单 ⇒ 查看 ⇒ 修改
接口调试工具
微信公众平台接口调试工具:用于验证指定的
appId
和appSecret
能否成功获取access_token
微信 JS 接口签名校验工具:用于验证签名算法是否正确
获取 access_token
参考链接:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183
获取 jsapi_ticket
注意:确认一下发送到后端的 URL 是否需要先用
encodeURIComponent()
编码。签名
通过接口获取到
access_token
再获取到jsapi_ticket
之后,要用jsapi_ticket
进行签名。这时签名所用的timestamp
和noncestr
,必须和前面第一步接入平台验证echostr
时所用的timestamp
和noncestr
相同。也就是说每次在公众号的“开发 ⇒ 基本配置 ⇒ 服务器配置”中更新了timestamp
和noncestr
之后,也要在后台的签名代码中对应更新。这么说的话,在每次验证服务器配置的时候,把
timestamp
和noncestr
写入数据库或者缓存不就好了?前端调用
vue 微信 转发
测试账号
提供给开发者的测试账号,似乎可以不受限制地进行转发?上网查了查,测试帐号好像也没什么特殊的限制,写代码测试了一下,的确可用。不过为了保险起见,还是用正式的账号吧。
配置信息
应用过程
此处将实际的业务代码补充进来。
要点总结
研究这个微信 JS-SDK 的调用真是个大工程,印象中搞了两个星期才弄好?要踩的坑实在是太多了。
注意事项
开发者工具控制台输出结果
用微信开发者工具测试微信 JS-SDK 接口的调用情况时,启动开发者工具之后,首次打开调用了接口的页面时,控制台显示的“当前页面通过 wx.config 获取到的 JSSDK 权限如下”的结果为空,需在不关闭开发者工具的前提下,刷新一下页面,这里显示的结果才有对应的值。
经过测试,发现这个问题在 Windows 和 Mac 上的微信开发者工具中均会出现。
The text was updated successfully, but these errors were encountered: