Python全系列 教程
3567个小节阅读:5929.5k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
修改order_app/alipay_tool.py
文件,设置支付宝通知地址
xxxxxxxxxx
511import logging
2from alipay.aop.api.AlipayClientConfig import AlipayClientConfig
3from alipay.aop.api.DefaultAlipayClient import DefaultAlipayClient
4from alipay.aop.api.domain.AlipayTradeCreateModel import AlipayTradeCreateModel
5# from alipay.aop.api.request.AlipayTradeCreateRequest import AlipayTradeCreateRequest
6from alipay.aop.api.request.AlipayTradePrecreateRequest import AlipayTradePrecreateRequest
7from alipay.aop.api.response.AlipayTradeCreateResponse import AlipayTradeCreateResponse
8
9logging.basicConfig(
10 level=logging.INFO,
11 format='%(asctime)s %(levelname)s %(message)s',
12 filemode='a',)
13logger = logging.getLogger('')
14
15def get_key(path:str):
16 '''
17 获取秘钥
18 '''
19 key = None
20 with open(path,'r') as f:
21 key = f.read()
22 return key
23
24# 实例化客户端
25alipay_client_config = AlipayClientConfig()
26alipay_client_config.server_url = 'https://openapi-sandbox.dl.alipaydev.com/gateway.do'
27alipay_client_config.app_id = '9021000123613559'
28alipay_client_config.app_private_key = get_key('./keys/app_private_key.pem')
29alipay_client_config.alipay_public_key = get_key('./keys/alipay_public_key.pem')
30client = DefaultAlipayClient(alipay_client_config, logger)
31
32def get_qr(order_id,info,money):
33 # 构造请求参数对象
34 model = AlipayTradeCreateModel()
35 model.out_trade_no = order_id
36 model.total_amount = money
37 model.subject = info
38 request = AlipayTradePrecreateRequest(biz_model=model)
39 # 设置通知回调地址
40 request.notify_url = 'http://feelinglw.natapp1.cc/api/pay_callback/'
41 # 执行API调用
42 response_content = False
43 try:
44 response_content = client.execute(request)
45 except Exception as e:
46 print(traceback.format_exc())
47 return response_content
48
49if __name__ == '__main__':
50 # print(get_key('./keys/app_private_key.pem'))
51 print(get_qr('20150320010101001','IPhone18',666))
修改order_app\views.py
,增加回调接口逻辑,修改订单状态
xxxxxxxxxx
231from rest_framework.views import APIView
2from rest_framework.response import Response
3
4from .models import Order
5
6class PayCallBack(APIView):
7 def post(self,request):
8 # 获取订单号
9 out_trade_no = request.POST.get('out_trade_no')
10 # 获取支付的时间
11 gmt_payment = request.POST.get('gmt_payment')
12 # 获取订单支付金额
13 total_amount = request.POST.get('total_amount')
14 # 获取订单信息
15 order = Order.objects.get(id = out_trade_no)
16 # 修改订单状态
17 order.order_type = 1
18 order.total_amount = total_amount
19 order.gmt_payment = gmt_payment
20 # 保存支付信息
21 order.save()
22 # 返回结果
23 return Response({'msg':'支付成功','code':200})
修改order_app\urls.py
模块,添加回调接口接口路由
xxxxxxxxxx
81from django.urls import path
2
3from . import views
4
5urlpatterns = [
6 path('user_pay_couser/',views.OrdersView.as_view()),
7 path('pay_callback/',views.PayCallBack.as_view()),
8]