发表于: 2017-03-15 23:18:16

1 1247


今天完成的事情:

调试已完成的接口,完成功能:

  1. 1、注册、登录;

2、验证手机、邮箱;

3、手机、邮箱绑定(问题接口404);

4、获取用户信息;

5、修改用户资料(昵称、年级、头像(接口未完成));

6、用户签到信息(暂时只有签到天数,接口未完成)


后台:

完成文章详情页:

用复盘封装的下拉框和上传插件,公共后台代码中upload有问题,对复盘封装的比较熟悉,不折腾。


从微信用户--学渣用户流程数据处理流程:

1、通过回调页获取微信授权

localSession.get('openid')||$location.search().code? userInfo():authorize();
function authorize() {
   var WxURL = 'https://open.weixin.qq.com/connect/oauth2/authorize?' +
       'appid=xxxxxxxxxxxxxx' + //appid
       '&redirect_uri=' +'http://dev.home.academy.ptteng.com' + //回调url
       '?type=wx' +
       '&response_type=code' +
       '&scope=snsapi_userinfo' +
       '&state=STATE' +
       '#wechat_redirect';
   window.location.href = WxURL
}

这里需要注意,回调url填写为当前页面,则跳转后只是在当前url附加参数,如果直接调用跳转授权函数,页面将陷入循环无限调用。这里可以通过单独写一个页面跳转解决;或者通过做条件限制来选择执行的函数。获取授权主要目的是获取微信用户code,再通过code去获取用户openid,最后通过openid可以查询用户信息。所以在页首判断url是否存在code字段,来决定是否执行跳转授权,在授权后拿到code和openid,可以先把openid存储在session中。

2、根据code查询openid;(前端获取code,用code向后端请求)

由于code有效期短,且仅能使用一次(第二次请求报错),所以在第一次code获取到openid后,可以把openid进行存储使用。

3、用openid查询用户信息:(获取后端返回的openid,利用openid再向后端请求信息)

以openid为参数检测是否注册过,未注册则用openid进行注册,注册后执行登录;已注册执行登录,可缓存用户信息。


修改用户头像:

.factory('wxPort', function ($http, $location) {
   return function (api) {
       var wxAPI = api;
       // wxAPI.push(api)
       
       function wxSignature() {
       return    $http.get('/xxx/sss', {
               params: {url: $location.absUrl().split('#')[0]}
           }).then(function (res) {
               var respanse = res.data.data;
               console.log(respanse.timestamp)
               wx.config({
                   debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
                   timestamp: respanse.timestamp, // 必填,生成签名的时间戳
                   nonceStr: respanse.nonceStr, // 必填,生成签名的随机串
                   signature: respanse.signature,// 必填,签名,见附录1
                   jsApiList: wxAPI// 必填,需 要使用的JS接口列表,所有JS接口列表见附录2
               });
           })
       }
       wxSignature()
   }
})

1、依然是微信配置权限和签名,注册调用接口

wxPort(['chooseImage','uploadImage'])

2.可选相机、相册照片

vm.useAlbum = function () {//使用相册
   wx.ready(function () {
       wx.chooseImage({
           count: 1, // 默认9
           sizeType: ['compressed'], // 可以指定是原图还是压缩图,
           sourceType: ['album'], // 可以指定来源是相册还是相机,
           success: function (res) {
               var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
               uploadImg(localIds);
           }
       });
   })
}
vm.useCamere = function () {//使用相机
   wx.ready(function () {
       wx.chooseImage({
           count: 1, // 默认9
           sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
           sourceType: ['camera'], // 可以指定来源是相册还是相机,默认二者都有
           success: function (res) {
               var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
               uploadImg(localIds);
           }
       });
   })
}

成功获取到本地图片id后,调用图片上传接口,利用之前的本地id,成功后返回服务器端id;

//图片上传至微信服务器
function uploadImg(localIds) {
   $timeout(function () {
       wx.uploadImage({
           localId: localIds.toString(), // 需要上传的图片的本地ID,由chooseImage接口获得
           isShowProgressTips: 1, // 默认为1,显示进度提示
           success: function (res) {
                // res.serverId;// 返回图片的服务器端ID
               wxServices.getMedia(res.serverId).then(function (res) {
                   vm.identityDetail.img = res.data.url;
                   alert(res.data)
               })
           }
       })
   },100)
}

根据serverID向后端请求微信服务器图片信息;


明天计划的事情:

后台视频列表、详情;

与后端同步调试接口;

 
遇到的问题:

手机、邮箱绑定(问题接口404);

晨会沟通。

收获:

如上


返回列表 返回列表
评论

    分享到