From 3df193bf13788e7a1209303088e51abb94dae93a Mon Sep 17 00:00:00 2001 From: Serghei Mihai Date: Mon, 20 Aug 2018 15:55:02 +0200 Subject: [PATCH] paybox: add support for payment authorization only (#27269) --- eopayment/paybox.py | 8 ++++++++ tests/test_paybox.py | 19 +++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/eopayment/paybox.py b/eopayment/paybox.py index a688ec9..44de769 100644 --- a/eopayment/paybox.py +++ b/eopayment/paybox.py @@ -229,6 +229,12 @@ class Payment(PaymentCommon): 'validation': lambda x: isinstance(x, basestring) and x.isdigit() and (1 <= len(x) <= 2) }, + { + 'name': 'capture_mode', + 'caption': _('Capture Mode'), + 'default': False, + 'required': False, + }, ] } @@ -263,6 +269,8 @@ class Payment(PaymentCommon): automatic_return_url = self.callback if self.capture_day: d['PBX_DIFF'] = self.capture_day.zfill(2) + if self.capture_mode: + d['PBX_AUTOSEULE'] = 'O' if automatic_return_url: d['PBX_REPONDRE_A'] = force_text(automatic_return_url) d = d.items() diff --git a/tests/test_paybox.py b/tests/test_paybox.py index 0ed2a29..b692d7d 100644 --- a/tests/test_paybox.py +++ b/tests/test_paybox.py @@ -104,6 +104,25 @@ class PayboxTests(TestCase): self.assertIn('PBX_DIFF', form_params) self.assertEqual(form_params['PBX_DIFF'], '07') + def test_request_with_authorization_only(self): + params = BACKEND_PARAMS.copy() + time = '2018-08-21T10:26:32+02:00' + email = 'user@entrouvert.com' + order_id = '20180821' + transaction = '1234' + amount = '42.99' + + params['capture_mode'] = True + backend = eopayment.Payment('paybox', params) + transaction_id, kind, what = backend.request( + Decimal(amount), email=email, orderid=order_id, + transaction_id=transaction, time=time) + root = ET.fromstring(str(what)) + + form_params = dict(((node.attrib['name'], node.attrib['value']) for node in root if node.attrib['type'] == 'hidden')) + self.assertIn('PBX_AUTOSEULE', form_params) + self.assertEqual(form_params['PBX_AUTOSEULE'], 'O') + def test_response(self): backend = eopayment.Payment('paybox', BACKEND_PARAMS) order_id = '20160216' -- 2.19.1