python-weixin
Un client Python pour les API REST Weixin
Compatibilité
composant | compatibilité |
---|
Python | vingt-trois.* |
Installation
pip install python-weixin
Nécessite
* requests
* simplejson
* six
* xmltodict
* pycryptodome
Démarrage rapide
- Plateforme publique WeChat
- Autorisation WeChat
- Paiement WeChat
- Développement cloud du mini programme WeChat
Exemples d'utilisation de l'applet WeChat :
Document de connexion à l'applet WeChat
Connectez-vous à l'applet WeChat pour obtenir des informations utilisateur
Python implémente la connexion et l'enregistrement d'un petit 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 )
Authentification
Pour plus de détails sur la méthode d'authentification OAuth2 utilisée par l'API Weixin, veuillez consulter : https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&lang=zh_CN
Authentifier un utilisateur
Veuillez vous référer à l'exemple d'application pour les méthodes d'utilisation spécifiques.
Utiliser un jeton d'accès
Après avoir obtenu le jeton d'accès, vous pouvez utiliser le jeton pour obtenir des informations utilisateur, etc. :
Exemples d'utilisation de la plateforme ouverte WeChat :
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" )
Exemples d'utilisation de la plateforme publique WeChat :
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" )
Exemple d'utilisation du paiement WeChat :
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 )
Créer un menu personnalisé
Types de boutons pris en charge
- click : événement push de clic Une fois que l'utilisateur a cliqué sur le bouton de type de clic, le serveur WeChat transmettra la structure de l'événement de type de message au développeur via l'interface de message (voir le guide de l'interface de message) et apportera la valeur clé renseignée par le développeur. dans le bouton. Le développeur peut interagir avec les utilisateurs via des valeurs clés personnalisées ;
- vue : URL de saut Une fois que l'utilisateur a cliqué sur le bouton de type d'affichage, le client WeChat ouvrira l'URL de la page Web renseignée par le développeur dans le bouton. Elle peut être combinée avec l'interface d'autorisation de la page Web pour obtenir les informations de base de l'utilisateur afin d'obtenir l'URL. informations de base de l'utilisateur.
- scancode_push : une fois que l'utilisateur a cliqué sur le bouton dans l'événement push du code de numérisation, le client WeChat activera l'outil d'analyse. Après avoir terminé l'opération de numérisation du code, le résultat de l'analyse sera affiché (s'il s'agit d'une URL, l'URL sera saisie). , et le résultat du code d'analyse sera transmis au développeur, les développeurs peuvent envoyer des messages.
- scancode_waitmsg : scannez le code pour envoyer l'événement et affichez la boîte de dialogue "Réception de message". Une fois que l'utilisateur a cliqué sur le bouton, le client WeChat lancera l'outil d'analyse. Une fois l'opération d'analyse du code terminée, le résultat de l'analyse du code sera affiché. sera envoyé au développeur et en même temps, il sera fermé. Analysez l'outil, puis la boîte de dialogue "Réception de message" apparaîtra et vous pourrez recevoir un message du développeur.
- pic_sysphoto : Une fois que l'utilisateur a cliqué sur le bouton pour prendre une photo et envoyer une photo dans le système, le client WeChat appellera la caméra système. Après avoir terminé l'opération de prise de photo, la photo prise sera envoyée au développeur et l'événement se déroulera. être transmis au développeur. Dans le même temps, la caméra système sera rangée et vous pourrez alors recevoir des messages des développeurs.
- pic_photo_or_album : une fois que l'utilisateur a cliqué sur le bouton pour prendre une photo ou envoyer une photo dans un album, le client WeChat affichera un sélecteur permettant à l'utilisateur de choisir « prendre une photo » ou « sélectionner dans l'album du téléphone mobile ». Une fois que l'utilisateur a choisi, il passera par les deux autres processus.
- pic_weixin : Une fois que l'utilisateur a cliqué sur le bouton de l'expéditeur pop-up de l'album photo WeChat, le client WeChat appellera l'album photo WeChat. Après avoir terminé l'opération de sélection, les photos sélectionnées seront envoyées au serveur du développeur et l'événement se déroulera. être poussé vers le développeur. Dans le même temps, l'album photo sera fermé. Vous pourrez alors recevoir un message du développeur.
- location_select : Une fois que l'utilisateur a cliqué sur le bouton du sélecteur d'emplacement géographique contextuel, le client WeChat appellera l'outil de sélection d'emplacement géographique. Après avoir terminé l'opération de sélection, l'emplacement géographique sélectionné sera envoyé au serveur du développeur et l'emplacement. L'outil de sélection d'emplacement sera fermé en même temps. L'outil de sélection d'emplacement pourra alors recevoir un message du développeur.
- media_id : envoyer des messages (sauf les messages texte). Une fois que l'utilisateur a cliqué sur le bouton de type media_id, le serveur WeChat enverra à l'utilisateur le matériel correspondant à l'ID de matériel permanent renseigné par le développeur. Le type de matériel permanent peut être des images, des audios. , des vidéos et des messages graphiques. Attention : l'identifiant matériel permanent doit être un identifiant légal obtenu après téléchargement via l'interface « Gestion du matériel/Ajouter du matériel permanent ».
- view_limited : accédez à l'URL du message graphique. Une fois que l'utilisateur a cliqué sur le bouton de type view_limited, le client WeChat ouvrira l'URL du message graphique correspondant à l'ID du matériau permanent renseigné par le développeur dans le bouton. Le type de matériau permanent ne prend en charge que les messages graphiques. . Attention : l'identifiant matériel permanent doit être un identifiant légal obtenu après téléchargement via l'interface « Gestion du matériel/Ajouter du matériel permanent ».
Description des paramètres du menu personnalisé
paramètre | Est-ce nécessaire | illustrer |
---|
bouton | Oui | Tableau de menus de premier niveau, le nombre doit être compris entre 1 et 3 |
sous_bouton | Non | Tableau de menu secondaire, le nombre doit être compris entre 1 et 5 |
taper | Oui | Type d'action de réponse au menu |
nom | Oui | Titre du menu, pas plus de 16 octets, sous-menu pas plus de 40 octets |
clé | Un clic et d'autres types de clics sont requis | Valeur de la clé de menu, utilisée pour le push de l'interface de message, pas plus de 128 octets |
URL | le type de vue doit | Lien Web, l'utilisateur peut cliquer sur le menu pour ouvrir le lien, pas plus de 1024 octets |
media_id type media_id et type view_limited doivent être les media_id légaux renvoyés en appelant la nouvelle interface matérielle permanente | | |
Gestion des messages
Réponse passive
Une réponse passive est ce qui est inclus dans la réponse après que l'utilisateur a fait une demande
Veuillez consulter le document de référence officiel pour le corps du message : Répondre passivement aux messages des utilisateurs
Message du service client
Liste des API
- add_customservice Ajouter un compte de service client
- update_customservice Modifier le compte du service client
- delete_customservice supprimer le compte du service client
- getall_customservice Obtenez tous les comptes du service client
- custom_message_send Envoyer un message au service client
Veuillez consulter le document de référence officiel pour le message : Message du service client
modèle de message
Liste des API
Pour le corps du message, voir le document de référence officiel : Template Message
Si vous avez des questions, vous pouvez en discuter sur le compte officiel
reconnaissant