2016-06-17 5 views
1

У меня есть корзина, оказанная методом просмотра A, я хочу получить детали в корзине для отправки в pesapal api через pesapal package. Я использую тот же метод, что и sandbox app, PaymentView. В корзине покупок есть кнопка проверки, которая предназначена для отправки данных в api. Метод Sandbox simlpy получает данные в виде словаря (order_info) и подает на url (get_payment_url), который затем передает api, поэтому, когда я открываю шаблон, iframe api определяет, что я использую amout, указанный в словаре. Как я могу отправить данные через корзину?Интеграция с платежами Django

## Sandbox method submitting data to the api 
class PaymentView(TemplateView, PaymentRequestMixin): 
    template_name = 'payment/payment.html' 
    # how the sandbox app submits data to api: 

    def get_context_data(self, **kwargs): 
     ctx = super(PaymentView, self).get_context_data(**kwargs) 

     order_info = { 
     'amount': '1000', 
     'description': 'Payment for Stuff', 
     'reference': 2, 
     'email': '[email protected]' 
    } 

    ctx['pesapal_url'] = self.get_payment_url(**order_info) 
    return ctx 

## view method A: 
def show_cart(request, template_name="payment/cart.html"): 
    if request.method == 'POST': 
     postdata = request.POST.copy() 
     if postdata['submit'] == 'Remove': 
      cart.remove_from_cart(request) 
     if postdata['submit'] == 'Update': 
      cart.update_cart(request) 
     if postdata['submit'] == 'Checkout': 
      # submission to api should occur here 
    cart_items = cart.get_cart_items(request) 
    cart_subtotal = cart.cart_subtotal(request) 
    return render_to_response(template_name, locals(), context_instance=RequestContext(request)) 

# my url 
urlpatterns = patterns('cart.views', 
(r'^$', 'show_cart', { 'template_name': 'payment/cart.html' }, 'show_cart'), 
) 

ответ

0

Глядя на документацию и source code, как представляется, не быть способ, чтобы установить какие-либо данные. У вас есть пример, где это делается?

+0

На самом деле есть, Вы имеете в виду набор данных, который нужно отправить api? @Martin проверяет метод «generate_payload», который генерирует полезную нагрузку xml в качестве словаря [здесь] (https://github.com/odero/django-pesapal/blob/master/django_pesapal/views.py) –

+0

Данные в моем приложение доступно только после отправки формы, поэтому я создал новый метод update_view, который позволяет пользователю редактировать свои параметры еще раз. В том же шаблоне есть вкладка платежей с тележкой, и поскольку это представление обновления, данные элемента предварительно заполнены, поэтому отправку проще @Martin Hallén –

1

вы бы быстро разобрались, разрешив django проанализировать ваши данные в шаблон или в этом случае вашу корзину. Это можно сделать, разрешив вашему методу вернуть нужные данные. Что-то вроде:

return render(request, 'yourpage.html', 
       {'yourvariable':yourvariable}, context_instance=RequestContext(request)) 

Тогда просто получить значение в шаблоне (корзины в вашем случае), как:

{{yourvariable}} 

Тогда пусть апи сделает все остальное.

+0

, но где бы я сделал вызов api и подал данные в корзину после Я возвращаю данные? –

+0

Привет, да, это полностью сработало! Я проанализировал данные с помощью нового метода update_view, который сделал отправку в api real smooth. Это то, что происходит. Я изменил метод show_cart таким образом, что он отображает на другой вкладке в том же шаблоне, что данные отправляются таким образом после отправки данных, пользователь направляется на вкладку корзины с предварительно заполненной таблицей и готов к представлению –

Смежные вопросы