INVALID_REQUEST:字段 [order.avsDetails.billToFirstname] 不在字符集 [ISO-8859-1] 中
INVALID_REQUEST: Field [order.avsDetails.billToFirstname] was not in charset [ISO-8859-1]
出于某些原因,当我使用 OnTap MasterCard Extension
时,送货地址中的任何阿拉伯字符都会引发错误:
INVALID_REQUEST: Field [order.avsDetails.billToFirstname] was not in charset [ISO-8859-1]
分机 link :
https://marketplace.magento.com/ontap-module-mastercard.html
请帮忙。
您可以尝试使用插件对 Builders(在 Gateway/Request
文件夹内)生成的数据进行编码。
您可以详细了解如何创建插件 here,以便在需要时对构建器中的所有字段执行编码。
您将创建一个新模块,对您从市场上获取的扩展进行所需的修改。
要在这种情况下定义您的构建器,您的 di.xml
将类似于:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="\OnTap\MasterCard\Gateway\Request\ShippingDataBuilder">
<plugin name="jsparo_ontap_mastercard_gateway_request_shippingdatabuilder" type="Jsparo\MasterCard\Plugin\Gateway\Request\ShippingDataBuilder" sortOrder="1"/>
</type>
</config>
你的 Plugin/Gateway/Request/ShippingDataBuilder.php
会是这样的:
<?php
namespace Jsparo\MasterCard\Plugin\Gateway\Request;
class ShippingDataBuilder {
public function afterBuild(array $subject, $result) {
array_walk_recursive($result, function(&$value) {
$value = mb_convert_encoding($value, 'ISO-8859-1', 'UTF-8');
}
return $result;
}
}
您必须对所有生成错误数据的构建器执行此操作。
出于某些原因,当我使用 OnTap MasterCard Extension
时,送货地址中的任何阿拉伯字符都会引发错误:
INVALID_REQUEST: Field [order.avsDetails.billToFirstname] was not in charset [ISO-8859-1]
分机 link :
https://marketplace.magento.com/ontap-module-mastercard.html
请帮忙。
您可以尝试使用插件对 Builders(在 Gateway/Request
文件夹内)生成的数据进行编码。
您可以详细了解如何创建插件 here,以便在需要时对构建器中的所有字段执行编码。
您将创建一个新模块,对您从市场上获取的扩展进行所需的修改。
要在这种情况下定义您的构建器,您的 di.xml
将类似于:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="\OnTap\MasterCard\Gateway\Request\ShippingDataBuilder">
<plugin name="jsparo_ontap_mastercard_gateway_request_shippingdatabuilder" type="Jsparo\MasterCard\Plugin\Gateway\Request\ShippingDataBuilder" sortOrder="1"/>
</type>
</config>
你的 Plugin/Gateway/Request/ShippingDataBuilder.php
会是这样的:
<?php
namespace Jsparo\MasterCard\Plugin\Gateway\Request;
class ShippingDataBuilder {
public function afterBuild(array $subject, $result) {
array_walk_recursive($result, function(&$value) {
$value = mb_convert_encoding($value, 'ISO-8859-1', 'UTF-8');
}
return $result;
}
}
您必须对所有生成错误数据的构建器执行此操作。