python實(shí)現(xiàn)支付寶轉(zhuǎn)賬接口
由于工作需要使用python開(kāi)發(fā)一個(gè)自動(dòng)轉(zhuǎn)賬接口,記錄一下開(kāi)發(fā)過(guò)程。
首先需要在螞蟻金服上申請(qǐng)開(kāi)通開(kāi)發(fā)者賬戶,有了開(kāi)發(fā)者賬戶就可以使用沙箱進(jìn)行開(kāi)發(fā)了。
在開(kāi)發(fā)之前我們需要在沙箱應(yīng)用中填寫(xiě)密鑰,密鑰的獲取可以使用阿里提供的工具包自動(dòng)生成。

前期準(zhǔn)備工作完成了,接下來(lái)是編寫(xiě)代碼部分。主要用到了python-alipay-sdk庫(kù),使用pip安裝即可,如果安裝的過(guò)程中遇到問(wèn)題推薦使用Anaconda(crypto這個(gè)庫(kù)安裝了我好久沒(méi)成功,最后換成Anaconda環(huán)境了)
from datetime import datetime
from alipay import AliPay
class Payment():
def __init__(self, appid, url):
'''
支付接口初始化
:param appid: 商戶appid
:param url: 支付寶接口url
'''
self.app_private_key_string = open("app_private_key.txt").read() # 應(yīng)用私鑰(默認(rèn)從兩個(gè)TXT文件中讀?。?
self.alipay_public_key_string = open("alipay_public_key.txt").read() # 支付寶公鑰
self.alipay = AliPay(
appid=appid,
app_notify_url=url,
app_private_key_string=self.app_private_key_string,
alipay_public_key_string=self.alipay_public_key_string,
sign_type="RSA2",
debug=True
)
初始化的時(shí)候需要用到appid、應(yīng)用私鑰以及支付寶公鑰,appid和支付寶公鑰可在沙箱應(yīng)用中看到,應(yīng)用私鑰則需要在剛剛生成密鑰工具包的目錄下查看

獲取兩個(gè)密鑰之后可以單獨(dú)寫(xiě)入到兩個(gè)TXT文件中然后讀取文件內(nèi)容來(lái)獲取,以便以后的更改,在寫(xiě)入TXT文件的過(guò)程中不能只是單純的將密鑰復(fù)制過(guò)去,需要再第一行和最后一行加入
-----BEGIN PUBLIC KEY-----
你的密鑰
-----END PUBLIC KEY-----
要不然會(huì)出現(xiàn)這個(gè)錯(cuò)誤

第一次接觸這玩意,不知道具體的格式,找了好久的問(wèn)題,最后在源碼的這個(gè)地方發(fā)現(xiàn)了問(wèn)題,必須以這個(gè)開(kāi)頭

公共請(qǐng)求參數(shù)部分至此就完成了,接下來(lái)就是請(qǐng)求參數(shù)了,按照開(kāi)發(fā)文檔上有四個(gè)是必須的:out_biz_no、payee_type、payee_account、amount 對(duì)應(yīng)的意思分別是:商戶轉(zhuǎn)賬唯一訂單號(hào)、收款方賬戶類(lèi)型、收款方賬戶、轉(zhuǎn)賬金額。還有部分參數(shù)是可選的,在下面的代碼中交代了。
def pay(self, payee_account, amount, payee_real_name=None, remark=None, payer_show_name=None,
payee_type="ALIPAY_LOGONID"):
'''
發(fā)起轉(zhuǎn)賬
:param payee_account: 收款方賬戶
:param amount: 轉(zhuǎn)賬金額
:param payee_real_name:
:param remark: 收款方姓名
:param payer_show_name: 轉(zhuǎn)賬備注
:param payee_type: 付款方姓名
:return:
'''
result = self.alipay.api_alipay_fund_trans_toaccount_transfer(
datetime.now().strftime("%Y%m%d%H%M%S"),
payee_type=payee_type, # 收款方賬戶類(lèi)型
payee_account=payee_account, # 收款方賬戶
amount=amount, # 轉(zhuǎn)賬金額
payee_real_name=payee_real_name, # 收款方姓名(可選,若不匹配則轉(zhuǎn)賬失?。?
remark=remark, # 轉(zhuǎn)賬備注
payer_show_name=payer_show_name # 付款方姓名
)
# result={'code':'10000','msg':'Success','order_id': '','out_biz_no': '', 'pay_date': '2017-06-26 14:36:25'}
# 接口文檔:https://docs.open.alipay.com/api_28/alipay.fund.trans.toaccount.transfer
if result['code'] == '10000':
if result['msg'] == "Success":
print("轉(zhuǎn)賬成功" + " 交易單號(hào):" + result["order_id"])
else:
print(result)
print(result['sub_msg'])
到這這個(gè)代碼的基礎(chǔ)部分就此完成:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Pandas 數(shù)據(jù)處理,數(shù)據(jù)清洗詳解
今天小編就為大家分享一篇Pandas 數(shù)據(jù)處理,數(shù)據(jù)清洗詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
TensorFlow人工智能學(xué)習(xí)數(shù)據(jù)填充復(fù)制實(shí)現(xiàn)示例
這篇文章主要為大家介紹了TensorFlow人工智能學(xué)習(xí)如何進(jìn)行數(shù)據(jù)填充復(fù)制的實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11
Python數(shù)據(jù)可視化之Seaborn的使用詳解
Seaborn庫(kù)是python中基于matplotlib庫(kù)的可視化工具庫(kù),通過(guò)sns我們可以更方便地繪制出更美觀的圖表。本文將分享python基于Seaborn庫(kù)的一系列繪圖操作,感興趣的可以了解一下2022-04-04
Python數(shù)據(jù)清洗之利用pandas篩選數(shù)據(jù)詳解
這篇文章主要介紹了Python數(shù)據(jù)清洗之利用pandas篩選數(shù)據(jù)詳解,Pandas是一個(gè)用于數(shù)據(jù)分析和處理的Python庫(kù),它提供了高效的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工具,使得數(shù)據(jù)的清洗、轉(zhuǎn)換、分析和可視化變得更加容易和靈活,需要的朋友可以參考下2023-08-08
python中random.randint和random.randrange的區(qū)別詳解
這篇文章主要介紹了python中random.randint和random.randrange的區(qū)別詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
python數(shù)據(jù)分析必會(huì)的Pandas技巧匯總
用Python做數(shù)據(jù)分析光是掌握numpy和matplotlib可不夠,numpy雖然能夠幫我們處理處理數(shù)值型數(shù)據(jù),但很多時(shí)候,還有字符串,還有時(shí)間序列等,比如:我們通過(guò)爬蟲(chóng)獲取到了存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù),一些Pandas必會(huì)的用法,讓你的數(shù)據(jù)分析水平更上一層樓2021-08-08
Python學(xué)習(xí)筆記之json模塊和pickle模塊
json和pickle模塊是將數(shù)據(jù)進(jìn)行序列化處理,并進(jìn)行網(wǎng)絡(luò)傳輸或存入硬盤(pán),下面這篇文章主要給大家介紹了關(guān)于Python學(xué)習(xí)筆記之json模塊和pickle模塊的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
解決Opencv+Python cv2.imshow閃退問(wèn)題
這篇文章主要介紹了解決Opencv+Python cv2.imshow閃退問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04

