微信公众号使用wx.config前端如何配置参数

这篇具有很好参考价值的文章主要介绍了微信公众号使用wx.config前端如何配置参数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需引用 jweixin-1.6.0.js 文件

npm install weixin-js-sdk

概述 | 微信开放文档

wx.config({
  debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来
  appId: '', // 必填,公众号的唯一标识
  timestamp: , // 必填,生成签名的时间戳
  nonceStr: '', // 必填,生成签名的随机串
  signature: '',// 必填,签名
  jsApiList: [] // 必填,需要使用的JS接口列表
});

        1.获取第一个参数生成签名的时间戳(其实就是获取当前时间)

// 时间戳
String timestamp = Long.toString((new Date().getTime()) / 1000);

        2.获取第二个签名随机串

// 随机串   (java实现方法,前端可忽略)
String nonceStr = UUID.randomUUID().toString();

        3.获取第三个参数签名

      签名 = 随机串 + ticket + 时间戳 + URL(当前页面),但是随机串和时间戳我们在上边已经获取到了,下边我们只获取 ticket和当前页面的 URL 就好了,最后把他们拼到一起(后端实现)

公众号H5中wx.config()踩坑

  • 微信公众号H5在配置微信参数的时候提示config:fail,Error: 系统错误错误码63002,invalid signature,表示签名有问题。签名的影响因素很多,但对于前端,最大的影响因素就是url参数要给对。url参数需要注意的两个点:

        1.需要公众号安全域名配置

        [公众号平台 => 设置与开发 => 公众号设置 => 功能设置 => JS接口安全域名]

        2.url 不能写死,哈希部分不要,如果需要哈希也就是#号后面的地址,那就修改模式为history。如果是vue项目使用了  vue-router  则需要在  vue.config.js  或  main.js  文件中修改模式

vue.config.js:

module.exports = {  
  devServer: {  
   mode:history  
  }  
}

main.js:

import Vue from 'vue'  
import Router from 'vue-router'  
  
Vue.use(Router)  

  
const router = new Router({  
  mode: 'history', // 这里设置为 history 模式  
  routes  
})  
  

        3.前端计算签名的方法

  1. 从[公众号平台 => 设置与开发 => 开发 => 基本配置]获取开发者ID(AppID)和开发者密码(AppSecret)
  2. 通过微信公众平台接口(https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET)获取access_token
    1. 通过微信公众平台接口( https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi )获取jsapi_ticket
  3. 使用微信 JS 接口签名校验工具(   https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign)计算签名
  4. 最后生成的签名和其他参数在wx.config()中调试即可。

公众号H5中wx.config()踩坑 - 简书 (jianshu.com)https://www.jianshu.com/p/c238a04f531e

注:如果我们是前端自测的话需下载        jssha        签名算法

npm i -save jssha

 具体步骤为:

        1.先使用微信公众平台接口  https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET  传入APPIDAppSecret获取token。(设置与开发 —> 基本配置 —> 公众号开发者信息获取并AppID 和 AppSecret)

        2.获取到token之后调用微信公众平台接口   https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi  获取ticket。

        3.当我们获取到token和ticket之后我们需要用到  jssha  签名算法得到签名signature

        4.至此我们就可以把获取到底参数填入wx.config配置中。文章来源地址https://www.toymoban.com/news/detail-841821.html

const APPID = process.uniEnv.WX_APPID
const SECRET = process.uniEnv.WX_SECRET

export function () {
/**
 * 微信公众号
 * 使用 APPID,SECRET 生成鉴权签名(Access Token)
 * @return string 鉴权签名信息(Access Token)
 */
	let tokenUrl = '/token?grant_type=client_credential&appid='+APPID  +
		'&secret=' + SECRET
/**
 * 微信公众号
 * 使用 Access Token 获取jsapi_ticket
 * @return string jsapi_ticket
 */
    let ticketUrl = '/ticket/getticket?type=jsapi&access_token=' + accessToken
}
import jsSHA from 'jssha';

const APPID = process.uniEnv.WX_APPID
const SECRET = process.uniEnv.WX_SECRET

/**
 * 微信公众号
 * 使用 APPID,SECRET 生成鉴权签名(Access Token)
 * @return string 鉴权签名信息(Access Token)
 */
export function getTokenTicket() {
	let tokenUrl = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='+APPID  +
		'&secret=' + SECRET
    return tokenUrl
}

/**
 * 微信公众号
 * 使用 Access Token 获取jsapi_ticket
 * @return string jsapi_ticket
 */
export function getTokenTicket(token) {
    let ticketUrl = '/ticket/getticket?type=jsapi&access_token=' + accessToken
    return ticketUrl
}

//生成签名的随机串
export function createNonceStr () {
	return Math.random().toString(36).substr(2, 15);
};

//生成签名的时间戳
export function createTimestamp () {
	return parseInt(new Date().getTime() / 1000) + '';
};

var raw = function(args) {
	var keys = Object.keys(args);
	keys = keys.sort()
	var newArgs = {};
	keys.forEach(function(key) {
		newArgs[key.toLowerCase()] = args[key];
	});

	var string = '';
	for (var k in newArgs) {
		string += '&' + k + '=' + newArgs[k];
	}
	string = string.substr(1);
	return string;
};

/**
 * @synopsis 签名算法 
 *
 * @param jsapi_ticket 用于签名的 jsapi_ticket
 * @param url 用于签名的 url ,注意必须动态获取
 *
 * @returns
 */
export function sign(jsapi_ticket, url) {
	var ret = {
		jsapi_ticket: jsapi_ticket,
		nonceStr: createNonceStr(),
		timestamp: createTimestamp(),
		url: url
	};
	    var string = raw(ret);
	    // jsSHA = require('jssha');
	    let shaObj = new jsSHA(string, 'TEXT');
	    ret.signature = shaObj.getHash('SHA-1', 'HEX');
	    return ret;
    };
}

暂未完善!!!!!!!!!!!!

到了这里,关于微信公众号使用wx.config前端如何配置参数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信公众号H5跳转小程序,wx-open-launch-weapp

    直接上干货,不多哔哔~~ 注意事项 : 需要再公众号里面绑定需要跳转的小程序 获取 jssdk 配置的时候需要再公众平台绑定安全域名 微信版本要求为:7.0.12及以上。 系统版本要求为: iOS  10.3及以上、 Android 5.0及以上。 如若需要在微信的 wx-open-launch-weapp 添加 img 标签, img 的

    2024年02月02日
    浏览(54)
  • 微信公众号启用了服务器配置如何自定义菜单?

    微信公众号(服务号)启用了服务器配置,如何自定义菜单呢? 当我们启用了服务器配置,公众号的默认的自定义菜单就会失效。其实我们可以通过调用API接口来完成自定义菜单功能的配置。 微信公众号自定义菜单接口文档:微信开放文档 目录 一、获取Access_TOKEN 二、创建

    2024年02月09日
    浏览(59)
  • Uniapp + SpringBoot 开发微信H5项目 微信公众号授权登录 JAVA后台(一、配置使用微信公众平台测试公众号)

    一、接口配置信息填写校验 这里需要填写一个URL和一个Token验证字符串 我这里是用了natapp内网穿透 将本地的后台8080端口服务映射到了 http://x7zws8.natappfree.cc https://natapp.cn/在natapp官网注册账号并且申请免费隧道 申请完了之后把域名绑定到自己的后台 后台接口: SHA1: AesExcep

    2024年03月13日
    浏览(46)
  • 微信小程序wx.navigateTo传给子页面参数(单个参数、多个参数)

    子页面接收 传多个参数 子页面接受 假设值是后端传过来的动态的值

    2024年02月07日
    浏览(52)
  • 【wx-open-launch-app】微信内置浏览器网页唤起app操作和一些坑,偏前端使用开放标签方面

    最近实现了一下微信H5(Android)唤起app功能,使用的是微信开放标签,wx-open-launch-app,使用这个标签后,我们就可以在微信浏览器中唤起对应的app了 官方使用教程: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html 使用教程 需要一个 已验证的微信服务号账号 和 微

    2024年02月20日
    浏览(54)
  • 微信小程序 wx.navigateBack() 携带参数返回(刷新上页参数信息)

    页A 通过wx.navigateTo跳转到页B,页B wx.navigateBack返回页A前,可以通过利用getCurrentPages去传递参数,来刷新页A的值  let pages = getCurrentPages(); //获取当前页面pages里的所有信息。  let prevPage = pages[pages.length - 2]; //prevPage 是获取上一个页面的js里面的pages的所有信息。 -2 是上一个页面

    2024年02月16日
    浏览(64)
  • 微信公众号开发以及测试公众号前端自测网页授权

    测试号申请(开发的时候需要使用微信测试号进行开发) 微信测试号申请地址 进入网页之后选择微信登陆,直接用微信扫码登录,微信测试号就申请成功了 测试号配置 申请成功之后会有一个测试号管理界面 1、会自动生成appID、appsecret(需要记录一下,后面会用到)。 2、接口

    2024年02月06日
    浏览(50)
  • 微信小程序wx.navigateTo跳转参数大小超出限制问题

    微信小程序的跳转方式 wx.navigateTo(Object) :保留当前页面,跳转到应用内的某个页面,使用 wx.navigateBack 可以返回到原页(新页面入栈) wx.redirectTo(Object) :关闭当前页面,跳转到应用内的某个页面(当前页面出栈,新页面入栈) wx.switchTab(Object) :跳转到 tabBar 页面,同时关闭

    2024年02月09日
    浏览(89)
  • 【实战】前端必会 —— 微信小程序 跳转 微信公众号

    web-view | 微信开放文档 跳转方案的选择关键在于目的性: 引流关注:直接跳转公众号页面 内容查看:使用 web-view 直接查看 biz 相当于微信公众号的 唯一身份标识 PC端随意打开一篇公众号文章,使用非微信内置浏览器打开, F12 ,network(网络),fetch/XHR 过滤,可以看到这些请

    2024年02月16日
    浏览(59)
  • Vue2 系列:vue.config.js 参数配置

    1. publicPath 默认值:\\\'/\\\' 说明:部署应用包时的基本 URL,例:https://www.my-app.com/my-app/,则设置 publicPath 为 /my-app/ 提示:1. 当使用基于 HTML5 history.pushState 的路由时 2.当使用 pages 选项构建多页面应用时。 2. outputDir 默认值:\\\'dist\\\' 说明:打包目录。 提示:目标目录在构建之前会被

    2024年02月11日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包