python 处理微信对账单数据的实例代码
作者:故事的开头是个码农 发布时间:2023-12-19 21:45:23
标签:python,微信,账单
下面一段代码给大家介绍python 处理微信对账单数据,具体代码如下所示:
#下载对账单并存储到数据库
@app.route("/bill/<string:date>",methods=["GET","POST"])
def download_bill(date):
pay = MyWeiXinPay()#自己的支付类
bill= pay.download_mybill(date)#下载原始对账单,下载下来为字符串
billArray=bill.split("\r\n") #分割账单,一行为一组数据,分割后第一行为数据标题,倒数第三行为统计标题,倒数第二行为统计金额,最后一行为多余的空行
titleArray=billArray[0].split(',')#第一行为标题
title_total=billArray[len(billArray)-2] #统计标题
data_total=billArray[len(billArray)-1]#统计金额
del billArray[0] #去掉标题
del billArray[len(billArray)-3] #去掉总标题
del billArray[len(billArray)-2] #去掉总额
del billArray[len(billArray)-1] #去掉空行,剩下的为账单详情数据
mybill=[] #订单详细信息
#循环账单详情数据
for i in billArray:
#每一条订单详细信息(去掉分隔出来的空数据)
_detail=i.split('`')[:-1]
del _detail[0]#去掉前边的空数据
_detail_temp=[]
for d in _detail:
#每一个数据(去掉最后的逗号)
_detail_val=d[:-1]
_detail_temp.append(_detail_val)
#TODO业务处理
# print(d[:-1])
#TODO业务处理
mybill.append(_detail_temp)
# print("---------------------------------------------")
#返回值TODO
return json.dumps(mybill)
ps:Python通过微信对账接口获取账单明细
由于工作需要,实现了用Python获取微信对账明细,最终生成CSV文件。
代码如下:
# -*- coding: utf-8 -*-
import urllib2
import hashlib
import datetime
'''登录微信公众号后台,可以查询到APPID和MCH_ID,并填写生成的KEY'''
APPID = ""
MCH_ID = ""
KEY = ""
#当天获取昨天一整天的微信支付数据
yesterday = datetime.date.today() + datetime.timedelta(-1)
TimeList = [
yesterday.strftime("%Y%m%d")
]
f = file("./test.csv", "w")
#创建CSV文件表头
f.write("交易时间,公众账号ID,商户号,子商户号,设备号,微信订单号,商户订单号,用户标识,交易类型,交易状态,付款银行,货币种类,总金额,代金券或立减优惠金额,微信退款单号,商户退款单号,退款金额,代金券或立减优惠退款,退款类型,退款状态,商品名称,商户数据包,手续费,费率\n".decode("utf-8").encode("gb2312"))
f.close()
cookies = urllib2.HTTPCookieProcessor()
opener = urllib2.build_opener(cookies)
#循环取时间列表里面的时间,并获取相对应的微信支付的记录
for date in TimeList:
temp = "appid=%s&bill_date=%s&bill_type=ALL&mch_id=%s&nonce_str=21df7dc9cd8616b56919f20d9f679233&key=%s"
temp = temp % (APPID, date, MCH_ID, KEY)
MD5 = hashlib.md5()
MD5.update(temp)
data = '''
%s
%s
ALL
%s
21df7dc9cd8616b56919f20d9f679233
%s
'''
data = data % (APPID, date, MCH_ID, MD5.hexdigest().upper())
request = urllib2.Request(
url = r'https://api.mch.weixin.qq.com/pay/downloadbill',
headers = {'Content-Type' : 'text/xml'},
data = data)
data = opener.open(request).read()
print data
#将获取的数据分行,放入列表中
lines = data.split("\n")
f = file("./test.csv", "a")
#将获取的数据按行写入CSV文件
for i in range(len(lines)):
if i>0 and i
f.write(lines[i].replace("`",""))
i += 1
f.close()
总结
以上所述是小编给大家介绍的python 处理微信对账单数据的实例代码,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
来源:https://www.jianshu.com/p/b3cb36c5affa
0
投稿
猜你喜欢
- 本文实例讲述了PHP基于非递归算法实现先序、中序及后序遍历二叉树操作。分享给大家供大家参考,具体如下:概述:二叉树遍历原理如下:针对上图所示
- 一、代码注释介绍注释就是对代码的解释和说明,其目的是让人们能够更加轻松地了解代码。注释是编写程序时,写程序的人给一个语句、程序段、函数等的解
- 项目有时要用一些Ajax的效果,因为比较简单,也就没有去用什么Ajax.net之类的东西,手写代码也就实现了。、第二天,有人反馈错误;说是只
- 本文实例为大家分享了Bootstrap实现渐变顶部固定自适应导航栏的具体代码,供大家参考,具体内容如下具体代码如下所示:<!DOCTY
- 本次爬虫用到的网址是:http://www.netbian.com/index.htm: 彼岸桌面.里面有很多的好看壁纸,而且都是可以下载高
- 如何用javascript来判定选择单选的radio哪个被选择,多选的checkbox有那几个被选中? <!DOCTYPE
- 本文实例讲述了Python实现读取SQLServer数据并插入到MongoDB数据库的方法。分享给大家供大家参考,具体如下:# -*- co
- 最小生成树的Prim算法也是贪心算法的一大经典应用。Prim算法的特点是时刻维护一棵树,算法不断加边,加的过程始终是一棵树。Prim算法过程
- SQL Server定位于中型的数据库应用,操作较Oracle和MySQL等要相对简便,SQL Server在处理海量数据的效率,后台开发的
- 基于微信可以做很多有意思的练手项目,看了这张速查表你就会发现,可以做的事情超过你的想象。有一次我想要统计微信群里哪些同学在北京,但发现直接问
- pip的安装,以及使用pip安装包的方法,记录如下,分享给大家:—–安装python的时候勾选了下载pip,不知道为什么没下载。然后就偷懒想
- 若对于同一数据库实例中的两个数据库进行同步则直接对数据库表创建Trigger。SQL Server 2005的联机帮助:Trigger on
- 变量赋值与对象赋值对比<?php // 声明一个变量并赋值 $a = 1; // 将数据类型
- Python3将数据保存为txt文件的方法,具体内容如下所示:f = open("data/model_Weight.txt&qu
- 如何制作一个小巧的购物车?主程序如下:cartkit.aspClass CartKitSub CreateCart()&
- 一般写ASP PHP代码的朋友都估计是采用直接操作SQL的吧~ 看以下的代码 <% dim conn,rs&nbs
- 公司网站后台使用的eWebEditor来添加发布新闻之类的,但把电脑的IE升级到8之后一直没办法添加附件之类的,症状就是在点击编辑器按钮时就
- 本文实例为大家分享了python傅里叶变换FFT绘制频谱图的具体代码,供大家参考,具体内容如下频谱图的横轴表示的是 频率, 纵轴表
- 思路:利用time函数返回的时间字符串与指定时间字符串做比较,相等的时候执行对应的操作。不知道大家的思路是什么,感觉这样比较耗CPU。。。。
- 这篇文章主要介绍了python基于event实现线程间通信控制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,