Python 支付宝收款
现在支付宝每天收到的收款量越来越大,越来越多的商家和个人开始使用支付宝进行交易。使用 Python 可以快速实现收款自动化,并大大提高效率。
在进行 Python 支付宝收款之前,需要先注册开发者账号,并创建一个应用,获取 app_id 和 app_private_key 和 app_public_key。
import base64 from Crypto.PublicKey import RSA from Crypto.Signature import PKCS1_v1_5 from Crypto.Hash import SHA256 import requests from urllib.parse import quote_plus private_key = open('app_private_key.pem').read() public_key = open('app_public_key.pem').read() # 进行签名 def sign_data(data): # 加载私钥 key = RSA.importKey(private_key) # 利用 SHA256 进行签名,并进行 Base64 编码 signer = PKCS1_v1_5.new(key) signature = signer.sign(SHA256.new(data.encode('utf-8'))) return quote_plus(base64.b64encode(signature)) # 带签名的请求 def sign_request(url, params): query_str = '&'.join([k + '=' + quote_plus(v) for k, v in params.items()]) sign = sign_data(query_str) query_str += '&sign=' + sign + '&sign_type=RSA2' return url + '?' + query_str # 收款接口 def transfer_money(app_id, out_trade_no, payee_account, amount, subject, body): url = 'https://openapi.alipay.com/gateway.do' method = 'alipay.fund.trans.toaccount.transfer' biz_content = { 'out_biz_no': out_trade_no, 'payee_type': 'ALIPAY_LOGONID', 'payee_account': payee_account, 'amount': amount, 'payer_show_name': 'XXX公司', 'payee_real_name': '支付宝账户名称', 'remark': body } params = { 'app_id': app_id, 'method': method, 'format': 'json', 'charset': 'utf-8', 'timestamp': '2019-03-18 18:00:00', 'version': '1.0', 'biz_content': str(biz_content) } # 请求带签名 url = sign_request(url, params) # 发送请求 r = requests.get(url) # 返回结果 return r.json()
上面的代码中包含了进行签名的方法和带签名的请求方法。使用 transfer_money 方法可以实现收款。
使用方法:
# 收款 result = transfer_money(app_id, out_trade_no, payee_account, amount, subject, body) print(result)
其中:
- app_id:应用id
- out_trade_no:商户订单号
- payee_account:收款账户
- amount:收款金额
- subject:订单标题
- body:订单描述
使用 Python 支付宝收款可以实现自动化的收款,提高工作效率。希望本文对大家有所帮助。