python - 在 Django-Oscar 中通过 Paypal 处理付款

标签 python django paypal braintree django-oscar

我正在尝试使用 Django Oscar 建立一个基本的电子商务网站,但遇到了困难。大部分问题都与缺少如何连接有意义的支付方式(想想 Paypal、Stripe、Braintree)的示例以及我以前从未听说过的模糊支付方式的存在有关。

无论哪种方式,我都在尝试使用 django-oscar-paypal 并遵循其文档。 Paypal Express 部分似乎可以正常工作,因为按钮会出现,并且会发生类似于结帐和处理的事情。

但是,如果我选择以常规方式进行结帐(希望用卡付款),我将被带到以下页面(括号中的消息是我的)

enter image description here

这是以下模板的产物:

{% extends "checkout/checkout.html" %}
{% load i18n %}

{% block title %}
    {% trans "Payment details" %} | {{ block.super }}
{% endblock %}

{% block checkout_nav %}
    {% include 'checkout/nav.html' with step=3 %}
{% endblock %}

{% block checkout_title %}{% trans "Enter payment details" %}{% endblock %}

{% block order_contents %}{% endblock %}
{% block shipping_address %}{% endblock %}
{% block shipping_method %}{% endblock %}
{% block payment_method %}{% endblock %}

{% block payment_details %}
    {% block payment_details_content %}
        <p>{% trans "(*** Message from ./templates/tshirt-theme/ ***) This page needs implementing within your project.  You may want to use one of Oscar's payment gateway libraries:" %}</p>
        <ul>
            <li><a href="https://github.com/django-oscar/django-oscar-paypal">django-oscar-paypal</a></li>
            <li><a href="https://github.com/django-oscar/django-oscar-datacash">django-oscar-datacash</a></li>
            <li><a href="https://github.com/django-oscar/django-oscar-gocardless">django-oscar-gocardless</a></li>
            <li><a href="https://github.com/django-oscar/django-oscar-paymentexpress">django-oscar-paymentexpress</a></li>
            <li><a href="https://github.com/django-oscar/django-oscar-accounts">django-oscar-accounts</a></li>
        </ul>
        <a id="view_preview" href="{% url 'checkout:preview' %}" class="btn btn-primary btn-lg">{% trans "Continue" %}</a>
    {% endblock payment_details_content %}
{% endblock payment_details %}

当我点击“继续”时,我被带到了一个类似于预购页面的页面,其中的付款方式是空的。当我点击它的“更改”时,它会将我带回到屏幕截图上的页面。

我的问题是如何让信用卡与此设置一起使用?有没有更好的方法来完成这件事?我对 Django 有点熟悉,但这个看似简单的任务似乎需要大量的知识和/或大量的重新发明轮子。后者肯定是这种情况,因为没有关于这些的任何文档或教程,但据称许多网站都使用 Django-Oscar。

如有任何帮助或建议,我们将不胜感激。

最佳答案

从 django-paypal 仓库查看 sandbox代码,特别是 templates 文件夹、settings.pyurls.py。我按照说明将必要的 Paypal key 添加到 settings.py 以及 urls.py 但未能复制模板,因为没有仔细记录。

对我来说,只需添加至少与沙盒相同的模板,就可以将您正在查看的屏幕替换为可用的 paypal 按钮。特别是,sandbox/templates/checkout/payment_details.html 似乎是代替您看到的提醒消息呈现的内容 — 请注意,该模板同时具有 Express 和 Flow 选项,因此仅使用您的网站设置为使用什么。

关于python - 在 Django-Oscar 中通过 Paypal 处理付款,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50576247/

相关文章:

python - pylab 找不到其模块的引用

jquery - Django 框架中的 Ajax Post?

python - Django Rest 框架 : Register multiple serializers in ViewSet

php - Paypal 请求不断收到 MALFORMED_REQUEST

html - 根据用户输入重定向到页面

python - 比较表单字段值和查询集值的值

python - 获取作为 *args 和 **kwargs 传递的值的名称

python - 从python中的对象列表中删除对象

python - Django 对象不可 JSON 序列化

php - 自定义价目表的 Paypal 动态下拉菜单