微信公众号开发

Posted Miya

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信公众号开发相关的知识,希望对你有一定的参考价值。

路由配置代码参考:
  //首页
      .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;
  }

 

以上是关于微信公众号开发的主要内容,如果未能解决你的问题,请参考以下文章

微信公众号开发

微信公众平台开发—上传永久素材(图片)

微信公众号开发代码参考

php篇二 之微信公众号开发

PHP微信公众号开发常用功能

用python进行微信公众号开发(仅测试学习)