zoukankan      html  css  js  c++  java
  • 6.订单支付回调接口

    1.订单支付回调接口

    1.1 goods/urls.py中添加路由

    urlpatterns = [
        path('peyment/', views.PayMentView.as_view()),  # /goods/peyment/
    ]
    1.2 goods/views.py中写视图函数
    from user.models import Vip
    import datetime
    from course.models import UserCourse
    class PayMentView(APIView):
        permission_classes = (AllowAny,)
    ​
        def post(self, request):
            # 1. 获取了支付宝返回的数据
            data = request.data
            # 2.修改订单信息为已支付状态
            sign = data.pop('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": "购买成功"})
     
    http://127.0.0.1:8888/payment/callback/?
    charset=utf-8&
    out_trade_no=SYL2020110906171516885&
    method=alipay.trade.page.pay.return&
    total_amount=44.00&
    sign=TzUZHR7Txk%2FjA9b%2BP5qASqoYpUB2QcZPYleTdFJu%2FBMlZvmh%2FwGg6sSHE02S2unNeYH77I8ojnqfatty47crle9ApjiuRNc8Gcr8vadvQbN693tu1stS1ouuw3UuqNYB4adJWCIPTNSFq%2Fq%2B3wO0Mq0G4aULjTNT2OcZNeQP2PgCUGGRdmeBnsVylvjxsIdGeJVA8JEK3ZYHdGCfBDuXiqE5CAKiVWy%2FLyWXPde6QpsO9vUkmyV3L5iByUbL3%2B11Yoz7PNzaYpVT0wxwfX9bYcVYjE4frbSLgLoEccNcKRC3Pro%2BhgAjP7TJGBe1MdrEMZ17pReC2GVhfYUrf7XT3A%3D%3D&
    trade_no=2020110922001428980501074538&
    auth_app_id=2016101800716047&version=1.0&
    app_id=2016101800716047&
    sign_type=RSA2&
    seller_id=2088102180143385&
    timestamp=2020-11-09%2014%3A17%3A39
     
  • 相关阅读:
    8种元素定位方式
    接口MD5加密如何测试?
    web自动化测试框架 —数据驱动测试
    等待方式
    全面开展测试需求分析
    字符串格式化(%方式 与 format方式)
    Python中八大基本数据类型之 集合
    Python中 __new__ 和 __init__ 的区别
    C/S模式与B/S模式的工作原理
    剑指offer--把二叉树打印成多行
  • 原文地址:https://www.cnblogs.com/gaodenghan/p/13957943.html
Copyright © 2011-2022 走看看