Ich habe einen Warenkorb von View-Methode gerendert A, möchte ich die Details in den Warenkorb, um die Pesapal API, über eine pesapal package eingereicht werden. Ich benutze die gleiche Methode wie die sandbox app, PaymentView. Der Warenkorb hat eine Checkout-Taste, die die Daten an die API senden soll. Die Sandbox-Methode simlpy ruft die Daten als ein Wörterbuch (order_info) ab und leitet sie an eine URL (get_payment_url) weiter, die dann die API einspeist. Wenn ich die Vorlage öffne, bestimmt der iframe der API, dass ich die im Wörterbuch angegebene Menge ziehe. Wie kann ich Daten über den Warenkorb übermitteln?Django Zahlungen Integration
## 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'),
)
Eigentlich gibt es, beziehen Sie sich auf den Datensatz an api gesendet werden? @Martin check out die Methode 'generate_payload', die eine XML-Payload als Wörterbuch [hier] generiert (https://github.com/odero/django-pesapal/blob/master/django_pesapal/views.py) –
Die Daten in meinem App ist nur nach einer Formularübergabe verfügbar, daher habe ich eine neue update_view-Methode erstellt, die es einem Benutzer ermöglicht, seine Optionen noch einmal zu bearbeiten. Auf der gleichen Vorlage gibt es eine Registerkarte Zahlungen mit dem Warenkorb und da es eine Update-Ansicht ist, sind die Daten des Artikels im Voraus ausgefüllt, so dass die Einreichung einfacher ist @Martin Hallén –