微信分享的签名算法微信也写有,主要是调用接口需要使用服务器(微信官方文档是这么说的,试了下前端居然特么也可以),不过微信的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获取(实例讲解)相关推荐

  1. java计算机毕业设计基于微信小程序的校园外卖订餐系统APP

    项目介绍 网络技术的快速发展给各行各业带来了很大的突破,也给各行各业提供了一种新的管理模块和校园订餐模块,对于校园订餐小程序将是又一个传统管理到智能化信息管理的改革,对于传统的校园订餐管理,所包括的信 ...

  2. java计算机毕业设计基于微信小程序的药店药品销售管理系统APP

    项目介绍 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息.为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代, ...

  3. js调用java_Js调用Java方法并互相传参的简单实例

    Js通过PhoneGap调用Java方法并互相传参的. 一.JAVA代码 写一个类,该类继承自Plugin并重写execute方法. public class PluginTest extends P ...

  4. js调java并传参_Js调用Java方法并互相传参的简单实例

    Js通过PhoneGap调用Java方法并互相传参的. 一.JAVA代码 写一个类,该类继承自Plugin并重写execute方法. import org.json.JSONArray; import ...

  5. dota是java中的_用java开发dota英雄最华丽的技能(实例讲解)

    爱java 爱dota,突发奇想想用java开发dota操作最华丽的英雄之一的卡尔的技能,因为本人系小白,代码不足的地方还请包涵,有同样爱好的同学欢迎一起研究学习. 先把我的代码呈上 import j ...

  6. 地下城英雄 java_用java开发dota英雄最华丽的技能(实例讲解)

    爱java 爱dota,突发奇想想用java开发dota操作最华丽的英雄之一的卡尔的技能,因为本人系小白,代码不足的地方还请包涵,有同样爱好的同学欢迎一起研究学习. 先把我的代码呈上 import j ...

  7. 【附源码】Java计算机毕业设计基于微信小程序停车系统(程序+LW+部署)

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  8. Java毕业设计_基于微信公众号的驾校练车预约系统

    基于微信公众号的驾校练车预约系统 基于微信公众号的驾校练车预约系统mysql数据库创建语句 基于微信公众号的驾校练车预约系统oracle数据库创建语句 基于微信公众号的驾校练车预约系统sqlserve ...

  9. Java方法实现数组的遍历、获取数组的最大值和最小值

    1. Java方法的练习:数组遍历 需求:设计一个方法用于数组遍历,要求遍历的结果是在一行上的.例如:[11, 22, 33, 44, 55] import java.util.Scanner;//需 ...

最新文章

  1. django 2.0路由配置变化
  2. FFmpeg迎来20周年生日!凭一己之力养活全球无数播放器!
  3. Python第一天学习---基础语法
  4. 使用jquery打造一个动态的预览产品颜色效果
  5. 工业智能相机与基于PC的机器视觉的区别比较
  6. python编程技术总结_大数据技术学习之Spark技术总结
  7. 白话布隆过滤器(BloomFilter)
  8. python打开sql,Python打开Microsoft SQL Server MDF文件
  9. 存储容量及相关计算单位
  10. 相机成像模型、相机内参、外参、以及相机标定
  11. 用AdGuard Home搭建一个内部的DNS服务器,开启局域网内无广告和追踪的浏览体验
  12. 8086的储存器编址
  13. unsigned char转QString的方法
  14. 简谈:如何学习FPGA
  15. WiFi出现间歇性断网时,应该如何解决!
  16. R语言 编写循环语句
  17. IntelliJ IDEA出现Tomcat服务器启动不了解决办法
  18. 线性表之顺序存储和链式存储结构
  19. Chrome Google绿色便携制作(可更新自定义模式)
  20. 编程小白从头学习ACM竞赛入门打卡 day 1

热门文章

  1. 帮你抢小游戏流量红利——华为小游戏接入指南
  2. react项目搭建及创建的小demo
  3. 淘宝按关键字搜索淘宝商品 API 参数及返回值说明 翻页展示 含调用示例
  4. openCV2——ostu
  5. python,基于http协议,最常用的是GET和POST两种方法
  6. java获取二维数组长度
  7. (终稿)C++实现科学计算器主函数代码(含调用函数)
  8. 电气、电子专业英语B
  9. linux目录跳转的好武器z.sh
  10. CSDN上传图片提示上传失败