首页 > 代码库 > 微信公众号开发
微信公众号开发
路由配置代码参考:
//首页 .state(‘app.home‘, { url: ‘/home?code&testopenid‘, templateUrl: ‘home/home.html‘, controller: ‘HomeController as vm‘, resolve: { load: [‘$ocLazyLoad‘, function($ocLazyLoad) { return $ocLazyLoad.load([‘home/home‘]); }], goLogin: [‘$stateParams‘,‘$state‘, ‘$wxService‘, ‘$stateParams‘,‘$modal‘,function ($stateParams,$state, $wxService,$stateParams,$modal) { return { query: function() { var deferred = $q.defer(); if (typeof $stateParams.code === "string") { $wxService.reLogin($stateParams.code, function(data) { deferred.resolve(data); }); } else if (typeof $stateParams.testopenid === "string") { saveToLocalStorage(‘openid‘ + appVersion, $stateParams.testopenid); $wxService.memberInfoQuery($stateParams.testopenid, function(data) { deferred.resolve(data); }); } else { if (typeof localStorage[‘openid‘ + appVersion] === "string") { $wxService.memberInfoQuery(localStorage[‘openid‘ + appVersion], function(data) { deferred.resolve(data); }); } else { deferred.reject({"status":"40001"}); } } return deferred.promise; // 返回承诺,这里并不是最终数据,而是访问最终数据的API } // end query } }] } })
登录验证流程代码参考:
$wxService.$inject = [‘$http‘, ‘$window‘]; function $wxService($http, $window) { var $service = { $$payload: null, reLogin: function(_code, callback) { for(var key in window.localStorage){ //清除老版本所有localStorage数据 if(key.indexOf(appVersion) == -1){ window.localStorage.removeItem(key); } } if (localMod) { loadLocalData(); this.memberInfoQuery(localStorage[‘openid‘ + appVersion], callback); return; } var self = this; if (!localMod) { //未登录 尝试重新登陆一遍 if (!localStorage[‘openid‘ + appVersion] || localStorage[‘openid‘ + appVersion]=="null") { this.ownerInfoQuery(_code, function(data) { if (data.openid) { saveToLocalStorage(‘openid‘ + appVersion, data.openid); self.memberInfoQuery(data.openid, callback); } else { callback(data.openid) return; } }); } else { this.memberInfoQuery(localStorage[‘openid‘ + appVersion], callback); } } }, ownerInfoQuery: function(_code, callback) { //第一次获取openId $http({ url: serviceUrl+‘/weixin/openid/query?code=‘+_code+"&token="+wxToken, method: ‘get‘ }).success(function(d) { callback(d); }).error(function(data) { callback({ status: 0, msg: JSON.stringify(data) }) }); }, memberInfoQuery: function(wxid, callback) { callback = callback || function() {}; $http({ url: serviceUrl+‘/fsServe/checkLogin?wxid=‘+wxid, method: ‘get‘ }).success(function(data) { callback(data); }).error(function(data) { debugAlert(JSON.stringify(data)); }); } }; return $service; }
微信公众号开发
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。