ฉันได้ตั้งค่าวิธีการชำระเงินใหม่ใน Magento 2 ด้วยฟิลด์วิธีการชำระเงินที่กำหนดเอง (เช่น "po_number" จากวิธีการชำระเงินแบบวีโอไอพี / ออฟไลน์ ) และส่วนหน้าทำงานได้อย่างสมบูรณ์แบบ (การแสดงฟิลด์การตรวจสอบและอื่น ๆ )
อย่างไรก็ตามหากฉันต้องการสั่งซื้อสินค้าวีโอไอพีคำขอ WebAPI จะเกิดข้อผิดพลาดต่อไปนี้:
"Property \" CustomField \ "ไม่มี setter ที่สอดคล้องกันในคลาส \" Magento \ Quote \ Api \ Data \ PaymentInterface \ "
มันดูเหมือนว่าวีโอไอพีจะตรวจสอบข้อมูลที่กำหนดเองกับอินเตอร์เฟซการชำระเงินหลักที่วิธีการเช่นgetPoNumberและsetPoNumberมีการกำหนด
ฉันพยายามเพิ่มฟิลด์ที่กำหนดเองผ่านแอตทริบิวต์ส่วนขยาย:
<extension_attributes for="Magento\Quote\Api\Data\PaymentInterface">
<attribute code="custom_field" type="Vendor\Module\Api\Data\MethodInterface[]" />
</extension_attributes>
และสร้างอินเตอร์เฟสด้วยวิธีการเฉพาะ:
<?php
namespace Vendor\Module\Api\Data;
use Magento\Framework\Api\ExtensibleDataInterface;
interface MethodInterface extends ExtensibleDataInterface
{
public function setCustomField($customField);
public function getCustomField();
}
แต่มันไม่ได้ผล Magento ยังคงตรวจสอบกับอินเทอร์เฟซการชำระเงินหลัก
คำถามคือทำอย่างไรให้วีโอไอพียอมรับฟิลด์วิธีการชำระเงินที่กำหนดเอง คำแนะนำใด ๆ ที่ชื่นชมมาก :)