我正在使用Magento 2.2.2。 最近我安装了一个名为Paygate的支付网关。不幸的是,我在重新定向到支付网关时遇到此错误。 当我禁用FPC(整页缓存)时,重定向工作完美。不幸的是,当FPC被禁用时,该站点非常慢。 一旦启用FPC,我就会收到错误
致命错误:未捕获错误:在/home/vapour/public_html/app/code/Paygate/Paygate/Model/Paygate.php:328中调用null成员函数getCountryId()堆栈跟踪:#0 / home / vapor / public_html / generated / code / Paygate / Paygate / Model / Paygate / Interceptor.php(76):Paygate \ Paygate \ Model \ Paygate-> getStandardCheckoutFormFields()#1 / home / vapor / public_html / app / code / Paygate /Paygate/Block/Payment/Request.php(66):Paygate \ Paygate \ Model \ Paygate \ Interceptor-> getStandardCheckoutFormFields()#2 / home / vapor / public_html / vendor / magento / framework / View / Element / AbstractBlock。 php(272):Paygate \ Paygate \ Block \ Payment \ Request-> _prepareLayout()#3 /home/vapour/public_html/vendor/magento/framework/View/Layout/Generator/Block.php(150):Magento \ Framework \ View \ Element \ AbstractBlock-> setLayout(Object(Magento \ Framework \ View \ Layout \ Interceptor))#4 /home/vapour/public_html/vendor/magento/framework/View/Layout/GeneratorPool.php(80) :Magento \ Framework \ View \ Layout \ Generator \ Block-> process(Object(Magent o \ Framework \ View \ Layout \ Reader \ Context),Object(Magento在/home/vapour/public_html/app/code/Paygate/Paygate/Model/Paygate.php第328行
以下是来自Paygate.php的代码
这是第327-355行
$billing = $order->getBillingAddress();
$country_code2 = $billing->getCountryId();
$country_code3 = '';
if ( $country_code2 != null || $country_code2 != '' ) {
$country_code3 = $this->getCountryDetails( $country_code2 );
}
if ( $country_code3 == null || $country_code3 == '' ) {
$country_code3 = 'ZAF';
请帮助!!!
答案 0 :(得分:0)
问题在于$order->getBillingAddress();
您在null上调用getCountryId方法,这意味着$order->getBillingAddress()
失败。
您可以做的是仔细检查$ order-> getBillingAddress()是否成功然后调用billing->getCountryId();