1. 程式人生 > 實用技巧 >訂單生成回撥介面

訂單生成回撥介面

  1. 支付回撥頁支付資訊
  • vue需要把支付憑證傳遞給django,django把訂單狀態改為已支付,並在UserCourse表中儲存使用者購買課程資訊
mounted() {
    this.query = this.$route.query
    payment_post(this.query).then((resp) => {
        // ({"code": 999, "msg": "非法請求"})
        this.msg = resp.msg
    })
},

2.goods/views 中寫檢視函式

class PaymentApi(APIView):

    def post(self, request):
        data = request.data
        # 獲取訂單物件
        order_obj = Orders.objects.get(order_id=data.get('out_trade_no'))
        # 需要儲存支付寶訂單資訊,支付時間,支付狀態
        order_obj.trade_no = data.get('trade_no')
        order_obj.pay_time = data.get('timestamp')
        order_obj.status = 2
        order_obj.save()
        # 獲取使用者購買的課程物件和當前使用者
        course_obj = Course.objects.get(pk=order_obj.goods.course_id)
        user = UserCourse(user=request.user, course=course_obj)
        user.save()
        return Response({"code": 200, "msg": "OK"})

3.goods/urls 中註冊路由

urlpatterns = [
    path('payment/', views.PaymentApi.as_view())         # /goods/payment/
]