Magento 2.3 обработал платеж до результата платежа? - PullRequest
0 голосов
/ 19 октября 2019

Я использую Magento 2.3.2, проблема заключается в следующем: когда клиент запускает Checkout и достигает способов оплаты и выбирает метод моего банка, система непосредственно устанавливает заказ, не ожидая, пока платеж завершит процесс. Таким образом, статус заказа будет «Payment_pending», пока он успешно обработан!

Мой вопрос: как я могу позволить Magento не отправлять заказ до завершения процесса оплаты?

Коды моего банка: Config.xml:

<?xml version="1.0"?>
    <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
        <default>
            <payment>
                <paytabsexpress>
                    <model>Paytabs\Paytabsexpress\Model\PaymentMethod</model>
                    <title>Credit card </title>
                    <merchantid backend_model="Magento\Config\Model\Config\Backend\Encrypted" />
                    <secretkey backend_model="Magento\Config\Model\Config\Backend\Encrypted" />
                    <secretsign backend_model="Magento\Config\Model\Config\Backend\Encrypted" />                
                    <payment_action>Sale</payment_action>
                    <visible_on_cart>1</visible_on_cart>
                    <order_status>pending_payment</order_status>
                </paytabsexpress>
            </payment>
        </default>
    </config>

form.html:

<div class="payment-method" data-bind="css: {'_active': (getCode() == isChecked())}">
    <div class="payment-method-title field choice">
        <input type="radio"
               name="payment[method]"
               class="radio"
               data-bind="attr: {'id': getCode()}, value: getCode(), checked: isChecked, click: selectPaymentMethod, visible: isRadioButtonVisible()"/>
        <label data-bind="attr: {'for': getCode()}" class="label"><span data-bind="text: getTitle()"></span></label>
    </div>
    <div class="payment-method-content">

        <div class="payment-method-billing-address">
            <!-- ko foreach: $parent.getRegion(getBillingAddressFormName()) -->
            <!-- ko template: getTemplate() --><!-- /ko -->
            <!--/ko-->
        </div> 
        <div class="checkout-agreements-block">
            <!-- ko foreach: $parent.getRegion('before-place-order') -->
                <!-- ko template: getTemplate() --><!-- /ko -->
            <!--/ko-->
        </div>
        <div class="actions-toolbar">        
            <div class="primary">
                <button class="action primary checkout"
                        type="submit"
                        data-bind="
                        click: placeOrder,
                        attr: {title: $t('Place Order')},
                        css: {disabled: !isPlaceOrderActionAllowed()},
                        enable: (getCode() == isChecked())
                        "
                        disabled>
                    <span data-bind="i18n: 'Place Order'"></span>
                </button> 
            </div>           
        </div>
        <div id="paytabsexpressloader">
        </div>
    </div>
</div>
...