支付宝支付示例功能实现
本文档旨在帮助开发人员了解如何通过编写Python代码实现支付宝支付功能。
为了方便小伙伴们理解,我们不在原始项目中演示,而是我们单独新建一个项目,名为“zhifubao”,只实现支付功能。整体目录如下:

安装AliPay SDK
首先,我们需要安装AliPay SDK。可以通过以下步骤完成安装:
- 在命令行中激活虚拟环境。
- 运行以下命令来安装django:
pip install django。 - 运行以下命令来安装AliPay SDK:
pip install alipay-sdk-python。
安装完成后,我们可以开始编写Python代码来实现支付宝支付功能。
配置支付宝参数
在开始编写代码之前,我们需要配置支付宝参数。以下是一些常见的支付宝参数:
- AppID:支付宝给每个应用分配的唯一的ID。
- 私钥:用于生成签名和验证签名的密钥。
- 公钥:用于验证返回数据的签名。
我们可以将这些参数放在一个独立的配置文件中,如settings.py。在配置文件中,我们可以定义一个config字典,包含所有的支付宝参数。
# settings.py
# 支付宝相关配置
ALIPAY_SERVER_URL = 'https://openapi-sandbox.dl.alipaydev.com/gateway.do'
ALIPAY_APP_ID = '应用APPID'
ALIPAY_APP_PRIVATE_KEY = '应用私钥'
ALIPAY_PUBLIC_KEY = 'Alipay公钥'
实现支付功能
现在,我们可以开始编写Python代码来实现支付宝支付功能。在项目目录下,新建一个zhifubao.py文件,代码如下:
from datetime import datetime
import logging
from alipay.aop.api.AlipayClientConfig import AlipayClientConfig
from alipay.aop.api.DefaultAlipayClient import DefaultAlipayClient
from alipay.aop.api.domain.AlipayTradePagePayModel import AlipayTradePagePayModel
from alipay.aop.api.request.AlipayTradePagePayRequest import AlipayTradePagePayRequest
import settings
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s %(levelname)s %(message)s',
filemode='a',)
logger = logging.getLogger('')
if __name__ == '__main__':
"""
设置配置,包括支付宝网关地址、app_id、应用私钥、支付宝公钥等,其他配置值可以查看AlipayClientConfig的定义。
"""
alipay_client_config = AlipayClientConfig()
alipay_client_config.server_url = settings.ALIPAY_SERVER_URL
alipay_client_config.app_id = settings.ALIPAY_APP_ID
alipay_client_config.app_private_key = settings.ALIPAY_APP_PRIVATE_KEY
alipay_client_config.alipay_public_key = settings.ALIPAY_PUBLIC_KEY
"""
得到客户端对象。
注意,一个alipay_client_config对象对应一个DefaultAlipayClient,定义DefaultAlipayClient对象后,alipay_client_config不得修改,如果想使用不同的配置,请定义不同的DefaultAlipayClient。
logger参数用于打印日志,不传则不打印,建议传递。
"""
client = DefaultAlipayClient(alipay_client_config=alipay_client_config, logger=logger)
"""
页面接口示例:alipay.trade.page.pay
"""
# 对照接口文档,构造请求对象
formatted_time = datetime.now().strftime("pay%Y%m%d%H%M%S%f")
model = AlipayTradePagePayModel()
model.out_trade_no = "pay"+formatted_time
model.total_amount = 50
model.subject = "测试"
model.body = "支付宝测试"
model.product_code = "FAST_INSTANT_TRADE_PAY"
request = AlipayTradePagePayRequest(biz_model=model)
# 得到构造的请求,如果http_method是GET,则是一个带完成请求参数的url,如果http_method是POST,则是一段HTML表单片段
response = client.page_execute(request, http_method="GET")
print("alipay.trade.page.pay response:" + response)
在上述代码中,我们首先导入AliPay类和配置文件中的支付宝参数。然后,我们创建一个AliPay实例,并传入配置参数。紧接着,我们定义了一个pay函数,用于发起支付请求。在pay函数中,我们构造了请求参数,并调用了api_alipay_trade_page_pay接口发起支付请求。
请注意,在使用支付宝支付功能之前,请确保您已经了解并遵守支付宝的相关规定和条款,以确保合法合规使用。


用户名、密码和支付密码可以查看沙箱账号信息。如下图。

支付成功后效果如下所示。

手机支付
除了账号和密码支付,还可以使用沙箱工具用手机扫码支付。
只有安卓版本。
打开沙箱页面,

单击扫码下载,如下图。

下载到手机后如下图所示。


账号填写沙箱账号和密码,登录成功后,点击扫一扫, 如下图所示。

再次运行程序,生成新的支付页面,然后使用扫码支付。




【大熊课堂精品课程】
Python零基础入门动画课: https://www.bilibili.com/cheese/play/ss7988
Django+Vue:全栈开发: https://www.bilibili.com/cheese/play/ss8134
PyQT6开发桌面软件: https://www.bilibili.com/cheese/play/ss12314
Python办公自动化: https://www.bilibili.com/cheese/play/ss14990
Cursor AI编程+MCP:零基础实战项目课: https://www.bilibili.com/cheese/play/ss105194189
Pandas数据分析实战: https://www.bilibili.com/cheese/play/ss734522035
AI大模型+Python小白应用实战: https://www.bilibili.com/cheese/play/ss3844