Python-Weixin
Ein Python-Client für die Weixin-REST-APIs
Kompatibilität
Komponente | Kompatibilität |
---|
Python | dreiundzwanzig.* |
Installation
pip install python-weixin
Erfordert
* requests
* simplejson
* six
* xmltodict
* pycryptodome
Schnellstart
- Öffentliche WeChat-Plattform
- WeChat-Autorisierung
- WeChat-Bezahlung
- WeChat Mini-Programm Cloud-Entwicklung
Beispiele für die Verwendung des WeChat-Applets:
Anmeldedokument für das WeChat-Applet
Melden Sie sich beim WeChat-Applet an, um Benutzerinformationen zu erhalten
Python implementiert die Anmeldung und Registrierung kleiner Programme
from weixin import WXAPPAPI
from weixin . lib . wxcrypt import WXBizDataCrypt
api = WXAPPAPI ( appid = APP_ID ,
app_secret = APP_SECRET )
session_info = api . exchange_code_for_session_key ( code = code )
# 获取session_info 后
session_key = session_info . get ( 'session_key' )
crypt = WXBizDataCrypt ( WXAPP_APPID , session_key )
# encrypted_data 包括敏感数据在内的完整用户信息的加密数据
# iv 加密算法的初始向量
# 这两个参数需要js获取
user_info = crypt . decrypt ( encrypted_data , iv )
Authentifizierung
Einzelheiten zur OAuth2-Authentifizierungsmethode, die von der Weixin-API verwendet wird, finden Sie unter: https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&lang=zh_CN
Authentifizieren eines Benutzers
Spezifische Nutzungsmethoden finden Sie in der Beispiel-App.
Verwendung eines Zugriffstokens
Nachdem Sie das Zugriffstoken erhalten haben, können Sie mit dem Token Benutzerinformationen usw. abrufen:
Beispiele für die Verwendung der offenen WeChat-Plattform:
from weixin . client import WeixinAPI
scope = ( "snsapi_login" , )
api = WeixinAPI ( appid = APP_ID ,
app_secret = APP_SECRET ,
redirect_uri = REDIRECT_URI )
authorize_url = api . get_authorize_url ( scope = scope )
access_token = api . exchange_code_for_access_token ( code = code )
api = WeixinAPI ( access_token = access_token )
user = api . user ( openid = "openid" )
Beispiele für die Nutzung der öffentlichen WeChat-Plattform:
from weixin . client import WeixinMpAPI
scope = ( "snsapi_base" , )
api = WeixinMpAPI ( appid = APP_ID ,
app_secret = APP_SECRET ,
redirect_uri = REDIRECT_URI )
authorize_url = api . get_authorize_url ( scope = scope )
access_token = api . exchange_code_for_access_token ( code = code )
api = WeixinMpAPI ( access_token = access_token )
user = api . user ( openid = "openid" )
Beispiel für die WeChat-Zahlungsnutzung:
from weixin . pay import WeixinPay
wxpay = WeixinPay ( appid = 'appid' ,
mch_id = 'mchid' ,
notify_url = 'url' ,
partner_key = 'key' )
create_pay_info = {}
# 统一下单
wxpay . unifiedorder ( ** create_pay_info )
# 查询订单
wxapp . order_query ( out_trade_no = 'out_trade_no' )
# 企业付款
wxepay = WeixinEnterprisePay ( appid = 'appid' ,
mch_id = 'mchid' ,
mch_key = 'mch_key' ,
mch_cert = 'mch_cert' ,
partner_key = 'key' )
wxepay . transfers ( partner_trade_no ,
openid ,
amount ,
desc = u'结算' )
# 企业付款查询
wxepay_query = WeixinEnterprisePayQuery ( appid = 'appid' ,
mch_id = 'mchid' ,
mch_key = 'mch_key' ,
mch_cert = 'mch_cert' ,
partner_key = 'key' )
wxepay_query . gettransferinfo ( partner_trade_no )
Erstellen Sie ein benutzerdefiniertes Menü
Unterstützte Schaltflächentypen
- Klicken: Klicken Sie auf Push-Ereignis. Nachdem der Benutzer auf die Schaltfläche „Klicktyp“ geklickt hat, überträgt der WeChat-Server die Ereignisstruktur des Nachrichtentyps über die Nachrichtenschnittstelle an den Entwickler (siehe Anleitung zur Nachrichtenschnittstelle) und bringt den vom Entwickler eingegebenen Schlüsselwert in der Schaltfläche kann der Entwickler über benutzerdefinierte Schlüsselwerte mit Benutzern interagieren.
- Ansicht: Sprung-URL Nachdem der Benutzer auf die Schaltfläche „Ansichtstyp“ geklickt hat, öffnet der WeChat-Client die vom Entwickler in die Schaltfläche eingegebene Webseiten-URL. Er kann mit der Webseiten-Autorisierungsschnittstelle kombiniert werden, um die grundlegenden Informationen des Benutzers abzurufen grundlegende Informationen des Benutzers.
- scancode_push: Nachdem der Benutzer im Scan-Code-Push-Ereignis auf die Schaltfläche geklickt hat, aktiviert der WeChat-Client das Scan-Tool. Nach Abschluss des Scan-Code-Vorgangs wird das Scan-Ergebnis angezeigt (wenn es sich um eine URL handelt, wird die URL eingegeben). , und das Scan-Code-Ergebnis wird an den Entwickler weitergeleitet, Entwickler können Nachrichten senden.
- scancode_waitmsg: Scannen Sie den Code, um das Ereignis zu übertragen und das Eingabeaufforderungsfeld „Nachrichtenempfang“ anzuzeigen. Nachdem der Benutzer auf die Schaltfläche geklickt hat, startet der WeChat-Client das Scan-Tool an den Entwickler gesendet und gleichzeitig das Tool geschlossen. Anschließend wird das Eingabeaufforderungsfeld „Nachrichtenempfang“ angezeigt, und Sie erhalten möglicherweise eine Nachricht vom Entwickler.
- pic_sysphoto: Nachdem der Benutzer auf die Schaltfläche zum Aufnehmen und Senden eines Bildes im System geklickt hat, ruft der WeChat-Client die Systemkamera auf. Nach Abschluss des Bildaufnahmevorgangs wird das aufgenommene Bild an den Entwickler gesendet und das Ereignis ausgeführt Gleichzeitig wird die Systemkamera weggelegt und Sie erhalten möglicherweise Nachrichten von Entwicklern.
- pic_photo_or_album: Nachdem der Benutzer auf die Schaltfläche geklickt hat, um ein Foto aufzunehmen oder ein Bild an ein Album zu senden, öffnet der WeChat-Client eine Auswahl, in der der Benutzer „Foto aufnehmen“ oder „Aus dem Handyalbum auswählen“ auswählen kann. Nachdem der Benutzer ausgewählt hat, durchläuft er die beiden anderen Prozesse.
- pic_weixin: Nachdem der Benutzer auf die Schaltfläche des Absenders des Popup-WeChat-Fotoalbums geklickt hat, ruft der WeChat-Client das WeChat-Fotoalbum auf. Nach Abschluss des Auswahlvorgangs werden die ausgewählten Fotos an den Server des Entwicklers gesendet und das Ereignis ausgeführt Gleichzeitig wird das Fotoalbum geschlossen. Möglicherweise erhalten Sie eine Nachricht vom Entwickler.
- location_select: Nachdem der Benutzer auf die Schaltfläche zur Auswahl des geografischen Standorts geklickt hat, ruft der WeChat-Client das Tool zur Auswahl des geografischen Standorts auf. Nach Abschluss des Auswahlvorgangs wird der ausgewählte geografische Standort und der Standort an den Server des Entwicklers gesendet Gleichzeitig wird das Standortauswahltool geschlossen. Möglicherweise erhalten Sie dann eine Nachricht vom Entwickler.
- media_id: Senden Sie Nachrichten (außer Textnachrichten). Nachdem der Benutzer auf die Schaltfläche „media_id type“ geklickt hat, sendet der WeChat-Server das Material, das der vom Entwickler eingegebenen permanenten Material-ID entspricht. Der permanente Materialtyp kann Bilder oder Audios sein , Videos und grafische Nachrichten. Bitte beachten Sie: Bei der permanenten Material-ID muss es sich um eine gültige ID handeln, die nach dem Hochladen über die Schnittstelle „Materialverwaltung/Permanentes Material hinzufügen“ erhalten wurde.
- view_limited: Springen Sie zur grafischen Nachrichten-URL, nachdem der Benutzer auf die Schaltfläche „view_limited“ geklickt hat. Der WeChat-Client öffnet die grafische Nachrichten-URL, die der vom Entwickler in der Schaltfläche eingegebenen permanenten Material-ID entspricht . Bitte beachten Sie: Die permanente Material-ID muss eine gültige ID sein, die nach dem Hochladen über die Schnittstelle „Materialverwaltung/Permanentmaterial hinzufügen“ erhalten wurde.
Beschreibung der benutzerdefinierten Menüparameter
Parameter | Ist es notwendig? | veranschaulichen |
---|
Taste | Ja | Menü-Array der ersten Ebene, die Nummer sollte 1–3 sein |
sub_button | NEIN | Sekundäres Menüfeld, die Zahl sollte 1–5 sein |
Typ | Ja | Aktionstyp der Menüreaktion |
Name | Ja | Menütitel, nicht mehr als 16 Bytes, Untermenü nicht mehr als 40 Bytes |
Schlüssel | Klicken und andere Klicktypen sind erforderlich | Menü-KEY-Wert, der für den Nachrichtenschnittstellen-Push verwendet wird, nicht mehr als 128 Byte |
URL | Ansichtstyp muss | Weblink, der Benutzer kann auf das Menü klicken, um den Link zu öffnen, nicht mehr als 1024 Byte |
media_id media_id-Typ und view_limited-Typ müssen die zulässige media_id sein, die durch Aufrufen der neuen permanenten Materialschnittstelle zurückgegeben wird | | |
Nachrichtenverwaltung
Passive Antwort
Eine passive Antwort ist das, was in der Antwort enthalten ist, nachdem der Benutzer eine Anfrage gestellt hat
Den Nachrichtentext finden Sie im offiziellen Referenzdokument: Passiv auf Benutzernachrichten antworten
Kundendienstnachricht
API-Liste
- add_customservice Kundendienstkonto hinzufügen
- update_customservice Kundendienstkonto ändern
- delete_customservice Kundendienstkonto löschen
- getall_customservice Alle Kundendienstkonten abrufen
- custom_message_send Senden Sie eine Kundendienstnachricht
Die Nachricht finden Sie im offiziellen Referenzdokument: Kundendienstnachricht
Vorlagenachricht
API-Liste
Den Nachrichtentext finden Sie im offiziellen Referenzdokument: Template Message
Wenn Sie Fragen haben, können Sie diese auf dem offiziellen Konto besprechen
dankbar