1.创建Django项目
首先,在命令行中使用以下命令创建一个新的Django项目:
django-admin startproject project_name
2.安装Python SDK
然后,下载并安装支付宝Python SDK。可以使用pip命令进行安装:
pip install alipay-sdk-python
3.配置支付宝参数
配置支付宝参数
在settings.py文件中,添加支付宝参数配置:
ALIPAY_APPID = 'your_appid'
ALIPAY_PUBLIC_KEY = 'your_public_key'
ALIPAY_PRIVATE_KEY = 'your_private_key'
ALIPAY_GATEWAY = 'https://openapi.alipay.com/gateway.do'
其中,your_appid、your_public_key和your_private_key是你的支付宝账号信息。
4.编写支付接口
在views.py文件中,添加支付接口代码:
from django.http import HttpResponse
from alipay import AliPay
from django.conf import settings
def alipay(request):
alipay = AliPay(
appid=settings.ALIPAY_APPID,
app_notify_url='http://localhost:8000/notify/',
app_private_key_path=settings.ALIPAY_PRIVATE_KEY,
alipay_public_key_path=settings.ALIPAY_PUBLIC_KEY,
sign_type='RSA2',
debug=True
)
order_string = alipay.api_alipay_trade_page_pay(
out_trade_no='201806261254201',
total_amount='0.01',
subject='测试订单',
return_url='http://localhost:8000/return/'
)
return HttpResponse(order_string)
其中,alipay函数是一个视图函数,它接收一个request参数,并返回一个HttpResponse对象。在函数中,首先创建AliPay对象,并设置相关参数,包括appid、app_notify_url、app_private_key_path、alipay_public_key_path、sign_type和debug。然后,调用api_alipay_trade_page_pay方法生成订单字符串,最后返回该字符串。
5.编写回调接口
在views.py文件中,添加支付宝回调接口代码:
from django.http import HttpResponse
from alipay import AliPay
from django.conf import settings
def notify(request):
data = request.POST.dict()
signature = data.pop('sign')
alipay = AliPay(
appid=settings.ALIPAY_APPID,
app_notify_url='http://localhost:8000/notify/',
app_private_key_path=settings.ALIPAY_PRIVATE_KEY,
alipay_public_key_path=settings.ALIPAY_PUBLIC_KEY,
sign_type='RSA2',
debug=True
)
success = alipay.verify(data, signature)
if success and data["trade_status"] in ("TRADE_SUCCESS", "TRADE_FINISHED"):
# 处理订单信息
return HttpResponse('success')
else:
return HttpResponse('fail')
其中,notify函数是一个回调函数,它接收一个request参数,并返回一个HttpResponse对象。首先从函数中获取POST请求的数据,并将签名数据从POST请求中剔除,然后创建AliPay对象,并调用verify方法对数据进行验证。如果验证成功并且交易状态为TRADE_SUCCESS或TRADE_FINISHED,则处理订单信息并返回'success',否则返回'fail'。
6.编写返回接口
在views.py文件中,添加支付宝返回接口代码:
from django.http import HttpResponse
from alipay import AliPay
from django.conf import settings
def alipay_return(request):
data = request.GET.dict()
signature = data.pop('sign')
alipay = AliPay(
appid=settings.ALIPAY_APPID,
app_notify_url='http://localhost:8000/notify/',
app_private_key_path=settings.ALIPAY_PRIVATE_KEY,
alipay_public_key_path=settings.ALIPAY_PUBLIC_KEY,
sign_type='RSA2',
debug=True
)
success = alipay.verify(data, signature)
if success and data["trade_status"] in ("TRADE_SUCCESS", "TRADE_FINISHED"):
# 处理订单信息
return HttpResponse('支付成功')
else:
return HttpResponse('支付失败')
其中,alipay_return函数是一个返回函数,它接收一个request参数,并返回一个HttpResponse对象。在函数中,首先获取GET请求的数据,并将签名数据从GET请求中剔除,然后创建AliPay对象,并调用verify方法对数据进行验证。如果验证成功并且交易状态为TRADE_SUCCESS或TRADE_FINISHED,则处理订单信息并返回'支付成功',否则返回'支付失败'。
7.配置URL
在urls.py文件中,添加URL配置:
from django.urls import path
from . import views
urlpatterns = [
path('alipay/', views.alipay),
path('notify/', views.notify),
path('return/', views.alipay_return),
]
第一个URL配置是支付接口URL,第二个URL配置是支付宝回调接口URL,第三个URL配置是支付宝返回接口URL。
标签:alipay,支付宝,return,settings,ALIPAY,接口,django,key,path From: https://www.cnblogs.com/szj666/p/17280073.html