From 6c608cabf81c9b022536e078851cfb480bd06215 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Fri, 3 Apr 2015 17:48:58 +0200 Subject: [PATCH] Implement POST method for eopayment requests (fixes #6905) --- extra/modules/payments.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/extra/modules/payments.py b/extra/modules/payments.py index 7cd3713..82d7140 100644 --- a/extra/modules/payments.py +++ b/extra/modules/payments.py @@ -5,16 +5,17 @@ import hashlib import time import urllib from decimal import Decimal from quixote import (redirect, get_publisher, get_request, get_session, get_response) from quixote.directory import Directory +from quixote.html import TemplateIO, htmltext if not set: from sets import Set as set eopayment = None try: import eopayment except ImportError: @@ -424,20 +425,33 @@ def request_payment(invoice_ids, url, add_regie=True): if not formdata.evolution: formdata.evolution = [] formdata.evolution.append(evo) formdata.store() if kind == eopayment.URL: return redirect(data) elif kind == eopayment.FORM: - raise NotImplementedError() + return return_eopayment_form(data) else: raise NotImplementedError() +def return_eopayment_form(form): + r = TemplateIO(html=True) + r += htmltext('') + r += htmltext('
') % (form.url, form.method) + for field in form.fields: + r += htmltext('') % ( + field['type'], + field['name'], + field['value']) + r += htmltext('') % _('Pay') + r += htmltext('') + return r.getvalue() + class PaymentValidationWorkflowStatusItem(WorkflowStatusItem): description = N_('Payment Validation') key = 'payment-validation' endpoint = False category = ('aq-payment', N_('Payment')) next_status = None -- 1.9.1