本文整理汇总了Python中wechat_sdk.WechatBasic类的典型用法代码示例。如果您正苦于以下问题:Python WechatBasic类的具体用法?Python WechatBasic怎么用?Python WechatBasic使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了WechatBasic类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: wrapper
def wrapper(*args, **kwargs):
global cur_token
if not cur_token or cur_token["access_token_expires_at"] - 60 < int(time.time()):
wechat = WechatBasic(appid=wechat_appid, appsecret=wechat_appsecret)
wechat.grant_token(True)
cur_token = wechat.get_access_token()
return wechat_function(*args, **kwargs)
示例2: init_wechat_sdk
def init_wechat_sdk():
"""初始化微信 SDK"""
access_token = redis.get("wechat:access_token")
jsapi_ticket = redis.get("wechat:jsapi_ticket")
token_expires_at = redis.get("wechat:access_token_expires_at")
ticket_expires_at = redis.get("wechat:jsapi_ticket_expires_at")
if access_token and jsapi_ticket and token_expires_at and ticket_expires_at:
wechat = WechatBasic(appid=app.config['APP_ID'],
appsecret=app.config['APP_SECRET'],
token=app.config['TOKEN'],
access_token=access_token,
access_token_expires_at=int(token_expires_at),
jsapi_ticket=jsapi_ticket,
jsapi_ticket_expires_at=int(ticket_expires_at))
else:
wechat = WechatBasic(appid=app.config['APP_ID'],
appsecret=app.config['APP_SECRET'],
token=app.config['TOKEN'])
access_token = wechat.get_access_token()
redis.set("wechat:access_token", access_token['access_token'], 7000)
redis.set("wechat:access_token_expires_at",
access_token['access_token_expires_at'], 7000)
jsapi_ticket = wechat.get_jsapi_ticket()
redis.set("wechat:jsapi_ticket", jsapi_ticket['jsapi_ticket'], 7000)
redis.set("wechat:jsapi_ticket_expires_at",
jsapi_ticket['jsapi_ticket_expires_at'], 7000)
return wechat
示例3: test_parse_data_location_message
def test_parse_data_location_message(self):
message = """<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1351776360</CreateTime>
<MsgType><![CDATA[location]]></MsgType>
<Location_X>23.134521</Location_X>
<Location_Y>113.358803</Location_Y>
<Scale>20</Scale>
<Label><![CDATA[位置信息]]></Label>
<MsgId>1234567890123456</MsgId>
</xml>"""
wechat = WechatBasic()
wechat.parse_data(data=message)
message = wechat.message
self.assertIsInstance(message, LocationMessage)
self.assertEqual(message.id, 1234567890123456)
self.assertEqual(message.target, 'toUser')
self.assertEqual(message.source, 'fromUser')
self.assertEqual(message.time, 1351776360)
self.assertEqual(message.type, 'location')
self.assertEqual(message.location, (23.134521, 113.358803))
self.assertEqual(message.scale, 20)
self.assertEqual(message.label, '位置信息')
示例4: create_qrcode
def create_qrcode(cls, name):
from app import Qrcode
token, expired_at = _wechat.get_access_token()
wechat = WechatBasic(
appid=settings.app_id,
appsecret=settings.secret,
access_token=token,
access_token_expires_at=expired_at)
payload = {
"action_name": "QR_LIMIT_STR_SCENE",
"action_info": {"scene": {"scene_str": name}}}
resp = wechat.create_qrcode(payload)
ticket = resp.get('ticket', '')
url = resp.get('url', '')
data = cls.show_qrcode(ticket)
if not data:
raise
output = cStringIO.StringIO()
output.write(data)
# upload
p = qiniu.PutPolicy(settings.bucket)
path = '/qrcode/%s' % name
path, hash_key = p.upload(output, path)
output.close()
Qrcode.create_code(name, ticket, url, path, hash_key)
p = qiniu.PublicGetPolicy(settings.bucket, path)
return p.get_url()
示例5: check_saler_info
def check_saler_info():
"""确认收银员信息"""
brand_id = int(request.args.get("bid", 0))
openid = session.get("openid")
do = request.args.get("do")
form = SalerInfoForm()
if not openid:
code = request.args.get("code")
if not code:
print "not code"
# print "/check_saler_info"
return redirect(WeixinHelper.oauth3(request.url))
else:
wechat_login_fun(code)
if do == 'check':
# 绑定店员
mobile = request.args.get("mobile")
exist_saler = Saler.query.filter(Saler.user_id == g.user.id, Saler.brand_id == brand_id).first()
if not exist_saler:
g.user.mobile = mobile
saler = Saler(user_id=g.user.id, brand_id=brand_id)
db.session.add(saler)
db.session.commit()
wechat = WechatBasic(appid=appid, appsecret=appsecret)
wechat.send_text_message(openid, "您已成功绑定门店")
return json.dumps({"message": "提交成功", "type": "success"})
else:
return json.dumps({"message": "您已绑定门店,不用再次绑定", "type": "error"})
return render_template('mobile/check_saler_info.html', brand_id=brand_id, form=form)
示例6: home
def home(request):
token = TOKEN
if request.method == 'POST':
signature = request.POST.get('signature', '')
timestamp = request.POST.get('timestamp', '')
nonce = request.POST.get('nonce')
elif request.method == 'GET':
signature = request.GET.get('signature', '')
timestamp = request.GET.get('timestamp', '')
nonce = request.GET.get('nonce')
echostr = request.GET.get('echostr', '')
if DEBUG:
debug_log('==========')
debug_log('token: '+str(token))
debug_log('signature: '+str(signature))
debug_log('timestamp: '+str(timestamp))
debug_log('nonce: '+str(nonce))
if token and timestamp and nonce and echostr:
s = ''.join(sorted([token,timestamp,nonce]))
debug_log('calculated sign: '+hashlib.sha1(s.encode('utf-8')).hexdigest())
debug_log('echostr: '+str(echostr))
wechat = WechatBasic(token=token)
# 对签名进行校验
if wechat.check_signature(signature, timestamp, nonce):
return HttpResponse(echostr)
else:
return HttpResponse('')
if signature:
return weixin_response(token, signature, timestamp, nonce, request.body)
return HttpResponse('<h1>微信开发中 ...</h1>')
"""
示例7: test_parse_data_voice_recognition
def test_parse_data_voice_recognition(self):
message = """<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1357290913</CreateTime>
<MsgType><![CDATA[voice]]></MsgType>
<MediaId><![CDATA[media_id]]></MediaId>
<Format><![CDATA[Format]]></Format>
<Recognition><![CDATA[腾讯微信团队]]></Recognition>
<MsgId>1234567890123456</MsgId>
</xml>"""
wechat = WechatBasic()
wechat.parse_data(data=message)
message = wechat.message
self.assertIsInstance(message, VoiceMessage)
self.assertEqual(message.id, 1234567890123456)
self.assertEqual(message.target, 'toUser')
self.assertEqual(message.source, 'fromUser')
self.assertEqual(message.time, 1357290913)
self.assertEqual(message.type, 'voice')
self.assertEqual(message.media_id, 'media_id')
self.assertEqual(message.format, 'Format')
self.assertEqual(message.recognition, '腾讯微信团队')
示例8: test_send_article_message
def test_send_article_message(self):
article_info = [
{
'title': '第一条新闻标题',
'description': '第一条新闻描述,这条新闻没有预览图',
'url': 'http://www.google.com.hk/',
}, {
'title': '第二条新闻标题, 这条新闻无描述',
'picurl': 'http://doraemonext.oss-cn-hangzhou.aliyuncs.com/test/wechat-test.jpg',
'url': 'http://www.github.com/',
}, {
'title': '第三条新闻标题',
'description': '第三条新闻描述',
'picurl': 'http://doraemonext.oss-cn-hangzhou.aliyuncs.com/test/wechat-test.jpg',
'url': 'http://www.v2ex.com/',
}
]
# 测试无 appid 和 appsecret 初始化
wechat = WechatBasic()
with self.assertRaises(NeedParamError):
wechat.send_article_message('12341234234', article_info)
# 测试有 appid 和 appsecret 初始化
wechat = WechatBasic(appid=self.appid, appsecret=self.appsecret)
with HTTMock(wechat_api_mock):
resp = wechat.send_article_message('safasf', article_info)
self.assertEqual(resp['errcode'], 0)
self.assertEqual(resp['errmsg'], 'ok')
示例9: api_wechat
def api_wechat(request):
# 从 request 中提取基本信息 (signature, timestamp, nonce, xml)
signature = request.GET.get('signature')
timestamp = request.GET.get('timestamp')
nonce = request.GET.get('nonce')
xml = request.body
# 实例化 WechatBasic 并检验合法性
wechat_instance = WechatBasic(token='CCPL')
# if not wechat_instance.check_signature(signature=signature, timestamp=timestamp, nonce=nonce):
# return HttpResponseBadRequest('Verify Failed')
# 解析本次请求的 XML 数据
try:
wechat_instance.parse_data(data=xml)
message = wechat_instance.get_message() # 获取解析好的微信请求信息
print message
except ParseError:
print xml
return HttpResponseBadRequest('Invalid XML Data')
ret = u'感谢关注“心理地图”!欢迎您登陆我们的网站:http://ccpl.psych.ac.cn/PsyMap/ (网站功能还在开发中,敬请期待。)' #message.type
response = wechat_instance.response_text(ret)
return HttpResponse(response)
示例10: sendMessage
def sendMessage():
global conversationStatusList
body = request.get_json()
platform = body['platform']
conversationID = body['conversation_id']
contentType = body['content_type']
content = body['content']
appID = body['app_id']
secret = body['secret']
userID = body['user_id']
temp = conversationID.split(',')
if temp[0] == userID:
accountID = temp[1]
else:
accountID = temp[0]
if conversationID not in conversationStatusList[platform]:
return '', 503
elif conversationStatusList[platform][conversationID] == 'agent':
if contentType.lower() == 'text':
if platform == 'WeChat':
tempConf = WechatConf(appid=appID, appsecret=secret, encrypt_mode='normal')
tempWechat = WechatBasic(conf=tempConf)
tempWechat.send_text_message(user_id=userID, content=content)
print '[' + platform + ']Message sent to user: ' + userID
t = Thread(target=utilities.forwardUserMessage,
args=(platform, 'agent', conversationID, '', accountID, userID, content, str(datetime.now().isoformat()[:-7]) + 'Z'))
t.start()
return '', 200
else:
return '', 503
else:
return '', 503
示例11: bind_saler
def bind_saler():
"""绑定收银台"""
bid = int(request.args.get("bid", 0))
do = request.args.get("do", 0)
brand = Brand.query.get(bid)
salers = brand.brand_salers.count()
users = brand.brandaccounts
shop_id = 0
# 获取二维码
wechat = WechatBasic(
appid=current_app.config.get("WECHAT_APPID"), appsecret=current_app.config.get("WECHAT_APPSECRET")
)
temp_data = {
"expire_seconds": 604800,
"action_name": "QR_SCENE",
"action_info": {"scene": {"scene_id": int(str("11") + str(brand.id))}},
}
# data = {"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": int(str("11") + str(brand.id))}}}
get_ticket_data = wechat.create_qrcode(temp_data)
ticket = get_ticket_data.get("ticket")
if do == "download_qrcode":
logging.info("download_qrcode")
response = wechat.show_qrcode(ticket)
response = make_response(response.content)
response.headers["Content-Type"] = "image/jpg"
attachment_name = "attachment; filename=汝州百事优惠圈绑定收银台专用二维码.jpg"
response.headers["Content-Disposition"] = attachment_name
return response
return render_template("shop/bind_saler.html", brand=brand, ticket=ticket, users=users)
示例12: test_get_group
def test_get_group(self):
# 测试无 appid 和 appsecret 初始化
wechat = WechatBasic()
with self.assertRaises(NeedParamError):
wechat.get_groups()
# 测试有 appid 和 appsecret 初始化
wechat = WechatBasic(appid=self.appid, appsecret=self.appsecret)
with HTTMock(wechat_api_mock):
resp = wechat.get_groups()
self.assertEqual(resp['groups'][0]['id'], 0)
self.assertEqual(resp['groups'][0]['name'], '未分组')
self.assertEqual(resp['groups'][0]['count'], 72596)
self.assertEqual(resp['groups'][1]['id'], 1)
self.assertEqual(resp['groups'][1]['name'], '黑名单')
self.assertEqual(resp['groups'][1]['count'], 36)
self.assertEqual(resp['groups'][2]['id'], 2)
self.assertEqual(resp['groups'][2]['name'], '星标组')
self.assertEqual(resp['groups'][2]['count'], 8)
self.assertEqual(resp['groups'][3]['id'], 104)
self.assertEqual(resp['groups'][3]['name'], '华东媒')
self.assertEqual(resp['groups'][3]['count'], 4)
self.assertEqual(resp['groups'][4]['id'], 106)
self.assertEqual(resp['groups'][4]['name'], '★不测试组★')
self.assertEqual(resp['groups'][4]['count'], 1)
示例13: weixin
def weixin(request):
wechat = WechatBasic(token=token)
if wechat.check_signature(signature=request.GET['signature'],
timestamp=request.GET['timestamp'],
nonce=request.GET['nonce']):
if request.method == 'GET':
rsp = request.GET.get('echostr', 'error')
else:
wechat.parse_data(request.body)
message = wechat.get_message()
# write_log(message.type)
if message.type == u'text':
response_content = 'this is text'
# response_content = handle_text(message.content)
if message.content == u'wechat':
# response_content = 'hello wechat'
rsp = wechat.response_text(u'^_^')
elif re.findall(u'锐捷', message.content):
rsp = wechat.response_news(ruijie_response)
else:
rsp = wechat.response_news(default_response)
else:
# rsp = wechat.response_text(u'消息类型: {}'.format(message.type))
rsp = wechat.response_news(default_response)
else:
rsp = wechat.response_text('check error')
return HttpResponse(rsp)
示例14: init_wechat_sdk
def init_wechat_sdk():
"""
初始化微信sdk
:return: WechatBasic
"""
access_token = db.get("wechat:access_token")
jsapi_ticket = db.get("wechat:jsapi_ticket")
token_expires_at = db.get("wechat:access_token_expires_at")
ticket_expires_at = db.get("wechat:jsapi_ticket_expires_at")
if all((access_token, jsapi_ticket, token_expires_at, ticket_expires_at)):
wechat = WechatBasic(appid=app.config['APP_ID'],
appsecret=app.config['APP_SECRET'],
token=app.config['TOKEN'],
access_token=access_token,
access_token_expires_at=int(token_expires_at),
jsapi_ticket=jsapi_ticket,
jsapi_ticket_expires_at=int(ticket_expires_at))
else:
wechat = WechatBasic(appid=app.config['APP_ID'],
appsecret=app.config['APP_SECRET'],
token=app.config['TOKEN'])
access_token = wechat.get_access_token()
db.set("wechat:access_token", access_token['access_token'], 7000)
db.set("wechat:access_token_expires_at",
access_token['access_token_expires_at'], 7000)
jsapi_ticket = wechat.get_jsapi_ticket()
db.set("wechat:jsapi_ticket", jsapi_ticket['jsapi_ticket'], 7000)
db.set("wechat:jsapi_ticket_expires_at",
jsapi_ticket['jsapi_ticket_expires_at'], 7000)
return wechat
示例15: test_parse_data_link_message
def test_parse_data_link_message(self):
message = """<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1351776360</CreateTime>
<MsgType><![CDATA[link]]></MsgType>
<Title><![CDATA[公众平台官网链接]]></Title>
<Description><![CDATA[公众平台官网链接]]></Description>
<Url><![CDATA[url]]></Url>
<MsgId>1234567890123456</MsgId>
</xml>"""
wechat = WechatBasic()
wechat.parse_data(data=message)
message = wechat.message
self.assertIsInstance(message, LinkMessage)
self.assertEqual(message.id, 1234567890123456)
self.assertEqual(message.target, 'toUser')
self.assertEqual(message.source, 'fromUser')
self.assertEqual(message.time, 1351776360)
self.assertEqual(message.type, 'link')
self.assertEqual(message.title, '公众平台官网链接')
self.assertEqual(message.description, '公众平台官网链接')
self.assertEqual(message.url, 'url')