jssdk信息验证失败_微信公众号开发——微信JSSDK使用_weixin_39837105的博客-程序员秘密

技术标签: 微信 SHA1 签名  jssdk信息验证失败  

微信JSSDK介绍

官方文档地址:
概述 | 微信开放文档​links.jianshu.com
663b624bb13e9af37f0e982e9061b1cb.png


因为微信公众号的开通对于大部分开发人员来说还是一个稍高的门槛,所以,微信搞了一个微信测试号,开发人员使用微信扫一下就可以获取。测试号貌似是全接口调用的哦!不用担心没有权限调用。
申请入口:

微信公众平台​links.jianshu.com

0f72faffe59a5ffb9c591c5594fb7ccd.png

开发配置

所有配置参考下图配置即可

e0363b9d40194c0fbcba67873464b334.png
在配置时,需要注意几点
  • 接口配置信息中,要配合系统后台,我的系统是thinkPHP5,下面是我的代码
// 下面代码放在controller中,token是你的访问入口
// 例:https://www.whongbin.cn/wechat/index/token
public function token()
{
    $echoStr = $_GET["echostr"];
    if ($this->checkSignature()){
        echo $echoStr;
        exit;
    }
}

/**
 * 用于验证是否是微信服务器发来的消息
 * @return bool
 */
private function checkSignature()
{
    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];

    $token = 'whongbin';
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr);
    $tmpStr = implode($tmpArr);
    $tmpStr = sha1($tmpStr);

    if ($tmpStr == $signature){
        return true;
    }else {
        return false;
    }
}
  • 配置JS接口安全域名时,注意是 域名 不需要填写http/https,如果填写的话,在代码执行wx.config()时,会报 config:fail,Error: invalid url domain 错误,正确示例:www.whongbin.cn

微信JSSDK使用

  1. 在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.4.0.js
  2. jssdk的签名权限,这个权限是由后台提供的,前端只需要把签名权限注入到wx.config中就可以了,这里也提供下jssdk的下载地址http://demo.open.weixin.qq.com/jssdk/sample.zip,SDK中有demo
wx.config({
    debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
    appId: '', // 必填,公众号的唯一标识
    timestamp: , // 必填,生成签名的时间戳
    nonceStr: '', // 必填,生成签名的随机串
    signature: '',// 必填,签名
    jsApiList: ['openLocation'] // 必填,需要使用的JS接口列表 这里填写需要用到的微信api openlocation为使用微信内置地图查看位置接口
});原文链接:https://www.whongbin.com/archives/313.html原文链接:https://www.whongbin.com/archives/313.html
wx.ready(function () {
    wx.checkJsApi({
        jsApiList: ['checkJsApi','openLocation'],
        success: function (res) {}
    });
});
wx.error(function(res){
    console.log(res);
});
这里需要注意的地方debug在上线后要改为false,jsApiList里要填你要使用的接口,不然没有作用
  1. 给导航按钮注册点击事件,调用wx.openLocation方法,注意:因为这块是需要用户触发的,所以不必放在wx.ready()方法中,若需要页面加载时就执行的话,如分享接口,就必须放在wx.ready()方法中执行
$('.btn2').click(function () {
    wx.openLocation({
        latitude: 22.545538, // 纬度,浮点数,范围为90 ~ -90。如果是动态获取的数据,使用parseFloat()处理数据
        longitude: 114.054565, // 经度,浮点数,范围为180 ~ -180。如果是动态获取的数据,使用parseFloat()处理数据;
        name: '这里填写位置名', // 位置名
        address: '位置名的详情说明', // 地址详情说明
        scale: 10, // 地图缩放级别,整形值,范围从1~28。默认为最大
    });
})

原文链接:简书

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39837105/article/details/110123160

智能推荐

go语言socket编程_后打开撒打发了的博客-程序员秘密

go语言socket编程用go写socket非常简单,如果你了解其他语言的socket的话一看便知,如果想深入的话,个人建议看uninx网络编程套接字联网API这本书。在go中,网络协议被封装的非常完好了,我们并不需要像其他语言那样需要socket、bind、listen、receive、connect等一系列的操作,只需要go中自带的net包就可以很方便的完成socket编程。server.gop

ASP.NET中使用一般处理程序ashx作为后台处理实现响应get和post请求_ashx get_ElegantHedgehog的博客-程序员秘密

场景ASP.NET中新建Web网站并部署到IIS上(详细图文教程):https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/107199747在上面博客中已经将网站部署到了IIS上。怎样对前端的请求进行响应普通文本和JSON数据以及怎样获取get和post请求参数。注:博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。实现.

Impala - 刷新表的两种方式invalidate metadata和refresh_impala refresh_摸鱼同学的博客-程序员秘密

impala刷新表有两种方式invalidate metadata和refresh: invalidate metadata invalidate metadata:刷新元数据和文件-- 刷新所有库中的所有表invalidate metadata;-- 刷新指定库的指定表invalidate metadata tablename;refreshrefresh:不刷新元数据,只刷新文件-- 刷新指定表refresh tablename-- 刷新指定表的分区

stm32 起步 gpio操作_"#inalude\"stm32f /0x.h”//int main(void)//#// gpio_chen1139的博客-程序员秘密

在工程中增加gpio lib.h和stm32头文件,如下: #include “stm32f10x.h” // Device header #include “stm32f10x_gpio.h”调用lib配置gpio工作方式,先开启时钟,选GPIO,设置GPIO mode,gpio speed,主要看GPIO_InitTypeDef 结构体,芯片不同结构体不同

简单来理解PCA算法_pca算法怎么对特征排序_是可帅鸭的博客-程序员秘密

快速了解PCA算法  PCA(Principal Component Analysis),即主成分分析方法,是一种使用最广泛的数据降维算法。PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。1基于特征分解实现的PCA2基于特征分解协方差矩阵实现的PCA的算法步骤:设有m条n维数据。  1)将原始数据按列组成n行m列矩阵X  2)将X的每一行(代表一个属性字段)

服务器巡检规范_服务器日常巡检规范_geek_渐闻的博客-程序员秘密

服务器巡检规范01.服务器主机巡检规范02.服务器日常巡检细则03.管理员账号管理规范04.用户服务器系统使用规范05.机房来访人员管理规范06.主机防火墙管理规范07.组织容器命名规范08.服务器主机名命名规范01.服务器主机巡检规范1.检查服务器运行情况,内存负载,存储负载,cpu负载,网络负载,负载过高时进行资源释放操作,或者对资源进行扩容2.检查机房服务器以及存储上的硬盘指示灯,报红...

随便推点

android OTA差分包的生成方法_hnhuibo的博客-程序员秘密

在make android系统后,会生成系统的img文件。make otapackage 会生成sd卡用的全部系统升级包,有260M多。要生成增量升级包。需要按以下步骤。mkdir ~/OTA source build/envsetup.sh; choosecombo 1 1 7 engmake -jxx ;make otapackage

电子商城——将工程改造为SOA架构(4)_uu_uuu的博客-程序员秘密

目录1分析2工程改造2.1拆分工程2.2服务层工程2.3表现层工程3工程测试1分析由于电子商城是基于soa的架构,表现层和服务层是不同的工程。所以要实现类似于商品列表查询这样的功能,需要两个系统之间进行通信。如何实现远程通信?1、Webservice:效率不高基于soap协议。项目中不推荐使用。2、使用restful形式的服务:http+j...

Android 简单的自定义dialog_android 灵活的自定义dialog_小鱼遨游的博客-程序员秘密

菜鸟报道———-简单的自定义dialogAlertDialog.Builder builder = new AlertDialog.Builder(InterViewSurfaceNewActivty.this);alertDialog = builder.create();alertDialog.setCanceledOnTouchOutside(false);//设置区域外点击消失aler

动态规划-DP-——股票问题_RUML的博客-程序员秘密

股票问题(简单DP)摘要本文主要介绍了和DP相关的股票问题,分析比较简单,容易理解,适合刚接触DP的朋友们学习。股票Ⅰ题面假设您有一个数组,第i个元素是第i天给定股票的价格。如果只允许您最多完成一笔交易(即买入和卖出一股股票),请设计一种算法以找到最大的利润(卖出的价格-买入的价格)。请注意,您不能在买股票之前卖出股票。输入多组输入数据每组数据第一行一个数n,(1≤n≤105)接下来一行n个数表示股票的价格(1≤ai≤109)输出每组数据一行一个数。输入样例51 2

数据分析——统计学理论和方法_Eureka丶的博客-程序员秘密

1、描述统计描述统计是通过图表或数学方法,对数据资料进行整理、分析,并对数据的分布状态、数字特征和随机变量之间关系进行估计和描述的方法。描述统计分为集中趋势分析和离中趋势分析和相关分析三大部分。集中趋势分析集中趋势分析主要靠平均数、中数、众数等统计指标来表示数据的集中趋势。例如被试的平均成绩多少?是正偏分布还是负偏分布?离中趋势分析离中趋势分析主要靠全距、四分差、平均差、方差(协方差:用来度量两个随机变量关系的统计量)、标准差等统计指标来研究数据的离中趋势。例如,我们想知道两个教学班的语

Python环境搭建(超详细)_lnmpython搭建_二三是廿三的博客-程序员秘密

python环境搭建1.从网站下载Python2.安装Python3.新建python_demo文件夹4.新建虚拟文件python -m venv venv5.查看venv文件夹6.激活虚拟环境直接使用虚拟环境下路径Script中的activate7.安装matplotlib库8.安装numpy库9.安装pandas库10.安装jupyter库安装后浏览器没有弹出jupyter编辑页面的解决办法一、生成配置文件windows + R 打开运行窗口输入

推荐文章

热门文章

相关标签