淘先锋技术网

首页 1 2 3 4 5 6 7

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 支付宝收款可以实现自动化的收款,提高工作效率。希望本文对大家有所帮助。