Python+Flask 微信企业号开发二之开启回调模式

 一.  概述

    上文主要是关于微信主动发送消息给用户, 这篇文章主要是用来描述如何开启微信企业号的回调模式

 二 . 操作

    1. 登陆微信企业号应用中心--我的应用--模式选择--回调模式

163738_Jm63_1406293.jpg

2. 代码

#coding=utf-8
from flask import abort, request
from wechatpy.enterprise import create_reply, parse_message
from wechatpy.enterprise.crypto import WeChatCrypto
from app.config import CORP_ID

from flask import Blueprint

#应用ID
sCorp_Id = CORP_ID

#回调模式里面随机生成的那个Token,EncodingAESKey
sToken = ''
sEncodingAESKey =""

crm = Blueprint('settings', __name__, url_prefix='/crm')
crypto = WeChatCrypto(token=sToken, encoding_aes_key=sEncodingAESKey, corp_id=sCorp_Id)

#对应回调模式中的URL
@crm.route('/weixin')
def weixin():
    echo_str = signature(request)
    if request.method == 'GET':
        return echo_str
    msg = parse_message(request.data)
    print(msg.type)
    if msg.type == 'text':
        reply = create_reply(msg.content, msg)
    else:
        reply = create_reply('Sorry, can not handle this for now', msg)
    return reply.render()


def signature(request):
    msg_signature = request.args.get('msg_signature', '')
    timestamp = request.args.get('timestamp', '')
    nonce = request.args.get('nonce', '')
    echo_str = request.args.get('echostr', '')
    print(request.args)
    try:
        #认证并对echo_str进行解密并返回明文
        echo_str = crypto.check_signature(msg_signature, timestamp, nonce, echo_str)
        print(echo_str)
    except Exception as ex:
        print(ex)
        print(request)
        abort(403)
    return echo_str


@crm.route('/hello')
def hello():
    return "hello! index"

3.说明

按照如上进行配置就可以成功开启回调模式,然后就可以成功接受发过来的消息。


转载于:https://my.oschina.net/ayy/blog/631143

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值