一:openid的获取 折腾到半夜,搞得挺兴奋,总结一下,免得忘了: 1、微信小程序直接获得的是一些简单信息,基本无用 2、用户唯一标识是openid,还有一个unionid是关联多个公众号之类情况下用,我不大关心 3、在getUserInfo的返回数据中,有加密信息, wx.getUserInfo({ success: function(res) { }})
res包括userInfo,iv,rawData,signature,encryptedData,这些东西的关系比较复杂,我理解是这样的: 1)userInfo包括简单的用户信息 2)重要信息在encryptedData中,解开后包括:
3)要解开的话,需要密文-encryptedData,向量-iv,密钥-session-key。密钥这里没有。 4)rawData,signature是来做校验的,不太关心 4、session-key的获取方式: 1)登录成功后,传给回调的参数包括一个code,但这个code会很快失效 2)通过调用 可以获得session-key和openid。除了code,其他参数很简单,文档里有说明。
在浏览器中测试没有问题,但是,在小程序中也不能运行,因为小程序只能访问认证过的服务器。换言之,必须要把这个东西放到服务器上,从微信中去调用服务器的页面,服务器的页面再去访问这个接口,然后再把数据反馈回来。 道理搞明白其实就很简单了,获得了openid,其实也没用必要再去解密了,因为那里除了openid,也没啥想要的东西。 二:获取数据把数据打印出来 接口文档
第一现在app.js 赋值 如: app.js文件 App({ globalData: { //资讯接口 zixu_url: "", //资讯id接口 info_url:"", // 资讯详情id 的评论数据接口 admin_comment:"" }})
index.js文件 onLoad:function(){ // 生命周期函数--监听页面加载 //'?page=0'+'&size=5' 展示前五条 var zix_data= app.globalData.zixu_url+'?page=0'+'&size=5'; this.getMovieListData(zix_data) // console.log(postList) }getMovieListData: function (url) { var that = this; wx.request({ url: url, method: 'post', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT header: { 'content-type': 'application/json' }, success: function (res) { that.setData({ postList:res.data.objects, }); ); } }, fail: function (error) { // fail console.log(error) } })}
index.wxml文件 <!--pages/index/index.wxml--><import src="zix-template/zix-template.wxml" /><!--<import src="/pages/posts/post-item/post-item-template.wxml" />--><scroll-view class='container' bindscrolltolower="lower" scroll-x='true' scroll-y='true'> <block wx:for="{{postList}}" wx:for-item="item" > <!--//template--> <view "> <view class='zix_template'> <image class='zix_img' src="{{coverImage}}"></image> <text class='zix_tilte'>{{title}} </text> </view> </view> </block></scroll-view>
|