コード例 #1
0
ファイル: test_basic.py プロジェクト: 14F/wechat-python-sdk
    def test_grant_jsapi_ticket(self):
        # 测试无 appid 和 appsecret 初始化
        wechat = WechatBasic()
        with self.assertRaises(NeedParamError):
            wechat.grant_jsapi_ticket()

        # 测试有 appid 和 appsecret 初始化(覆盖已有 jsapi_ticket,默认override=True即覆盖)
        wechat = WechatBasic(appid=self.appid, appsecret=self.appsecret)
        with HTTMock(wechat_api_mock):
            resp = wechat.grant_jsapi_ticket()
            self.assertEqual(resp['errcode'], 0)
            self.assertEqual(resp['errmsg'], 'ok')
            self.assertEqual(resp['ticket'], self.fixtures_jsapi_ticket)
            self.assertEqual(resp['expires_in'], 7200)
            self.assertEqual(wechat.conf.jsapi_ticket, self.fixtures_jsapi_ticket)
コード例 #2
0
    def test_grant_jsapi_ticket(self):
        # 测试无 appid 和 appsecret 初始化
        wechat = WechatBasic()
        with self.assertRaises(NeedParamError):
            wechat.grant_jsapi_ticket()

        # 测试有 appid 和 appsecret 初始化(覆盖已有 jsapi_ticket,默认override=True即覆盖)
        wechat = WechatBasic(appid=self.appid, appsecret=self.appsecret)
        with HTTMock(wechat_api_mock):
            resp = wechat.grant_jsapi_ticket()
            self.assertEqual(resp['errcode'], 0)
            self.assertEqual(resp['errmsg'], 'ok')
            self.assertEqual(resp['ticket'], self.fixtures_jsapi_ticket)
            self.assertEqual(resp['expires_in'], 7200)
            self.assertEqual(wechat.conf.jsapi_ticket,
                             self.fixtures_jsapi_ticket)
コード例 #3
0
ファイル: WeixinUtils.py プロジェクト: GEOAL1/zebraService
class WeixinMananger:
    def __init__(self, appid="wxc2b14fc7557dc863", appsecret="67c0097d1bf2f7804f9eb2375f3d2039",
                 redisIp="127.0.0.1", redisPort=6379):
        self.redis = redis.StrictRedis(host=redisIp)
        self.appid = appid;
        self.appsecret = appsecret;
        self.wechat = WechatBasic(appid=appid, appsecret=appsecret);

    def __getRedisWXAccessToken(self):
        return self.redis.get("wx_access_token")

    def __getRedisWXJsApiToken(self):
        return self.redis.get("wx_jsapi_token")

    def getAccessToken(self):
        token = self.__getRedisWXAccessToken()
        if token is None:
            token = self.wechat.grant_token()
            if token != None:
                timeout = token["expires_in"]
                self.redis.setex("wx_access_token", timeout, token["access_token"])
                return token["access_token"]
            else:
                return None;
        else:
            return token

    def getJsApiToken(self):
        ticket = self.__getRedisWXJsApiToken()
        if ticket is None:
            print self.getAccessToken()
            ticket = self.wechat.grant_jsapi_ticket()
            if (ticket != None):
                timeout = ticket["expires_in"];
                self.redis.setex("wx_jsapi_token", timeout, ticket["ticket"])
                return ticket["ticket"]
            else:
                return None
        else:
            return ticket

    def getJsJDK(self, srcUrl):
        timestamp = int(time.time())
        noncestr = str(time.time())
        url = srcUrl
        jsApiToken = self.getJsApiToken();
        data = {};
        data["timestamp"] = timestamp
        data["nonceStr"] = noncestr
        data["appId"] = self.appid
        data["signature"] = self.wechat.generate_jsapi_signature(timestamp, noncestr, url, jsApiToken)
        data["jsApiList"] = ["openLocation", "getLocation", "scanQRCode", "showMenuItems"]
        data["debug"] = True
        return data
コード例 #4
0
# 队列
celery = make_celery(app)

# 记录日志
handler = RotatingFileHandler('app.log', maxBytes=10000, backupCount=1)
handler.setFormatter(
    logging.Formatter('%(asctime)s %(levelname)s: %(message)s '
                      '[in %(pathname)s:%(lineno)d]'))
handler.setLevel(logging.WARNING)
app.logger.addHandler(handler)

# 初始第三方库
redis = Redis()

# 初始化微信 SDK
wechat = WechatBasic(appid=app.config['APP_ID'],
                     appsecret=app.config['APP_SECRET'],
                     token=app.config['TOKEN'])

if not redis.exists("wechat:access_token"):
    # access_token 写入缓存
    wechat.grant_jsapi_ticket()
    redis.set("wechat:access_token",
              wechat.get_access_token()['access_token'], 7000)

# 路由
from .routes import *
# 定时任务
from .plugins.cron import *
コード例 #5
0
# 队列
celery = make_celery(app)

# 记录日志
handler = RotatingFileHandler('app.log', maxBytes=10000, backupCount=1)
handler.setFormatter(logging.Formatter(
    '%(asctime)s %(levelname)s: %(message)s '
    '[in %(pathname)s:%(lineno)d]'
))
handler.setLevel(logging.WARNING)
app.logger.addHandler(handler)

# 初始第三方库
redis = Redis()

# 初始化微信 SDK
wechat = WechatBasic(appid=app.config['APP_ID'],
                     appsecret=app.config['APP_SECRET'],
                     token=app.config['TOKEN'])

if not redis.exists("wechat:access_token"):
    # access_token 写入缓存
    wechat.grant_jsapi_ticket()
    redis.set("wechat:access_token",
              wechat.get_access_token()['access_token'], 7000)

# 路由
from .routes import *
# 定时任务
from .plugins.cron import *