Skip to content

Commit 5566b8c

Browse files
committed
3.5.2: MAG-524: Fix for payment methods installation issues
On previous version we're using to set payment methods verification classes to paht 'payment/[payment_method]/[config_key]', but this was causing issues on Magento/extension installation and/or checkout when one of defined payment methods was not present on Magento installation Documentation has been updated
1 parent 4ddbfce commit 5566b8c

6 files changed

+93
-69
lines changed

Model/PaymentVerificationFactory.php

+20-2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
use Signifyd\Connect\Api\PaymentVerificationInterface;
77
use Magento\Payment\Gateway\ConfigInterface;
88
use Magento\Framework\Exception\LocalizedException;
9+
use Signifyd\Connect\Helper\ConfigHelper;
910

1011
/**
1112
* Creates verification service for provided payment method, or PaymentVerificationInterface::class
@@ -63,6 +64,11 @@ class PaymentVerificationFactory
6364
*/
6465
protected $transactionIdDefaultAdapter;
6566

67+
/**
68+
* @var ConfigHelper
69+
*/
70+
protected $configHelper;
71+
6672
/**
6773
* @param ObjectManagerInterface $objectManager
6874
* @param ConfigInterface|Config $config
@@ -73,6 +79,7 @@ class PaymentVerificationFactory
7379
* @param PaymentVerificationInterface $expMonthDefaultAdapter
7480
* @param PaymentVerificationInterface $expYearDefaultAdapter
7581
* @param PaymentVerificationInterface $binDefaultAdapter
82+
* @param ConfigHelper $configHelper
7683
*/
7784
public function __construct(
7885
ObjectManagerInterface $objectManager,
@@ -84,7 +91,8 @@ public function __construct(
8491
PaymentVerificationInterface $expMonthDefaultAdapter,
8592
PaymentVerificationInterface $expYearDefaultAdapter,
8693
PaymentVerificationInterface $binDefaultAdapter,
87-
PaymentVerificationInterface $transactionIdDefaultAdapter
94+
PaymentVerificationInterface $transactionIdDefaultAdapter,
95+
ConfigHelper $configHelper
8896
) {
8997
$this->config = $config;
9098
$this->objectManager = $objectManager;
@@ -96,6 +104,7 @@ public function __construct(
96104
$this->expYearDefaultAdapter = $expYearDefaultAdapter;
97105
$this->binDefaultAdapter = $binDefaultAdapter;
98106
$this->transactionIdDefaultAdapter = $transactionIdDefaultAdapter;
107+
$this->configHelper = $configHelper;
99108
}
100109

101110
/**
@@ -206,6 +215,10 @@ public function createPaymentTransactionId($paymentCode)
206215
* Creates instance of PaymentVerificationInterface.
207216
* Default implementation will be returned if payment method does not implement PaymentVerificationInterface.
208217
*
218+
* Will search for payment verification class on payment/[method]/[config_key] configuration path first
219+
* If not found will try for signifyd/payment/[method]/[config_key]
220+
* We keep looking on payment/[method]/[config_key] because this is the path on 3.5.1 and older versions
221+
*
209222
* @param PaymentVerificationInterface $defaultAdapter
210223
* @param string $paymentCode
211224
* @param string $configKey
@@ -217,7 +230,12 @@ private function create(PaymentVerificationInterface $defaultAdapter, $paymentCo
217230
{
218231
$this->config->setMethodCode($paymentCode);
219232
$verificationClass = $this->config->getValue($configKey);
220-
if ($verificationClass === null) {
233+
234+
if (empty($verificationClass)) {
235+
$verificationClass = $this->configHelper->getConfigData("signifyd/payment/{$paymentCode}/{$configKey}");
236+
}
237+
238+
if (empty($verificationClass)) {
221239
return $defaultAdapter;
222240
}
223241

composer.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"php": ">=5.5.22"
88
},
99
"type": "magento2-module",
10-
"version": "3.5.1",
10+
"version": "3.5.2",
1111
"autoload": {
1212
"files": [
1313
"registration.php"

docs/INSTALL-TROUBLESHOOT.md

+2-14
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,9 @@
44

55
## Stripe payments error on 3.5.0 and 3.5.1
66

7-
This is a known bug that will be fixed on 3.5.2 release. So it is not necessary to keep track of below modifications.
7+
This is a known bug that has been fixed on 3.5.2 release. Upgrade to latest version to fix it
88

9-
If during installation or on checkout process an exception with message "Payment model name is not provided in config" is raised and store does not have stripe_payments payment method installed, follow bellow instructions as an workaround.
10-
11-
On etc/config.xml find <stripe_payments> tag (line 61) and remove these lines and clear the cache.
12-
13-
```xml
14-
<stripe_payments>
15-
<signifyd_avs_ems_adapter>Signifyd\Connect\Model\Payment\Stripe\Payments\AvsEmsCodeMapper</signifyd_avs_ems_adapter>
16-
<signifyd_cvv_ems_adapter>Signifyd\Connect\Model\Payment\Stripe\Payments\CvvEmsCodeMapper</signifyd_cvv_ems_adapter>
17-
<signifyd_last4_adapter>Signifyd\Connect\Model\Payment\Stripe\Payments\Last4Mapper</signifyd_last4_adapter>
18-
<signifyd_exp_month_adapter>Signifyd\Connect\Model\Payment\Stripe\Payments\ExpMonthMapper</signifyd_exp_month_adapter>
19-
<signifyd_exp_year_adapter>Signifyd\Connect\Model\Payment\Stripe\Payments\ExpYearMapper</signifyd_exp_year_adapter>
20-
</stripe_payments>
21-
```
9+
If during installation or on checkout process an exception with message "Payment model name is not provided in config" is raised and store does not have stripe_payments payment method installed and store is using Signifyd version 3.5.0 or 3.5.1, upgrate to latest version to fix it.
2210

2311
## Third-party cache errors
2412

docs/PAYMENT-DETAILS.md

+29-12
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,17 @@ All mappers should implement Signifyd\Connect\Api\PaymentVerificationInterface.
3232

3333
For the inclusion of a custom payment, it is necessary to find the payment method code.
3434

35-
Usually it is possible to find the payment method code inside the payment method config.xml file, inside the `<default><payment>` tag. Something like this:
35+
Usually it is possible to find the payment method code inside the payment method config.xml file, inside the `<default><signifyd><payment>` tag. Something like this:
3636

37-
```
37+
```xml
3838
<default>
39-
<payment>
40-
<payment_method_code>
41-
...
42-
</payment_method_code>
43-
</payment>
39+
<signifyd>
40+
<payment>
41+
<payment_method_code>
42+
...
43+
</payment_method_code>
44+
</payment>
45+
</signifyd>
4446
</default>
4547
```
4648

@@ -67,11 +69,13 @@ On config.xml set the mapper to be used for the payment method and information a
6769
```xml
6870
<config>
6971
<default>
70-
<payment>
71-
<payment_method_code>
72-
<signifyd_information_code_adapter>Mapper\Class</signifyd_information_code_adapter>
73-
</payment_method_code>
74-
</payment>
72+
<signifyd>
73+
<payment>
74+
<payment_method_code>
75+
<signifyd_information_code_adapter>Mapper\Class</signifyd_information_code_adapter>
76+
</payment_method_code>
77+
</payment>
78+
</signifyd>
7579
</default>
7680
</config>
7781
```
@@ -98,6 +102,8 @@ Here is a template for mapper class implementation:
98102

99103
_**Replace bold parts with specific information for custom extension, payment method and information**_
100104

105+
_**Do not implement a validate() method inside these classes**_
106+
101107
```php
102108
namespace Path\Your\Namespace;
103109

@@ -182,6 +188,17 @@ Here is a list of the payment methods that have a built in helper on the extensi
182188
- Code: braintree
183189
- Magento built in
184190

191+
**Available data**
192+
- CVV Status
193+
- AVS Status
194+
- Last4
195+
- Expiry Month
196+
- Expiry Year
197+
- Transaction ID
198+
199+
### Stripe Payments
200+
- Code: stripe_payments
201+
185202
**Available data**
186203
- CVV Status
187204
- AVS Status

etc/config.xml

+40-39
Original file line numberDiff line numberDiff line change
@@ -22,49 +22,50 @@
2222
<logs>
2323
<log>1</log>
2424
</logs>
25-
</signifyd>
26-
<payment>
27-
<authorizenet_directpost>
28-
<signifyd_cvv_ems_adapter>Signifyd\Connect\Model\Payment\Authorizenet\CvvEmsCodeMapper</signifyd_cvv_ems_adapter>
29-
<signifyd_last4_adapter>Signifyd\Connect\Model\Payment\Authorizenet\Last4Mapper</signifyd_last4_adapter>
30-
<signifyd_exp_month_adapter>Signifyd\Connect\Model\Payment\Authorizenet\ExpMonthMapper</signifyd_exp_month_adapter>
31-
<signifyd_exp_year_adapter>Signifyd\Connect\Model\Payment\Authorizenet\ExpYearMapper</signifyd_exp_year_adapter>
32-
<signifyd_transaction_id_adapter>Signifyd\Connect\Model\Payment\Authorizenet\TransactionIdMapper</signifyd_transaction_id_adapter>
33-
</authorizenet_directpost>
3425

35-
<braintree>
36-
<signifyd_avs_ems_adapter>Signifyd\Connect\Model\Payment\Braintree\AvsEmsCodeMapper</signifyd_avs_ems_adapter>
37-
<signifyd_cvv_ems_adapter>Signifyd\Connect\Model\Payment\Braintree\CvvEmsCodeMapper</signifyd_cvv_ems_adapter>
38-
</braintree>
26+
<payment>
27+
<authorizenet_directpost>
28+
<signifyd_cvv_ems_adapter>Signifyd\Connect\Model\Payment\Authorizenet\CvvEmsCodeMapper</signifyd_cvv_ems_adapter>
29+
<signifyd_last4_adapter>Signifyd\Connect\Model\Payment\Authorizenet\Last4Mapper</signifyd_last4_adapter>
30+
<signifyd_exp_month_adapter>Signifyd\Connect\Model\Payment\Authorizenet\ExpMonthMapper</signifyd_exp_month_adapter>
31+
<signifyd_exp_year_adapter>Signifyd\Connect\Model\Payment\Authorizenet\ExpYearMapper</signifyd_exp_year_adapter>
32+
<signifyd_transaction_id_adapter>Signifyd\Connect\Model\Payment\Authorizenet\TransactionIdMapper</signifyd_transaction_id_adapter>
33+
</authorizenet_directpost>
34+
35+
<braintree>
36+
<signifyd_avs_ems_adapter>Signifyd\Connect\Model\Payment\Braintree\AvsEmsCodeMapper</signifyd_avs_ems_adapter>
37+
<signifyd_cvv_ems_adapter>Signifyd\Connect\Model\Payment\Braintree\CvvEmsCodeMapper</signifyd_cvv_ems_adapter>
38+
</braintree>
3939

40-
<payflowpro>
41-
<signifyd_avs_ems_adapter>Signifyd\Connect\Model\Payment\Payflow\Pro\AvsEmsCodeMapper</signifyd_avs_ems_adapter>
42-
<signifyd_cvv_ems_adapter>Signifyd\Connect\Model\Payment\Payflow\Pro\CvvEmsCodeMapper</signifyd_cvv_ems_adapter>
43-
</payflowpro>
40+
<payflowpro>
41+
<signifyd_avs_ems_adapter>Signifyd\Connect\Model\Payment\Payflow\Pro\AvsEmsCodeMapper</signifyd_avs_ems_adapter>
42+
<signifyd_cvv_ems_adapter>Signifyd\Connect\Model\Payment\Payflow\Pro\CvvEmsCodeMapper</signifyd_cvv_ems_adapter>
43+
</payflowpro>
4444

45-
<payflow_link>
46-
<signifyd_avs_ems_adapter>Signifyd\Connect\Model\Payment\Payflow\Link\AvsEmsCodeMapper</signifyd_avs_ems_adapter>
47-
<signifyd_cvv_ems_adapter>Signifyd\Connect\Model\Payment\Payflow\Link\CvvEmsCodeMapper</signifyd_cvv_ems_adapter>
48-
<signifyd_last4_adapter>Signifyd\Connect\Model\Payment\Payflow\Link\Last4Mapper</signifyd_last4_adapter>
49-
<signifyd_exp_month_adapter>Signifyd\Connect\Model\Payment\Payflow\Link\ExpMonthMapper</signifyd_exp_month_adapter>
50-
<signifyd_exp_year_adapter>Signifyd\Connect\Model\Payment\Payflow\Link\ExpYearMapper</signifyd_exp_year_adapter>
51-
</payflow_link>
45+
<payflow_link>
46+
<signifyd_avs_ems_adapter>Signifyd\Connect\Model\Payment\Payflow\Link\AvsEmsCodeMapper</signifyd_avs_ems_adapter>
47+
<signifyd_cvv_ems_adapter>Signifyd\Connect\Model\Payment\Payflow\Link\CvvEmsCodeMapper</signifyd_cvv_ems_adapter>
48+
<signifyd_last4_adapter>Signifyd\Connect\Model\Payment\Payflow\Link\Last4Mapper</signifyd_last4_adapter>
49+
<signifyd_exp_month_adapter>Signifyd\Connect\Model\Payment\Payflow\Link\ExpMonthMapper</signifyd_exp_month_adapter>
50+
<signifyd_exp_year_adapter>Signifyd\Connect\Model\Payment\Payflow\Link\ExpYearMapper</signifyd_exp_year_adapter>
51+
</payflow_link>
5252

53-
<payflow_advanced>
54-
<signifyd_avs_ems_adapter>Signifyd\Connect\Model\Payment\Payflow\Link\AvsEmsCodeMapper</signifyd_avs_ems_adapter>
55-
<signifyd_cvv_ems_adapter>Signifyd\Connect\Model\Payment\Payflow\Link\CvvEmsCodeMapper</signifyd_cvv_ems_adapter>
56-
<signifyd_last4_adapter>Signifyd\Connect\Model\Payment\Payflow\Link\Last4Mapper</signifyd_last4_adapter>
57-
<signifyd_exp_month_adapter>Signifyd\Connect\Model\Payment\Payflow\Link\ExpMonthMapper</signifyd_exp_month_adapter>
58-
<signifyd_exp_year_adapter>Signifyd\Connect\Model\Payment\Payflow\Link\ExpYearMapper</signifyd_exp_year_adapter>
59-
</payflow_advanced>
53+
<payflow_advanced>
54+
<signifyd_avs_ems_adapter>Signifyd\Connect\Model\Payment\Payflow\Link\AvsEmsCodeMapper</signifyd_avs_ems_adapter>
55+
<signifyd_cvv_ems_adapter>Signifyd\Connect\Model\Payment\Payflow\Link\CvvEmsCodeMapper</signifyd_cvv_ems_adapter>
56+
<signifyd_last4_adapter>Signifyd\Connect\Model\Payment\Payflow\Link\Last4Mapper</signifyd_last4_adapter>
57+
<signifyd_exp_month_adapter>Signifyd\Connect\Model\Payment\Payflow\Link\ExpMonthMapper</signifyd_exp_month_adapter>
58+
<signifyd_exp_year_adapter>Signifyd\Connect\Model\Payment\Payflow\Link\ExpYearMapper</signifyd_exp_year_adapter>
59+
</payflow_advanced>
6060

61-
<stripe_payments>
62-
<signifyd_avs_ems_adapter>Signifyd\Connect\Model\Payment\Stripe\Payments\AvsEmsCodeMapper</signifyd_avs_ems_adapter>
63-
<signifyd_cvv_ems_adapter>Signifyd\Connect\Model\Payment\Stripe\Payments\CvvEmsCodeMapper</signifyd_cvv_ems_adapter>
64-
<signifyd_last4_adapter>Signifyd\Connect\Model\Payment\Stripe\Payments\Last4Mapper</signifyd_last4_adapter>
65-
<signifyd_exp_month_adapter>Signifyd\Connect\Model\Payment\Stripe\Payments\ExpMonthMapper</signifyd_exp_month_adapter>
66-
<signifyd_exp_year_adapter>Signifyd\Connect\Model\Payment\Stripe\Payments\ExpYearMapper</signifyd_exp_year_adapter>
67-
</stripe_payments>
68-
</payment>
61+
<stripe_payments>
62+
<signifyd_avs_ems_adapter>Signifyd\Connect\Model\Payment\Stripe\Payments\AvsEmsCodeMapper</signifyd_avs_ems_adapter>
63+
<signifyd_cvv_ems_adapter>Signifyd\Connect\Model\Payment\Stripe\Payments\CvvEmsCodeMapper</signifyd_cvv_ems_adapter>
64+
<signifyd_last4_adapter>Signifyd\Connect\Model\Payment\Stripe\Payments\Last4Mapper</signifyd_last4_adapter>
65+
<signifyd_exp_month_adapter>Signifyd\Connect\Model\Payment\Stripe\Payments\ExpMonthMapper</signifyd_exp_month_adapter>
66+
<signifyd_exp_year_adapter>Signifyd\Connect\Model\Payment\Stripe\Payments\ExpYearMapper</signifyd_exp_year_adapter>
67+
</stripe_payments>
68+
</payment>
69+
</signifyd>
6970
</default>
7071
</config>

etc/module.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
*/
66
-->
77
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
8-
<module name="Signifyd_Connect" setup_version="3.5.1">
8+
<module name="Signifyd_Connect" setup_version="3.5.2">
99
<sequence>
1010
<module name="Magento_Sales" />
1111
<module name="Magento_Payment" />

0 commit comments

Comments
 (0)