支付宝异步验签
我们已经成功的调用了支付宝的支付接口,并实现了支付功能,但是,支付成功后,我们需要将支付宝页面跳转到我们自己的网站,并记录用户的支付信息。也就是要实现时序流程图中的步骤6和7。
以下是支付宝支付流程的时序图:

确认支付
在支付宝的交易流程中,确认支付完成后,支付宝会调用一个GET请求,向return URL发送请求信息。我们需要配置一个return URL地址,用于接收支付宝的返回信息。
首先,在Django settings.py配置文件中,配置支付宝下新增一个参数ALIPAY_RETURN_URL:
# 配置支付宝
...
# returnURL
ALIPAY_RETURN_URL = 'https://your-domain.com/orders/'
# NotifyURL
ALIPAY_NOTIFY_URL = 'https://your-domain.com/api/callback/'
将https://your-domain.com替换成你自己的网址。可以使用上一节介绍的内外穿透工具生成的外网ip。 确保可以正常访问。
接下来配置支付宝的沙箱环境。在沙箱应用中,找到授权回调地址,如下图所示。

点击“修改”,填写回调地址,如下图。

配置URL
接下来,在后端URL配置中添加2个路由, 代码如下:
from django.urls import path
router.register(r'orders', trade_views.OrderViewSet)
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include(router.urls)),
path('api/', include('djoser.urls')),
path('api/', include('djoser.urls.jwt')),
path('api/alipay/', trade_views.AlipayAPIView.as_view()),
path('api/callback/', trade_views.AlipayCallbackAPIView.as_view()),
]
其中,orders是在trade模块下,当支付成功后,跳转到这个网址。api/callback是授权的回调地址,用于异步验签的网址。
接下来,在trade/veiws.py文件中新建AlipayCallbackAPIView视图,代码如下:
class AlipayCallbackAPIView(APIView):
def post(self, request):
params = request.POST.dict()
print(params)
return Response('success')
测试回调
再次购买会员卡,填写沙箱账号和密码进行支付,支付成功后,在终端查接收到的支付宝异步验签参数,如下图所示。
为了更清晰地查看这些参数,我们可以使用在线json工具 bejson.com
格式化后的效果如下图示。

小结
本文介绍了支付宝的异步通知功能,包括确认支付和异步通知的配置步骤,小伙伴们我们下节再见。
【大熊课堂精品课程】
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