From 13f94efa7d77a2ae3b207403b74b1c3a6efa3387 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20Mart=C3=ADn?= Date: Mon, 7 Aug 2023 14:58:18 +0200 Subject: [PATCH 1/3] Added new methods for payment type --- src/Sermepa/Tpv/Tpv.php | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/Sermepa/Tpv/Tpv.php b/src/Sermepa/Tpv/Tpv.php index 99d29ae..eb03763 100644 --- a/src/Sermepa/Tpv/Tpv.php +++ b/src/Sermepa/Tpv/Tpv.php @@ -607,18 +607,29 @@ public function setTradeName($tradename = '') /** * Payment type * - * @param string $method [T o C = Sólo Tarjeta (mostrará sólo el formulario para datos de tarjeta) - * R = Pago por Transferencia, D = Domiciliación] + * @param string $method + * [ + * T o C = Sólo Tarjeta (mostrará sólo el formulario para datos de tarjeta) + * R = Pago por Transferencia, + * D = Domiciliación + * z = Bizum + * p = PayPal + * N = Masterpass + * ] * * @return $this * @throws Exception */ - public function setMethod($method = 'T') + public function setMethod($method = 'C') { if ($this->isEmpty($method)) { throw new TpvException('Add pay method'); } + if (!in_array($method, ['T', 'C', 'R', 'D', 'z', 'p', 'N'])) { + throw new TpvException('Pay method is not valid'); + } + $this->_setParameters['DS_MERCHANT_PAYMETHODS'] = trim($method); return $this; From af3eaa81e9de3780e23760cd79ba938881dfd050 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20D=C3=ADaz?= Date: Mon, 7 Aug 2023 21:41:57 +0200 Subject: [PATCH 2/3] I just added new tests for DS_MERCHANT_PAYMETHODS and merge pull request --- tests/TpvTest.php | 49 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/tests/TpvTest.php b/tests/TpvTest.php index dfd6b52..a4f221e 100644 --- a/tests/TpvTest.php +++ b/tests/TpvTest.php @@ -541,4 +541,53 @@ public function set_new_parameters() } + public function invalidSetMethod() + { + return [ + ['V'], + ['A'], + ['X'], + ['AA'], + ['Np'], + ]; + } + + /** + * @test + * @dataProvider invalidSetMethod + */ + public function throw_when_set_method_is_invalid($method) + { + $this->expectExceptionMessage("Pay method is not valid"); + $this->expectException(\Sermepa\Tpv\TpvException::class); + $redsys = new Tpv(); + $redsys->setMethod($method); + } + + public function methodsProvider() + { + return [ + ['T'], + ['C'], + ['R'], + ['D'], + ['z'], + ['p'], + ['N'] + ]; + } + + /** + * + * @test + * @dataProvider methodsProvider + */ + public function should_validate_a_method($method) + { + $redsys = new Tpv(); + $redsys->setMethod($method); + $parameters = $redsys->getParameters(); + $this->assertArrayHasKey('DS_MERCHANT_PAYMETHODS', $parameters); + } + } From cba183807bc6a56d909806f726e1bae478379029 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20D=C3=ADaz?= Date: Mon, 7 Aug 2023 21:58:06 +0200 Subject: [PATCH 3/3] I just changed CHANGELOG.md --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 078212d..e93e075 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,16 @@ All Notable changes to `Redsys` will be documented in this file +## Version 1.4.4 (2023-08-07) + +### Added +- Merge pull request from diegomarty. +- Changed value by default in setMethod: T to C. +- Added validation for this parameters: 'T', 'C', 'R', 'D', 'z', 'p', 'N' +- Added new test for setMethod +### Fixed +- Nothing +- ## Version 1.4.3 (2023-02-16) ### Added