微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Magento 2.3多网站商店-PayPal Express Checkout付款错误-null上的getId函数

如何解决Magento 2.3多网站商店-PayPal Express Checkout付款错误-null上的getId函数

网站1(美国)正常工作,网站2(澳大利亚)无效,两者的配置相同。

如果客户尝试通过卡付款,出现以下错误

Fatal error: Uncaught Error: Call to a member function getId() on null in /var/www/html/test/app/code/Magento/Paypal/Model/Api/Nvp.PHP:1524 Stack trace: 
#0 /var/www/html/test/app/code/Magento/Paypal/Model/Api/Nvp.PHP(1493): Magento\Paypal\Model\Api\Nvp->_applyStreetAndRegionWorkarounds(Object(Magento\Framework\DataObject)) 
#1 /var/www/html/test/app/code/Magento/Paypal/Model/Api/Nvp.PHP(849): Magento\Paypal\Model\Api\Nvp->_exportAddresses(Array) 
#2 /var/www/html/test/app/code/Magento/Paypal/Model/Express/Checkout.PHP(621): Magento\Paypal\Model\Api\Nvp->callGetExpressCheckoutDetails() 
#3/var/www/html/test/app/code/Magento/Paypal/Controller/Express/AbstractExpress/ReturnAction.PHP(32): Magento\Paypal\Model\Express\Checkout->returnFromPaypal('*********') 
#4/var/www/html/test/generated/code/Magento/Paypal/Controller/Express/ReturnAction/Interceptor.PHP(24): Magento\Paypal\Controller\Express\AbstractExpress\ReturnAction->execute() 
#5 /var/www/html/test/lib/internal/Magento/Framework/App/Action/Ac in /var/www/html/test/app/code/Magento/Paypal/Model/Api/Nvp.PHP on line 1524

代码

protected function _applyStreetAndRegionWorkarounds(DataObject $address)
{
    // merge street addresses into 1
    if ($address->getData('street2') !== null) {
        $address->setStreet(implode("\n",[$address->getData('street'),$address->getData('street2')]));
        $address->unsetData('street2');
    }
    // attempt to fetch region_id from directory
    if ($address->getCountryId() && $address->getRegion()) {
        $regions = $this->_countryFactory->create()->loadByCode(
            $address->getCountryId()
        )->getRegionCollection()->addRegionCodeOrNameFilter(
            $address->getRegion()
        )->setPageSize(
            1
        );
        $regionItems = $regions->getItems();
        $region = array_shift($regionItems);
        $address->setRegionId($region->getId());
        $address->setExportedKeys(array_merge($address->getExportedKeys(),['region_id']));
    }
}

如何解决错误

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。