Несколько предметов в Django-PayPal - PullRequest
0 голосов
/ 25 октября 2010

Я использую dcramer-версию django-paypal (но я думаю, что не имеет значения, является ли она dcramer или johnboxall).

1) Как я могу указать несколько элементов в моем paypal_dict (для использования в PayPalPaymentsForm)? 2) Кроме того, мне нужно соответствующим образом указать стоимость доставки и отдельные количества в Сводке, которая появляется на экране Paypal - как мне это сделать?

Ответы [ 3 ]

1 голос
/ 04 ноября 2013

Мне не нравится django-paypal. Просто прочитайте API PayPal: https://www.paypal.com/cgi-bin/webscr?cmd=p/pdn/howto_checkout-outside.

Чтобы отправить все товары из вашей корзины в PayPal:

<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
        <input type="hidden" name="cmd" value="_cart">
        <input type="hidden" name="upload" value="1">
        <input type="hidden" name="business" value="you@youremail.com">
        <input type="hidden" name="currency_code" value="EUR">

        <!-- Run a for loop -->
        {% for item in cart %}
        <input type="hidden" name="item_name_1" value="Item Name 1">
        <input type="hidden" name="amount_1" value="10.00">
        <input type="hidden" name="item_name_2" value="Item Name 2">
        <input type="hidden" name="amount_2" value="20.00">
        .
        .
        .
        <input type="hidden" name="item_name_N" value="Item Name N">
        <input type="hidden" name="amount_N" value="30.00">
        {% endfor %}

        <input type="image" src="http://www.paypal.com/en_US/i/btn/x-click-but01.gif" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
</form>
0 голосов
/ 01 декабря 2018

Если вы хотите, чтобы PayPal работал с вашей корзиной. Используйте цикл for для товаров в корзине. Чтобы получить номер для каждого элемента, чтобы PayPal узнал их, я использую item.id

{% extends 'base.html' %}
{% block content %}

<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="upload" value="1">
<input type="hidden" name="business" value="account@mail.com">
<input type="hidden" name="currency_code" value="USD">
{% for item in cart %}

<input type="hidden" name="item_name_{{item.id}}" value="  
{{item.name}}">
<input type="hidden" name="amount_{{item.id}}" value="{{item.price}}">
{% endfor %}

<input type="image" src="http://www.paypal.com/en_US/i/btn/x-click-but01.gif" 
name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
</form>


{% endblock %}
0 голосов
/ 16 января 2011

В итоге я получаю словари предметов, как это, в представлении:

item = {
    'cancelurl':     'http://%s%s' % DYNAMIC_URL, reverse('pay_cancel')), # Express checkout cancel url
    'returnurl':     'http://%s%s' % (DYNAMIC_URL, reverse('pay_now')), # Express checkout return url

    'l_name0':       'Your product name',
    'l_number0':     1234,
    'l_desc0':       'longer description',
    'l_amt0':        100.00,
    'l_qty0':        1,

    'l_name1':       'Your product name',
    'l_number1':     1234,
    'l_desc1':       'longer description',
    'l_amt1':        200.00
    'l_qty1':        2,

    'itemamt':       500.00,
    'taxamt':        0.00,
    'shippingamt':   0.00,
    'handlingamt':   0.00,
    'shipdiscamt':   0.00,
    'insuranceamt':  0.00,
    'amt':           500.00, # Amount to charge for basket
}

Этот дикт затем складывается так:

kw = {
    'item': item,
    'payment_template': 'cms/register.html', # Template name for payment
    'confirm_template': 'cms/paypal-confirmation.html', # Template name for confirmation
    'success_url':      reverse('pay_success'), # Ultimate return URL
}

ppp = PayPalPro(**kw)
return ppp(request)

Это то, что вы имеете ввиду?*

...