【公众号H5sdk签名】 config:fail,Error: 系统错误,错误码:63002,invalid signature

18 篇文章 0 订阅
6 篇文章 0 订阅

今天在做公众号H5的sdk分享功能,出现了
config:fail,Error: 系统错误,错误码:63002,invalid signature这个报错
[微信官方文档(公众号)]
sdk官网链接直达

因为我是完全按照文档来写的代码,检查了一遍也没发现什么问题,
所以我把问题定位到是签名出错或者是公众号信息配置出现了问题
我是从两个角度去思考这个报错的

一、公众号信息配置出现问题
那么我是怎么去配置的呢?

首先,第一步
① 我们需要一个公众号,必须是服务号,且微信认证审核通过,没有认证或认证过期都是不可以的
②需要有备案过的域名(必须是备案过的,否则无法使用)
③在微信公众平台-公众号设置-功能设置-配置js接口域名(需将下载文件上传至指定的目录
备注:登录后可在“开发者中心”查看对应的接口权限
在这里插入图片描述

第二步 、引入js文件
在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.6.0.js
备注:支持使用 AMD/CMD 标准模块加载方法加载
因为我的项目是uniapp,所以我是使用下载并导入的方式
也可使用npm包安装的方式

npm install jweixin-module --save

①下载

下载链接:[https://www.lanzous.com/i8ujkvi](https://www.lanzous.com/i8ujkvi)

下载后放在项目中,具体放置位置可自行选择,比如直接放在根目录,或者放在 components 目录

在这里插入图片描述
②在main.js中引入

var jweixin=require('jweixin-module)
Vue.prototype.$wx=jweixin

在这里插入图片描述

③使用(在自己需要的地方调用函数)

let time = Date.parse(new Date())
				let str = this.randomCoding()
				let params = {
					"noncestr": str,
					"timestamp": time / 1000,
					"url": window.location.href.split('#')[0]
				}
				let that = this
				jssdkSign(params).then(res => {
					if (res.data) {
						this.$wx.config({
							debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
							appId: uni.getStorageSync('appId'), // 必填,公众号的唯一标识
							timestamp: time / 1000, // 必填,生成签名的时间戳
							nonceStr: str, // 必填,生成签名的随机串
							signature: res.data, // 必填,签名
							jsApiList: ['updateAppMessageShareData', 'updateTimelineShareData',
								'onMenuShareAppMessage', 'onMenuShareTimeline'
							] // 必填,需要使用的JS接口列表
						});
					}
				})

				setTimeout(() => {
					this.$wx.ready(() => {
						var shareData = {
							// that.detail.info

							title: that.detail.name, // 分享标题
							desc: '2222222', // 分享描述
							link: location.href, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
							imgUrl: that.detail.coverUrls, // 分享图标
							success: function() {
								// 设置成功
								console.log('分享成功')
							}

						}
						this.$wx.updateAppMessageShareData(shareData)
						this.$wx.updateTimelineShareData(shareData)
						this.$wx.onMenuShareAppMessage({
							title: that.detail.name, // 分享标题
							desc: that.detail.info, // 分享描述
							link: location.href, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
							imgUrl: that.detail.coverUrls, // 分享图标
							type: '', // 分享类型,music、video或link,不填默认为link
							dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
							success: function() {
								// alert(11111)
								// 用户点击了分享后执行的回调函数
							}
						});
					});
				}, 1000)

在确认完前端没问题的前提下,我开始去怀疑后端返回的数据问题

二、后端返回签名问题
找后端小哥哥对峙 还真是

对应后端签名 可以参考
https://www.cnblogs.com/niceyoo/p/12232641.html

参考文章:https://juejin.cn/post/6844903959753146381

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值