发表于: 2017-03-15 23:18:16
1 1245
今天完成的事情:
调试已完成的接口,完成功能:
- 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);
晨会沟通。
收获:
如上
评论