java 方法signature,基于微信签名signature获取(实例讲解)
微信分享的签名算法微信也写有,主要是调用接口需要使用服务器(微信官方文档是这么说的,试了下前端居然特么也可以),不过微信的access_token和jsapi_ticket是有使用次数限制的,所以还是用服务器来获取,得到以后存下来,下次使用判断超时以后再重新获取,这样就够用了,要不然就会出现接口调用次数超出限制这种尴尬的事情了。
如果需要使用自定义分享文案的时候,服务号或者订阅号一定要是已认证的(我的是个人类型的订阅号,不能认证,所以不能使用分享功能)
我这边用的是node做的后台,所以代码用的是js代码,当然其他的也可以,逻辑都一样,代码写法不一样而已。
1.首先是公众号的设置
我这边申请的是一个订阅号
首先,要在 开发 -> 基本配置 下,获取到自己的开发者id(appid)和开发者密码(AppSecret),这两个是必须的
然后要在同目录下的 ip白名单 选项里设置好服务器的ip
这样,基本服务器设置就算完成了。
2.然后就是我们最擅长的事了——写代码
根据微信官方文档,第一步,我们需要拿到access_token,并且这个access_token有7200秒的有效期,所以拿到access_token以后要存在本地(文件存储或者数据库存储都可以,反正存好就行)
具体实现代码如下
首先需要引入node对应的模块(mongodb数据库每次使用还要启动,我嫌麻烦,所以我这边用的是文件存储)
从上往下依次是
express模块 用来创建一个服务器,分别和前端、微信进行接口对接(在这里貌似没多大用,可以使用http模块代替)
https模块 用来发送https请求的一个模块(微信请求需要使用https请求,http不行)
fs模块 文件操作模块,如果是用的数据库就需要换成对应的模块
crypto模块 加密模块,微信签名算法需要使用sha1算法加密,下边有说到
模块全部引入,接下来定义一些方便使用的方法
首先,要开启一个服务器:
然后定义阅读和写入文件的方法
然后是使用定义一个发送https请求的方法
基本需要使用的方法有了,下边就可以请求微信接口了
上边这个方法是获取微信token的方法,我这边首先从本地文件中读取,读取不到再调用接口(我这里只是测试使用,没有做判断,实际操作中需要判断时间戳,如果access_token过期需要删掉文件里的内容重新请求新的access_token)
access_token有了,下边就是获取jsapi_ticket:
jsapi_ticket和token获取和存储逻辑是一样的
接下来就是签名的生成
生成签名以后,把签名和随机串和appid和时间戳同时通过res.send传给前端:
前端接收到数据后调用wx.config(),并传入对饮的参数就可以获取到对应的微信js权限了。
以上这篇基于微信签名signature获取(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:http://www.cnblogs.com/zchenguang/p/7515513.html
java 方法signature,基于微信签名signature获取(实例讲解)相关推荐
- java计算机毕业设计基于微信小程序的校园外卖订餐系统APP
项目介绍 网络技术的快速发展给各行各业带来了很大的突破,也给各行各业提供了一种新的管理模块和校园订餐模块,对于校园订餐小程序将是又一个传统管理到智能化信息管理的改革,对于传统的校园订餐管理,所包括的信 ...
- java计算机毕业设计基于微信小程序的药店药品销售管理系统APP
项目介绍 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息.为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代, ...
- js调用java_Js调用Java方法并互相传参的简单实例
Js通过PhoneGap调用Java方法并互相传参的. 一.JAVA代码 写一个类,该类继承自Plugin并重写execute方法. public class PluginTest extends P ...
- js调java并传参_Js调用Java方法并互相传参的简单实例
Js通过PhoneGap调用Java方法并互相传参的. 一.JAVA代码 写一个类,该类继承自Plugin并重写execute方法. import org.json.JSONArray; import ...
- dota是java中的_用java开发dota英雄最华丽的技能(实例讲解)
爱java 爱dota,突发奇想想用java开发dota操作最华丽的英雄之一的卡尔的技能,因为本人系小白,代码不足的地方还请包涵,有同样爱好的同学欢迎一起研究学习. 先把我的代码呈上 import j ...
- 地下城英雄 java_用java开发dota英雄最华丽的技能(实例讲解)
爱java 爱dota,突发奇想想用java开发dota操作最华丽的英雄之一的卡尔的技能,因为本人系小白,代码不足的地方还请包涵,有同样爱好的同学欢迎一起研究学习. 先把我的代码呈上 import j ...
- 【附源码】Java计算机毕业设计基于微信小程序停车系统(程序+LW+部署)
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
- Java毕业设计_基于微信公众号的驾校练车预约系统
基于微信公众号的驾校练车预约系统 基于微信公众号的驾校练车预约系统mysql数据库创建语句 基于微信公众号的驾校练车预约系统oracle数据库创建语句 基于微信公众号的驾校练车预约系统sqlserve ...
- Java方法实现数组的遍历、获取数组的最大值和最小值
1. Java方法的练习:数组遍历 需求:设计一个方法用于数组遍历,要求遍历的结果是在一行上的.例如:[11, 22, 33, 44, 55] import java.util.Scanner;//需 ...
最新文章
- django 2.0路由配置变化
- FFmpeg迎来20周年生日!凭一己之力养活全球无数播放器!
- Python第一天学习---基础语法
- 使用jquery打造一个动态的预览产品颜色效果
- 工业智能相机与基于PC的机器视觉的区别比较
- python编程技术总结_大数据技术学习之Spark技术总结
- 白话布隆过滤器(BloomFilter)
- python打开sql,Python打开Microsoft SQL Server MDF文件
- 存储容量及相关计算单位
- 相机成像模型、相机内参、外参、以及相机标定
- 用AdGuard Home搭建一个内部的DNS服务器,开启局域网内无广告和追踪的浏览体验
- 8086的储存器编址
- unsigned char转QString的方法
- 简谈:如何学习FPGA
- WiFi出现间歇性断网时,应该如何解决!
- R语言 编写循环语句
- IntelliJ IDEA出现Tomcat服务器启动不了解决办法
- 线性表之顺序存储和链式存储结构
- Chrome Google绿色便携制作(可更新自定义模式)
- 编程小白从头学习ACM竞赛入门打卡 day 1