Projet

Général

Profil

0001-Implement-POST-method-for-eopayment-requests-fixes-6.patch

Benjamin Dauvergne, 03 avril 2015 17:49

Télécharger (2,13 ko)

Voir les différences:

Subject: [PATCH] Implement POST method for eopayment requests (fixes #6905)

 extra/modules/payments.py | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)
extra/modules/payments.py
5 5
import time
6 6
import urllib
7 7

  
8 8
from decimal import Decimal
9 9

  
10 10
from quixote import (redirect, get_publisher, get_request, get_session,
11 11
        get_response)
12 12
from quixote.directory import Directory
13
from quixote.html import TemplateIO, htmltext
13 14

  
14 15
if not set:
15 16
    from sets import Set as set
16 17

  
17 18
eopayment = None
18 19
try:
19 20
    import eopayment
20 21
except ImportError:
......
424 425
            if not formdata.evolution:
425 426
                formdata.evolution = []
426 427
            formdata.evolution.append(evo)
427 428
            formdata.store()
428 429

  
429 430
    if kind == eopayment.URL:
430 431
        return redirect(data)
431 432
    elif kind == eopayment.FORM:
432
        raise NotImplementedError()
433
        return return_eopayment_form(data)
433 434
    else:
434 435
        raise NotImplementedError()
435 436

  
437
def return_eopayment_form(form):
438
    r = TemplateIO(html=True)
439
    r += htmltext('<html><body onload="document.payform.submit()">')
440
    r += htmltext('<form action="%s" method="%s" name="payform">') % (form.url, form.method)
441
    for field in form.fields:
442
        r += htmltext('<input type="%s" name="%s" value="%s"/>') % (
443
                field['type'],
444
                field['name'],
445
                field['value'])
446
    r += htmltext('<input type="submit" name="submit" value="%s"/>') % _('Pay')
447
    r += htmltext('</body></html>')
448
    return r.getvalue()
449

  
436 450

  
437 451
class PaymentValidationWorkflowStatusItem(WorkflowStatusItem):
438 452
    description = N_('Payment Validation')
439 453
    key = 'payment-validation'
440 454
    endpoint = False
441 455
    category = ('aq-payment', N_('Payment'))
442 456

  
443 457
    next_status = None
444
-