我正在尝试使用Django Oscar建立一个基本的电子商务站点,并且遇到了困难。问题的大部分与缺乏如何使用有意义的付款方式(例如Paypal,Stripe,Braintree) Hook 以及我从未听说过的晦涩难懂的付款方式有关。

无论哪种方式,我都尝试使用django-oscar-paypal并遵循其文档。 Paypal Express部分似乎可以正常工作,因为该按钮会显示出来,并且类似于要 checkout 和处理的内容。

但是,如果我选择定期进行结帐(希望用卡付款),则会转到下一页(括号中的信息是我的)

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

这是以下模板的产品:

{% 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代码,尤其是模板文件夹settings.py和urls.py。我按照说明进行操作,并在settings.py和urls.py中添加了必要的 Paypal key ,但是由于没有那么仔细地记录下来,因此无法复制模板。

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

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

10-16 18:49