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

我正在尝试使用Django Oscar建立一个基本的电子商务网站,我遇到了困难.问题的大部分与缺乏如何连接有意义的(想想Paypal,Stripe,Braintree)支付方法和存在我以前从未听过的模糊不清的方法有关.

无论哪种方式,我试图使用django-oscar-paypal并遵循其文档. Paypal Express部分似乎可以工作,按钮显示出来,类似于检查和处理.

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

《python – 在Django-Oscar通过Paypal处理付款》

这是以下模板的产品:

{% 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 repo查看
sandbox代码,特别是templates文件夹,settings.py和urls.py.我按照说明添加了必要的paypal密钥到settings.py以及urls.py,但未能复制模板,因为记录不太谨慎.

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

点赞