Beispielintegration Magento 2.x

Für die aktive und passive Zahlartensteuerung können in der /etc/events.xml für Magento 2.x die folgenden Observer registriert werden:

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="payment_method_is_active">
<observer name="vendor_modulename_active_check"
instance="Vendor\ModuleName\Observer\ActiveCheck"/>
</event>
<event name="checkout_submit_before">
<observer name="vendor_modulename_passive_check"
instance="Vendor\ModuleName\Observer\PassiveCheck"/>
</event>
</config>

Die Datei Observer/ActiveCheck.php könnte folgende Prüfung beinhalten:

/**
* Executes event action.
*
* @param Observer $observer
*
* @return void
*/
public function execute(Observer $observer)
{
$event = $observer->getEvent();
$methodCode = $event->getMethodInstance()->getCode();
$buergelApi = new BuergelApi;
$disabledMethodCodes = $buergelApi->getDisabledPaymentMethods();


if ($methodCode && in_array($methodCode, $disabledMethodCodes)) {
$event->getResult()->setData('is_available', false);
} else {
if ($buergelApi->checkRisk($methodCode, true)) {
$event->getResult()->setData('is_available', false);
}
}
}

Die Datei Observer/PassiveCheck.php folgenden Code:

/**
* Executes event action.
*
* @param Observer $observer
*
* @return void
*
* @throws PaymentException
*/
public function execute(Observer $observer)
{
$buergelApi = new BuergelApi;
$methodCode = $buergelApi->getQuotePaymentMethod();

if ($buergelApi->checkRisk($methodCode, false)) {
$buergelApi->addDisabledPaymentMethod($methodCode);
throw new PassiveCheckException( __('Payment method is not allowed.') );
}
}

Related Articles