下面一段代碼給大家介紹python 處理微信對賬單數據,具體代碼如下所示:
#下載對賬單并存儲到數據庫
@app.route("/bill/
",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 處理微信對賬單數據的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

