java实现转发到微信功能

转发到微信的api官方文档:概述 | 微信开放文档

根据官方文档的介绍,微信官方已经开放了分享到朋友圈、微信好友、QQ空间等接口,我们只需要引入官方的js文件【http://res.wx.qq.com/open/js/jweixin-1.6.0.js】,通过wx.config接口配置权限验证的参数和需要调用的接口列表,执行成功则回调wx.ready,执行失败会调用wx.error。

wx.config需要的权限验证参数如下:

wx.config({
  debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  appId: '', // 必填,公众号的唯一标识
  timestamp: , // 必填,生成签名的时间戳
  nonceStr: '', // 必填,生成签名的随机串
  signature: '',// 必填,签名
  jsApiList: [] // 必填,需要使用的JS接口列表
});

其中appId是你的微信账号。我们需要使用appid和secret向微信的指定接口发起请求,获得签名。

※因为微信分享不支持跨域请求,所以获取access_token的请求必须从服务器发起,不能使用前端页面直接请求微信接口获得。

那我们就来看看获得签名具体的步骤:

1.使用GET请求调用【 https请求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET】接口,获取access_token

 2.使用GET请求调用【https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi】接口,获取jsapi_ticket,access_token就是步骤【1】中返回的token。因为jsapi_ticket的有效期为7200s,并且获取jsapi_ticket的api调用次数非常有限(每天仅能调用2000次),频繁刷新jsapi_ticket会导致api调用受限,影响自身业务,开发者必须在自己的服务全局缓存jsapi_ticket 。

3.将noncestr(随机串)、jsapi_ticket、timestamp(时间戳)、 url(当前网页的URL,不包含#及其后面部分)根据字典顺序排序,然后使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1。

4.对string1作sha1加密,最后生成的值就是我们需要的签名。

具体的代码可以在我的git下载:

git@github.com:arphaGo/wxShare.git

最后就是将时间戳、随机串和签名返回,在wx.config中配置好之后,就可以调用微信的分享功能了。


版权声明:本文为u010513927原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。