1.excel檔案的讀取
python讀取excel檔案需要用到xlrd這個庫,這個庫的具體用法這裡就不說了,主要介紹一下讀取excel檔案的步驟:
1.使用xlrd.open_workbook(path)開啟檔案
2.遍歷檔案中所有的sheet,並且讀取所有行資料
for sheet in excelfile.sheet_names():
data = excelfile.sheet_by_name(sheet)
i = 0
while i < (data.nrows):
yield data.row_values(i)
i += 1
為了防止檔案過大占有太多記憶體,沒有一次將所有資料都讀取出來,而是使用生成器返回乙個迭代物件,每次呼叫這個迭代物件來取出資料。
f = read_excel('../files/2018.7.30(1).xls')
for i in f:
print(i)
執行結果:
2.呼叫轉賬介面:
介面部分我們之前已經說過了,現在只需要將excel中的資料傳遞進去就能夠實現轉賬功能了,
為了不單單只是在後台列印交易資訊,對之前的pay方法做一些調整
data =
if result['code'] == '10000':
if result['msg'] == "success":
print(payee_account + " 轉賬成功" + " 交易單號:" + result["out_biz_no"])
data['payee_account'] = payee_account
data['amount'] = amount
data['payee_real_name'] = payee_real_name
data['order_id'] = result['order_id']
data['out_biz_no'] = result['out_biz_no']
data['pay_date'] = result['pay_date']
data['status'] = '轉賬成功'
return data
else:
print(payee_account, amount, result['sub_msg'], result["out_biz_no"])
data['payee_account'] = payee_account
data['amount'] = amount
data['payee_real_name'] = payee_real_name
data['out_biz_no'] = result['out_biz_no']
data['status'] = result['sub_msg']
# error = [payee_account, amount, payee_real_name, result['sub_msg'], result['out_biz_no']]
return data
方便起見將excel檔案讀取和轉賬介面封裝到乙個函式裡面了,現在只需要傳遞檔案路徑就能直接轉賬了,資料庫寫入就不詳細說了。
def run(path):
file = read_excel(path)
pay = payment(*******)
data =
error =
for item in file:
res = pay.pay(item[1], item[0], item[3], item[2])
res['remark'] = item[4]
if res['status'] != '轉賬成功':
res['out_biz_no']])
# except exception as e:
# pass
write(data) # 寫入資料庫
return error # 網頁返回錯誤資訊
3.網頁顯示失敗資訊:
這一步沒什麼好說的了,我是直接使用django的render函式將錯誤資訊渲染完成之後返回了乙個新的頁面。其實用ajax接收資料然後js來渲染頁面這種做法要好一些。 Django支付寶自動轉賬功能(一)
首先說明一下最終實現的效果 使用者上傳excel檔案 網頁端顯示讀取檔案並顯示預覽效果 上傳檔案至伺服器,伺服器後台開始呼叫介面自動轉賬 所有轉賬資訊儲存到資料庫中,失敗資訊返回到網頁上。1.網頁端的預覽 選擇上傳檔案後需要將檔案內容讀取並顯示出來,方便確認資訊是否有誤後在上傳,這裡主要是通過js讀...
支付寶證書模式(轉賬給其他支付寶)
因為支付寶的加密方式要求資金類必須用證書方式加密,所以。1.去生成crt證書 2.開始開發 初始化 證書模式 vendor alipay.aop.aopcertclient 引入sdk aop new aopcertclient alipaycertpath 支付寶公鑰證書路徑 要確保證書檔案可讀 ...
支付寶開發轉賬介面
提現功能,需要呼叫支付寶的單筆轉賬介面。支付寶文件上邊一開始寫的是需要使用公鑰證書去請求,然而我的程式一開始寫的是使用公鑰金鑰去請求的。需要接入的話就必須修改原先的請求方式改成證書請求,修改方式會影響整個程式的支付寶請求環節。最後支付寶技術客服建議讓我去建立乙個新的應用來使用這個介面,於是終於可以開...