本文主要根據Hack易支付寫的,其他易支付差不多 自行修改網址
參數說明http://www.hackwl.cn/jkwd/#pay0
import hashlib
import requests
# 發起支付請求
def pay(money, name, notify_url, out_trade_no, payType, pid, return_url, webName, key):
# money = '' # 金額
# name = '' # 商品名稱
# notify_url = '' # 服務器異步通知地址
# out_trade_no = '' # 商戶訂單號
# pid = '' # 商戶ID
# return_url = '' # 頁面跳轉通知地址
# webName = '' # 網站名稱
# payType = '' # 支付方式:alipay:支付寶,wxpay:微信支付,qqpay:QQ錢包,tenpay:財付通,
# key = '' # 密鑰,易支付註冊會提供pid和祕鑰
# 對參數進行排序,生成待簽名字符串--(具體看支付寶)
sg = 'money=' + money + '&name=' + name + '¬ify_url=' + notify_url +'&out_trade_no=' + out_trade_no + '&pid=' + pid + '&return_url=' + return_url + '&sitename=' + webName + '&type=' + payType
# MD5加密--進行簽名
sign = hashlib.md5((sg+key).encode(encoding='UTF-8')).hexdigest() # 簽名計算
# 最後要將參數返回給前端,前端訪問url發起支付
url = 'http://pay.hackwl.cn/submit.php?' + sg + '&sign=' + sign + '&sign_type=MD5'
res = requests.post(url).content.decode()
return res
# 查詢商戶信息與結算規則
def act(pid, key):
url = 'http://pay.hackwl.cn/api.php?act=query&pid=' + pid + '&key=' + key
res = requests.get(url).content.decode()
return res
# 修改結算賬號
def change(pid, key, account, username):
url = 'http://pay.hackwl.cn/api.php?act=change&pid=' + pid + '&key=' + key + '&account=' + account + '&username=' + username
res = requests.get(url).content.decode()
return res
# 查詢結算記錄
def settle(pid, key):
url = 'http://pay.hackwl.cn/api.php?act=settle&pid=' + pid + '&key=' + key
res = requests.get(url).content.decode()
return res
# 查詢單個訂單
def order(pid, key, out_trade_no):
url = 'http://pay.hackwl.cn/api.php?act=order&pid='+pid+'&key='+key+'&out_trade_no='+out_trade_no
res = requests.get(url).content.decode()
return res
# 批量查詢訂單
def orders(pid, key, limit):
url = 'http://pay.hackwl.cn/api.php?act=orders&pid=' + pid + '&key=' + key
res = requests.get(url).content.decode()
return res
if __name__ == '__main__':
money = '0.01' # 金額
name = '' # 商品名稱
notify_url = '' # 服務器異步通知地址
out_trade_no = '' # 商戶訂單號
payType = '' # 支付方式:alipay:支付寶,wxpay:微信支付,qqpay:QQ錢包,tenpay:財付通
pid = '' # 商戶ID
return_url = '' # 頁面跳轉通知地址
webName = '' # 網站名稱
key = ''
# res = pay(money, name, notify_url, out_trade_no, payType, pid, return_url, webName, key)
# print(res)
# act(pid, key)
# print(settle(pid, key))
# print(order(pid, key, out_trade_no))
# limit = '50'
# print(orders(pid, key, limit))
參考:
https://blog.csdn.net/chunzi8487/article/details/100680638