Example #1
0
File: card.py Project: nasta/cards
def addcard(tuid):
    lib = LibManager()
    user = UserManager()
    uid = session["uid"]
    result = "false"
    if user.hasUid(tuid) and not lib.hasCard(uid, tuid):
        if lib.addCard(uid, tuid):
            result = "true"
    return result
Example #2
0
File: card.py Project: nasta/cards
def delcard(tuid):
    lib = LibManager()
    user = UserManager()
    uid = session["uid"]

    result = "false"
    if user.hasUid(tuid) and lib.hasCard(uid, tuid):
        if lib.deleteCard(uid, tuid):
            result = "true"
    return result
Example #3
0
File: oauth.py Project: nasta/cards
def gettoken():
    if request.method == "GET":
        state = request.args.get("state", "")
        code = request.args.get("code", "")
        if code:
            url = "https://api.weixin.qq.com/sns/oauth2/access_token?"
            para = {"appid" : app.config["APPID"],
                    "secret" : app.config["APPSECRET"],
                    "code" : code,
                    "grant_type" : "authorization_code",
                    }

            try_time = 0
            while(try_time<3):
                url += urllib.urlencode(para)
                content = urllib.urlopen(url).read()
                if content:
                    break
            else:
                return u"获取token失败"

            info = eval(content)
            try:
                openid = info["openid"]
            except KeyError:
                openid = ""

            #openid为空则返回错误
            if not openid:
                return "获取openid失败, url=%s" % url

            userManager = UserManager()
            uid = userManager.getUidByOpenID(info["openid"])

            if uid:
                session["uid"] = uid
            else:
                userManager.insertUser(info)
                uid = userManager.getUidByOpenID(info["openid"])
                session["uid"] = uid

            stateManager = StateManager()
            url = stateManager.getUrlByState(state)
            return redirect(url)
        else:
            return u"获取code失败"