Add 3DS verification method

This commit is contained in:
Emili Castells Guasch 2023-11-15 12:01:18 +01:00
parent adbb799be4
commit a50ac455ee

View file

@ -14,6 +14,7 @@ use WooCommerce\PayPalCommerce\Vendor\Dhii\Modular\Module\ModuleInterface;
use WooCommerce\PayPalCommerce\Vendor\Interop\Container\ServiceProviderInterface;
use WooCommerce\PayPalCommerce\Vendor\Psr\Container\ContainerInterface;
use WooCommerce\PayPalCommerce\WcGateway\Gateway\CreditCardGateway;
use WooCommerce\PayPalCommerce\WcGateway\Settings\Settings;
/**
* Class CardFieldsModule
@ -75,5 +76,31 @@ class CardFieldsModule implements ModuleInterface {
10,
2
);
add_filter(
'ppcp_create_order_request_body_data',
function( $data ) use ( $c ) {
$settings = $c->get( 'wcgateway.settings' );
assert( $settings instanceof Settings );
if (
$settings->has( '3d_secure_contingency' )
&& (
$settings->get( '3d_secure_contingency' ) === 'SCA_ALWAYS'
|| $settings->get( '3d_secure_contingency' ) === 'SCA_WHEN_REQUIRED'
)
) {
$data['payment_source']['card'] = array(
'attributes' => array(
'verification' => array(
'method' => $settings->get( '3d_secure_contingency' ),
),
),
);
}
return $data;
}
);
}
}