1. 程式人生 > >Django Python Wechat

Django Python Wechat

message 基本 文本 failed pps key fail mon sage

關於Django開發微信

使用第三方包WeChat-python-sdk

# from wechat_sdk import WechatBasic
# from wechat_sdk.exceptions import ParseError
# from wechat_sdk.messages import EventMessage
# from wechat_sdk.context.framework.django import DatabaseContextStore

wechat_instance = WechatBasic(
    token=spreadassistant.chltec.com
, appid=wxacbc8e8621b5140e, appsecret=11d1e1723475771e958d1252f6ad045a ) @csrf_exempt def portal(request): if request.method == GET: # 檢驗合法性 # 從 request 中提取基本信息 (signature, timestamp, nonce, xml) signature = request.GET.get(signature) timestamp = request.GET.get(
timestamp) nonce = request.GET.get(nonce) if not wechat_instance.check_signature(signature=signature, timestamp=timestamp, nonce=nonce): return HttpResponseBadRequest(Verify Failed) return HttpResponse( request.GET.get(echostr, ‘‘), content_type="
text/plain") # POST # 解析本次請求的 XML 數據 try: wechat_instance.parse_data(data=request.body) except ParseError: return HttpResponseBadRequest(Invalid XML Data) # 獲取解析好的微信請求信息 message = wechat_instance.get_message() if isinstance(message, TextMessage): print 收到 文本消息 elif isinstance(message, VoiceMessage): print 收到 語音消息 elif isinstance(message, ImageMessage): print 收到 圖片消息 elif isinstance(message, VideoMessage): print 收到 視頻消息 elif isinstance(message, LinkMessage): print 收到 鏈接消息 elif isinstance(message, LocationMessage): print 收到 地理位置消息 elif isinstance(message, EventMessage): print 收到 事件消息 #關註事件(包括普通關註事件和掃描二維碼造成的關註事件) #如果 key 和 ticket 均不為空,則是掃描二維碼造成的關註事件 if message.type == subscribe: print 這是 關註事件 elif message.type == unsubscribe: print 這是 取消關註事件 elif message.type == scan: print 這是 已關註用戶掃描二維碼! elif message.type == location: print 這是 上報地理位置 elif message.type == click: print 這是 自定義菜單點擊 elif message.type == view: print 這是 自定義菜單跳轉鏈接 elif message.type == templatesendjobfinish: print 這是 模板消息 reply_text = 已經響應了 response = wechat_instance.response_text(content=reply_text) return HttpResponse(response, content_type="application/xml")

以上代碼思路比較清晰所以做個記錄吧,但是看到https://github.com/doraemonext/wechat-python-sdk表示該項目已經停止開發,推薦使用 https://github.com/jxtech/wechatpy/ 作為替代品。

Django Python Wechat