【问题标题】:django-oscar 3.0 with paypal paymentdjango-oscar 3.0 与贝宝付款
【发布时间】:2021-08-11 19:12:16
【问题描述】:

我对 Django 和 Djnago-oscar 还很陌生,到目前为止,我已经设置了 django-oscar 商店,我正在尝试与 paypal 集成,但因为我正在运行 django.oscar 3.x 'django-oscar-paypal ' 对我不起作用,并且没有足够的文档说明如何实施付款。

我的结帐流程:

  1. 将商品添加到购物车
  2. 用户输入详细信息,包括运费等
  3. 选择付款方式,查看重定向到 Paypal 以补充付款
  4. 重定向回网站并确认订单

paymentMethodeView 我创建了一个表单来获取付款方式,在paymentDetailsView 我有handle_payment

def handle_payment(self, order_number, order_total, **kwargs):
        method = self.checkout_session.payment_method()
        if method == 'pt': #payment terms admin manually invoice
            return self.handle_pt_payment(order_number, order_total, **kwargs)
        elif method == 'paypal_payment':
            return self.handle_paypal_payment(order_number, order_total, **kwargs)
        else:
            raise PaymentError(_('Bad payment method in handle_payment!'))

handle_paypal_payment 函数中,我不确定如何继续。

任何帮助将不胜感激

【问题讨论】:

    标签: django paypal checkout django-oscar


    【解决方案1】:

    从您的网站重定向是一种处理付款的旧方法。不要这样做;应该没有重定向。

    相反,在您的服务器上创建两条路由,一条用于“创建订单”,一条用于“捕获订单”,documented here;您可以使用 Checkout-Python-SDK。这些路由应该只返回 JSON 数据(没有 HTML 或文本)。捕获者应该(成功时)在返回之前将付款详细信息存储在您的数据库中(特别是purchase_units[0].payments.captures[0].id,PayPal 交易 ID)

    将这两条路由与以下不涉及重定向的审批流程配对:https://developer.paypal.com/demo/checkout/#/pattern/server

    如果在该代码的成功部分,您希望在处理完交易后重定向到您网站上的其他位置(例如感谢和确认页面),请使用 JavaScript。

    【讨论】:

      猜你喜欢
      • 2011-07-25
      • 2013-12-12
      • 2016-06-17
      • 2012-07-20
      • 2016-05-27
      • 2013-09-21
      • 2010-12-22
      • 2012-11-03
      • 2013-04-11
      相关资源
      最近更新 更多