首页 > 编程语言 >Python:企业微信批量发工资条工具 -应用消息发送模块

Python:企业微信批量发工资条工具 -应用消息发送模块

时间:2022-11-23 19:37:27浏览次数:42  
标签:工资条 Python 微信 self corpsecret token time retDict corpid


16年python练手,开发了采用企业微信批量发工资条的程序,其中对企业微信发消息的功能做了包装。在此记录和分享一下。

整体程序,使用了 wxPython GUI ,以 excel 来存放数据和消息格式配置。

Python:企业微信批量发工资条工具 -应用消息发送模块_微信

消息内容和格式都可以在excel内自由定制,不限列数,行数。下面是最终在企业微信内的显示效果。

Python:企业微信批量发工资条工具 -应用消息发送模块_微信_02

发消息模块(仅供学习研究)

#!/usr/bin/python
# -*- coding: utf-8 -*-
# WeiXin_App_Helper.py
#
# Copyright (C) 2016 - xulong <[email protected]>
#
import time
import json
import requests
#import pdb



#******************************************
#类定义区
#******************************************
class WeiXin_App_Helper(object):
"""
#企业微信应用消息发送工具类,
corpid : 填写自己企业ID,
corpsecret : 填写自己的管理组Secret,
appid :应用ID
"""
def __init__(self, corpid, corpsecret,appid):
#self.corpid = corpid
#self.corpsecret = corpsecret
self.baseurl = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}'.format(corpid, corpsecret)
self.appid = appid

self.expire_time = 0.0
self.access_token = ""

#print 'ini exprie_time',self.expire_time



# 获取token
def __get_token(self):
retDict = {'errcode':0}
if self.expire_time < time.time(): #到期时间小于当前时间,说明token到期了需要重新获取
try:
response = requests.get(self.baseurl)
#pdb.set_trace()
if response.status_code == 200:
retDict = response.json()
if 'errcode' in retDict.keys():
if retDict['errcode'] != 0:
return retDict
self.expire_time = time.time() + retDict['expires_in']
self.access_token = retDict['access_token']
except Exception, e:
retDict["errcode"]=9999
retDict["errmsg"]=e.message

#print 'get new expire_time:',self.expire_time
return retDict

def send_msg(self,touser,content):
"""
发送消息,
touser:接收消息者(企业微信中的微信号),
content:消息内容
"""

#print "access_Token", qs_token
#pdb.set_trace()
retDict=self.__get_token()
if retDict['errcode'] != 0:
return retDict

url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={0}".format(self.access_token)
payload = {
"touser": touser,
"msgtype": "text",
"agentid": self.appid,
"text": {
"content": content
},
"safe": "1"
}
#print payload
data = json.dumps(payload, ensure_ascii=False)
data = data.encode('utf-8')
try:
#pdb.set_trace()
response = requests.post(url, data=data)#,verify=resource_path("cacert.pem"))
#print ret

if response.status_code == 200:
retDict = response.json()
except Exception, e:
retDict["errcode"]=9999
retDict["errmsg"]=e.message

return retDict





if __name__ == '__main__':
print 'test send message'
g_corpid = "xxxxxxxxxxxxxxxxxx" # 填写自己企业ID
g_corpsecret ="XXXXXXXXXXXXXXXXXXXXXXXXXX" # 填写自己的管理组Secret
g_appid = 99 #应用ID
winxin = WeiXin_App_Helper(g_corpid,g_corpsecret,g_appid)
winxin.send_msg('101062','test mdsfasfasfasfessage')


标签:工资条,Python,微信,self,corpsecret,token,time,retDict,corpid
From: https://blog.51cto.com/fangkailove/5881711

相关文章

  • Python 爬虫2例:爬网络小说
    程序逻辑:按给出的第一章节URL,抓HTML,然后通过正则表达式,取出小说章节的标题、正文、下章节的URL,然后跳转到下一章节,不断循环处理。取出的正文写入文本文件。同时记录每......
  • Python 爬虫:喜马拉雅FM音频(这个还能不载,试了一下其它下载工具都不行了)
    现在是3:35分,花了整晚时间,写了个喜马拉雅FM音频爬虫,顺便熟悉了一下tkinterGUI效果图:已打包的工具可以在下面下载:链接:​​https://pan.baidu.com/s/1jJ50I4vlJyRtVFXR......
  • python 爬虫 试了五种爬喜马的方法并做了测试代码(爬虫系列研究告一段落了...)
    先介绍一下我想到和测试了的五种方法: 方法1,使用下面接口:    通过web_api'http://m.ximalaya.com/m-revision/page/album/queryAlbumPage/%s?pageSize=1000'%al......
  • Python 处理输入法字库(五笔极点字库转小鸭字库)
    一直都是用的小鸭五笔,091新字库是极点格式的,刚开始懒得动,直接用极点五笔了,用了一段时间碰到很多问题.其中最坑的是.在tkinterGui里极点输入不能退格,一退格就乱码( ......
  • Python 统计学生总分
    输入学生的学号、姓名以及语文、数学、外语成绩,统计每个学生的总分,并按总分升序输出所有学生的学号、姓名和总分。输入格式:输入若干行数据,每一行数据分别为学号、姓名以......
  • vim-python全能补全与python环境变量设置
    vim针对python的万能补全对于python自带的模块库都能够正常使用全能补全,但一些自定义的模块却不行,这是因为vim当前进程需要找到相应模块并做导入分析获取补全用的词......
  • Python的GET和POST请求
    引入requests包注:发送请求(包括请求行、方法类型、头、体)&常见的请求方式有get、post、put、delete一、发送get请求格式:requests.get()(内容:url必填;params选填:u......
  • 6. python和Redis交互
    1安装包pipinstallredis2引入模块fromredisimport*这个模块中提供了StrictRedis对象(Strict严格),用于连接redis服务器,并按照不同类型提供了不同方法,进行交互操作......
  • Python 性能检测分析方法 - 时间、空间衡量方法
    性能检测分析方法-时间、空间衡量方法Python自带模块importtime点击查看代码#仅仅是示范time模块的用法,此段不能直接运行,运行请看测试项目源码importtime......
  • python四十期--mysql
    昨日内容回顾存取数据演变史1.文本文件2.目录规范3.数据库ps:数据处理统一数据库应用史1.本地存储2.网络存储ps:数据库集群数据库本质数据库在不同的场......