Django支付寶自動轉賬功能(二)

2021-08-22 13:33:34 字數 2316 閱讀 4106

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 支付寶公鑰證書路徑 要確保證書檔案可讀 ...

支付寶開發轉賬介面

提現功能,需要呼叫支付寶的單筆轉賬介面。支付寶文件上邊一開始寫的是需要使用公鑰證書去請求,然而我的程式一開始寫的是使用公鑰金鑰去請求的。需要接入的話就必須修改原先的請求方式改成證書請求,修改方式會影響整個程式的支付寶請求環節。最後支付寶技術客服建議讓我去建立乙個新的應用來使用這個介面,於是終於可以開...