python-weixin
Um cliente Python para as APIs REST do Weixin
Compatibilidade
componente | compatibilidade |
---|
Pitão | vinte e três.* |
Instalação
pip install python-weixin
Requer
* requests
* simplejson
* six
* xmltodict
* pycryptodome
Início rápido
- Plataforma pública WeChat
- Autorização WeChat
- Pagamento WeChat
- Desenvolvimento em nuvem do miniprograma WeChat
Exemplos de uso do miniaplicativo WeChat:
Documento de login do miniaplicativo WeChat
Faça login no miniaplicativo WeChat para obter informações do usuário
Python implementa login e registro de pequenos 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 )
Autenticação
Para obter detalhes sobre o método de autenticação OAuth2 usado pela API Weixin, consulte: https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&lang=zh_CN
Autenticando um usuário
Consulte o aplicativo de exemplo para métodos de uso específicos.
Usando um token de acesso
Depois de obter o token de acesso, você pode usá-lo para obter informações do usuário, etc.:
Exemplos de uso da plataforma aberta 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" )
Exemplos de uso da 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" )
Exemplo de uso de pagamento 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 )
Crie um menu personalizado
Tipos de botões suportados
- clique: evento Click push Depois que o usuário clica no botão de tipo de clique, o servidor WeChat enviará a estrutura do evento do tipo de mensagem para o desenvolvedor por meio da interface de mensagem (consulte o guia da interface de mensagem) e trará o valor-chave preenchido pelo desenvolvedor no botão O desenvolvedor pode interagir com os usuários por meio de valores-chave personalizados;
- visualizar: URL de salto Depois que o usuário clica no botão de tipo de visualização, o cliente WeChat abrirá o URL da página da web preenchido pelo desenvolvedor no botão. Ele pode ser combinado com a interface de autorização da página da web para obter as informações básicas do usuário para obter o. informações básicas do usuário.
- scancode_push: Depois que o usuário clicar no botão no evento push do código de verificação, o cliente WeChat ativará a ferramenta de verificação. Após concluir a operação de verificação do código, o resultado da verificação será exibido (se for um URL, o URL será inserido). , e o resultado do código de verificação será passado para o desenvolvedor, os desenvolvedores podem enviar mensagens.
- scancode_waitmsg: Digitalize o código para enviar o evento e apareça a caixa de prompt "Recebimento de mensagem". Depois que o usuário clicar no botão, o cliente WeChat iniciará a ferramenta de verificação. será enviado ao desenvolvedor e, ao mesmo tempo, será fechado. Faça a varredura da ferramenta e, em seguida, a caixa de prompt "Recebimento de mensagem" aparecerá e você poderá receber uma mensagem do desenvolvedor.
- pic_sysphoto: Após o usuário clicar no botão para tirar uma foto e enviar uma foto no sistema, o cliente WeChat irá chamar a câmera do sistema. Após concluir a operação de tirar foto, a foto tirada será enviada ao desenvolvedor e o evento será. será enviado ao desenvolvedor. Ao mesmo tempo, a câmera do sistema será guardada e você poderá receber mensagens dos desenvolvedores.
- pic_photo_or_album: Após o usuário clicar no botão para tirar uma foto ou enviar uma foto para um álbum, o cliente WeChat exibirá um seletor para o usuário escolher “tirar uma foto” ou “selecionar no álbum do celular”. Depois que o usuário escolher, ele passará pelos outros dois processos.
- pic_weixin: Após o usuário clicar no botão pop-up do remetente do álbum de fotos do WeChat, o cliente WeChat acessará o álbum de fotos do WeChat. Após concluir a operação de seleção, as fotos selecionadas serão enviadas ao servidor do desenvolvedor e o evento será. será enviado ao desenvolvedor. Ao mesmo tempo, o álbum de fotos será fechado. Você poderá receber uma mensagem do desenvolvedor.
- location_select: Após o usuário clicar no botão do seletor de localização geográfica pop-up, o cliente WeChat chamará a ferramenta de seleção de localização geográfica. Após concluir a operação de seleção, a localização geográfica selecionada será enviada ao servidor do desenvolvedor e a localização. a ferramenta de seleção será fechada ao mesmo tempo. A ferramenta de seleção de local poderá então ser Receber uma mensagem do desenvolvedor.
- media_id: Enviar mensagens (exceto mensagens de texto). Após o usuário clicar no botão do tipo media_id, o servidor WeChat enviará ao usuário o material correspondente ao ID do material permanente preenchido pelo desenvolvedor. , vídeos e mensagens gráficas . Observação: o ID do material permanente deve ser um ID legal obtido após o upload através da interface "Gerenciamento de materiais/Adicionar material permanente".
- view_limited: Vá para o URL da mensagem gráfica. Depois que o usuário clicar no botão do tipo view_limited, o cliente WeChat abrirá o URL da mensagem gráfica correspondente ao ID do material permanente preenchido pelo desenvolvedor no botão. . Observação: o ID do material permanente deve ser um ID legal obtido após o upload através da interface "Gerenciamento de materiais/Adicionar material permanente".
Descrição do parâmetro do menu personalizado
parâmetro | É necessário | ilustrar |
---|
botão | sim | Matriz de menu de primeiro nível, o número deve ser 1~3 |
sub_botão | não | Matriz de menu secundária, o número deve ser 1~5 |
tipo | sim | Tipo de ação de resposta do menu |
nome | sim | Título do menu, não mais que 16 bytes, submenu não mais que 40 bytes |
chave | Clique e outros tipos de clique são obrigatórios | Valor Menu KEY, usado para envio de interface de mensagem, não mais que 128 bytes |
url | tipo de visualização deve | Link da Web, o usuário pode clicar no menu para abrir o link, não mais que 1024 bytes |
media_id tipo media_id e tipo view_limited devem ser o media_id legal retornado chamando a nova interface de material permanente | | |
Gerenciamento de mensagens
Resposta passiva
Uma resposta passiva é o que é incluído na resposta depois que o usuário faz uma solicitação
Consulte o documento de referência oficial para o corpo da mensagem: Responder passivamente às mensagens do usuário
Mensagem de atendimento ao cliente
Lista de APIs
- add_customservice Adicionar conta de atendimento ao cliente
- update_customservice Modificar conta de atendimento ao cliente
- delete_customservice excluir conta de atendimento ao cliente
- getall_customservice Obtenha todas as contas de atendimento ao cliente
- custom_message_send Enviar mensagem de atendimento ao cliente
Consulte o documento de referência oficial da mensagem: Mensagem de Atendimento ao Cliente
mensagem modelo
Lista de APIs
Para o corpo da mensagem, consulte o documento de referência oficial: Template Message
Se você tiver alguma dúvida, pode discuti-la na conta oficial
grato