Menyimpan data bidang pembayaran khusus di magento 2 melalui plugin tidak berfungsi,

8

Saya mencoba menyimpan data bidang khusus saya melalui plugin tetapi tidak berfungsi.

Kelas Plugin

namespace Vendor\Module\Model\Checkout;

class PaymentInformationManagementPlugin {

    protected $paymentMethodManagement;

    public function __construct(
        \Magento\Quote\Model\QuoteFactory $quote, 
        \Magento\Quote\Api\PaymentMethodManagementInterface $paymentMethodManagement
    ) {
        $this->paymentMethodManagement = $paymentMethodManagement;
        $this->quoteManagement = $quoteManagement;
    }    

    public function beforeSavePaymentInformation(
        \Magento\Checkout\Model\PaymentInformationManagement $subject, 
$cartId, 
        \Magento\Quote\Api\Data\PaymentInterface $paymentInformation
    ) {
        //$paymentInformation->getData('extension_attributes');
        $extenstinAttributes = $paymentInformation->getExtensionAttributes();
        $taxCode = $extenstinAttributes->getTaxCode();

        $paymentInformation->setExtensionAttributes($taxCode);
        $this->paymentMethodManagement->set($cartId, $paymentInformation);

        return true;
//        var_dump($taxCode);exit;
//        $quote=$this->quote->create();
//        $quote->getPayment()->setData('tax_code',$taxCode);
//        return $paymentInformation;
    }

}

extenstion_attribute.xml

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Api/etc/extension_attributes.xsd">
    <extension_attributes for="Magento\Quote\Api\Data\PaymentInterface">
        <attribute code="tax_code" type="string"/>
    </extension_attributes>
</config>

di.xml

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="Magento\Checkout\Model\PaymentInformationManagement">
        <plugin name="save-in-quote-payment" type="Vendor\Module\Model\Checkout\PaymentInformationManagementPlugin" sortOrder="12349"/>
    </type>
</config>

Adakah yang bisa membantu saya dalam hal ini?

rajat kara
sumber
tampilkan lebih detail dengan config
Sohel Rana
saya mendapatkan nilai $ taxCode = $ extenstinAttributes-> getTaxCode (); dalam variabel ini tetapi tidak dapat mengatur data dia.
rajat kara
silakan periksa kode pembaruan yang dipermasalahkan
rajat kara
saya mendapatkan data formulir di plugin saya tetapi tidak dapat menyimpan data.
rajat kara
Apakah kamu melakukan ini?
Suresh Chikani

Jawaban:

0

Saya pikir untuk memulai Anda perlu mengatur atribut ekstensi seperti ini:

$extensionAttributes = $paymentInformation->getExtensionAttributes();
$extensionAttributes->setTaxCode('something');
$paymentInformation->setExtensionAttributes($extensionAttributes);

Anda dapat mencoba pendekatan ini dan beri tahu saya bagaimana caranya.

LDusan
sumber