04.订单支付回调-修改订单状态

1.订单支付回调#

1.1 goods/urls.py中注册路由#

urlpatterns = [ 
     path('peyment/', views.PayMentView.as_view()),  # /goods/getpayurl/ 订单支付回调
]

1.2 goods/views.py 中写视图函数#

from decimal import Decimal
from course.models import *
from rest_framework.views import APIView  # 业务使用APIVIW
from rest_framework.permissions import AllowAny, IsAuthenticated
from rest_framework.response import Response

class PayMentView(APIView):
    permission_classes = (AllowAny,)  # 用户权限

    def post(self, request):
        # 1.获取了支付宝返回的数据
        data = request.data
        # 2.
        sign = data.pop('sign')
        print('sign', sign)
        '''
        "sign":"Sv......kEoobbA==",
        '''
        order = Orders.objects.get(order_id=data['out_trade_no'])
        order.trade_no = data['trade_no']
        order.pay_time = data['timestamp']
        order.status = 2
        order.save()  # 保存
        # 3.处理用户购买的课程流程
        # 3.1给UserCourse 表增加购买课程
        # goods=order.goods
        user = order.user
        course = order.goods.course
        UserCourse.objects.create(user=user, course=course)
        return Response({"code": 0, "msg": "购买成功"})
posted @   就学45分钟  阅读(545)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示
主题色彩