django搭建微信公众号后台——自动回复(7.20)

其实大部分还是依赖开发包,然后这个流程一直没怎么搞清楚所以略坑。

  • 接入验证的时候用的GET方法带参数,接收参数然后验证并返回echostr。
  • 用户向服务器发送消息时,如果是明文传送就直接request.body获取xml包然后处理就好了,和GET的无关,如果是密文传输需要再解密一下,这个开发包里面没有,所以就没有用。

刚刚测试简单的发送文字自动回复成功
这里写图片描述

消息数据还是直接发到服务器网址,所以依然是在index函数里面处理。

token = 'whufree'
@csrf_exempt
def index(request):
    wechat = WechatBasic(token=token)
    if request.method=='POST':
        body_text=request.body
        wechat.parse_data(body_text)
        message = wechat.get_message()
        response = None
        if message.type == 'text':
            if message.content == 'hi':
                response = wechat.response_text(u'^_^')
            else:
                response = wechat.response_text(u'文字')
        elif message.type == 'image':
            response = wechat.response_text(u'图片')
        else:
            response = wechat.response_text(u'未知')
        return HttpResponse(response, content_type="application/xml")
    else:
        signature = request.GET.get('signature')  # Request 中 GET 参数 signature
        timestamp = request.GET.get('timestamp')  # Request 中 GET 参数 timestamp
        nonce =request.GET.get('nonce')
        if wechat.check_signature(signature=signature, timestamp=timestamp, nonce=nonce):
            return HttpResponse(request.GET.get('echostr'))

pythonanywhere最蛋疼的是每次改了views还要reload一下、、、
注意函数前面的@csrf_exempt装饰器,没有这个post不成功会403

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值