pitón-weixin
Un cliente Python para las API REST de Weixin
Compatibilidad
componente | compatibilidad |
---|
Pitón | veintitrés.* |
Instalación
pip install python-weixin
Requiere
* requests
* simplejson
* six
* xmltodict
* pycryptodome
Inicio rápido
- plataforma pública wechat
- Autorización de WeChat
- Pago WeChat
- Desarrollo de la nube del mini programa WeChat
Ejemplos de uso del subprograma WeChat:
Documento de inicio de sesión del subprograma WeChat
Inicie sesión en el subprograma WeChat para obtener información del usuario
Python implementa el inicio de sesión y el registro de pequeños programas
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 )
Autenticación
Para obtener detalles sobre el método de autenticación OAuth2 utilizado por la API de Weixin, consulte: https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&lang=zh_CN
Autenticar a un usuario
Consulte la aplicación de muestra para conocer métodos de uso específicos.
Usando un token de acceso
Después de obtener el token de acceso, puede utilizarlo para obtener información del usuario, etc.:
Ejemplos de uso de la plataforma abierta 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" )
Ejemplos de uso de la plataforma pública 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" )
Ejemplo de uso de pago de 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 )
Crear un menú personalizado
Tipos de botones admitidos
- clic: evento de inserción de clic Después de que el usuario haga clic en el botón de tipo de clic, el servidor WeChat enviará la estructura del evento de tipo de mensaje al desarrollador a través de la interfaz de mensajes (consulte la guía de la interfaz de mensajes) y traerá el valor clave completado por el desarrollador. en el botón. El desarrollador puede interactuar con los usuarios a través de valores clave personalizados;
- ver: URL de salto Después de que el usuario hace clic en el botón de tipo de vista, el cliente WeChat abrirá la URL de la página web completada por el desarrollador en el botón. Se puede combinar con la interfaz de autorización de la página web para obtener la información básica del usuario. información básica del usuario.
- scancode_push: después de que el usuario hace clic en el botón en el evento de inserción del código de escaneo, el cliente WeChat activará la herramienta de escaneo. Después de completar la operación del código de escaneo, se mostrará el resultado del escaneo (si es una URL, se ingresará la URL). y el resultado del código de escaneo se pasará al desarrollador, los desarrolladores pueden enviar mensajes.
- scancode_waitmsg: escanee el código para enviar el evento y aparecerá el cuadro emergente "Recibir mensaje". Después de que el usuario haga clic en el botón, el cliente WeChat iniciará la herramienta de escaneo. Después de completar la operación de escaneo del código, se mostrará el resultado del escaneo. se enviará al desarrollador y, al mismo tiempo, se cerrará. Escanee la herramienta y luego aparecerá el cuadro de mensaje "Recepción de mensaje" y podrá recibir un mensaje del desarrollador.
- pic_sysphoto: después de que el usuario hace clic en el botón para tomar una fotografía y enviarla en el sistema, el cliente WeChat llamará a la cámara del sistema. Después de completar la operación de tomar la fotografía, la fotografía tomada se enviará al desarrollador y el evento. se enviará al desarrollador. Al mismo tiempo, la cámara del sistema se guardará y luego podrá recibir mensajes de los desarrolladores.
- pic_photo_or_album: después de que el usuario hace clic en el botón para tomar una foto o enviar una foto a un álbum, el cliente WeChat mostrará un selector para que el usuario elija "tomar una foto" o "seleccionar del álbum del teléfono móvil". Después de que el usuario elija, pasará por los otros dos procesos.
- pic_weixin: después de que el usuario hace clic en el botón del remitente emergente del álbum de fotos de WeChat, el cliente de WeChat abrirá el álbum de fotos de WeChat. Después de completar la operación de selección, las fotos seleccionadas se enviarán al servidor del desarrollador y el evento. se enviará al desarrollador. Al mismo tiempo, el álbum de fotos se cerrará. Es posible que reciba un mensaje del desarrollador.
- location_select: después de que el usuario hace clic en el botón del selector de ubicación geográfica emergente, el cliente WeChat llamará a la herramienta de selección de ubicación geográfica. Después de completar la operación de selección, la ubicación geográfica seleccionada se enviará al servidor del desarrollador y la ubicación. La herramienta de selección de ubicación se cerrará al mismo tiempo. La herramienta de selección de ubicación podrá recibir un mensaje del desarrollador.
- media_id: envía mensajes (excepto mensajes de texto). Después de que el usuario hace clic en el botón de tipo media_id, el servidor WeChat enviará al usuario el material correspondiente a la ID del material permanente completada por el desarrollador. El tipo de material permanente puede ser imágenes y audios. , vídeos y mensajes gráficos. Tenga en cuenta: la identificación del material permanente debe ser una identificación legal obtenida después de cargarla a través de la interfaz "Gestión de materiales/Agregar material permanente".
- view_limited: salte a la URL del mensaje gráfico después de que el usuario haga clic en el botón de tipo view_limited, el cliente WeChat abrirá la URL del mensaje gráfico correspondiente a la ID del material permanente completada por el desarrollador en el botón. El tipo de material permanente solo admite mensajes gráficos. . Tenga en cuenta: la identificación del material permanente debe ser una identificación legal obtenida después de cargarla a través de la interfaz "Gestión de materiales/Agregar material permanente".
Descripción del parámetro del menú personalizado
parámetro | ¿Es necesario? | ilustrar |
---|
botón | Sí | Matriz de menú de primer nivel, el número debe ser 1 ~ 3 |
sub_botón | No | Matriz del menú secundario, el número debe ser del 1 al 5 |
tipo | Sí | Tipo de acción de respuesta del menú |
nombre | Sí | Título del menú, no más de 16 bytes, submenú no más de 40 bytes |
llave | Se requieren clics y otros tipos de clics | Valor de la CLAVE del menú, utilizado para enviar mensajes a la interfaz, no más de 128 bytes |
URL | el tipo de vista debe | Enlace web, el usuario puede hacer clic en el menú para abrir el enlace, no más de 1024 bytes |
media_id el tipo media_id y el tipo view_limited deben ser el media_id legal devuelto al llamar a la nueva interfaz de material permanente | | |
Gestión de mensajes
respuesta pasiva
Una respuesta pasiva es lo que se incluye en la respuesta después de que el usuario realiza una solicitud.
Consulte el documento de referencia oficial para el cuerpo del mensaje: Responder pasivamente a los mensajes de los usuarios
mensaje de servicio al cliente
lista de API
- add_customservice Agregar cuenta de servicio al cliente
- update_customservice Modificar cuenta de servicio al cliente
- delete_customservice eliminar cuenta de servicio al cliente
- getall_customservice Obtener todas las cuentas de servicio al cliente
- custom_message_send Enviar mensaje de servicio al cliente
Consulte el documento de referencia oficial para conocer el mensaje: Mensaje de servicio al cliente
mensaje de plantilla
lista de API
Para el cuerpo del mensaje, consulte el documento de referencia oficial: Mensaje de plantilla
Si tienes alguna pregunta, puedes discutirla en la cuenta oficial.
agradecido