我创建了一个自定义Magento模块来检查来自Paypal的被禁客户。并且我超越了returnfromPaypal功能:
public function returnFromPaypal($token)
{
$this->_getApi();
$this->_api->setToken($token)->callGetExpressCheckoutDetails();
// import billing address
$billingAddress = $this->_quote->getBillingAddress();
$exportedBillingAddress = $this->_api->getExportedShippingAddress();
foreach ($exportedBillingAddress->getExportedKeys() as $key) {
if (array_key_exists($key, $dataOrg))
{
$billingAddress->setData($key, $dataOrg[$key]);
}
}
$this->_quote->setBillingAddress($billingAddress);
if( $this->isCustomerBanned( $this->_quote->getBillingAddress()->getEmail() ) )
{
Mage::throwException(Mage::helper('paypal')->__('Sorry!, We cant process you order this time.'));
}
else
{
parent::returnFromPaypal($token);
}
}
但问题是,在引用$billingAddress
中第一次保存$this->_quote->getBillingAddress()->getEmail()
时,这将是空白的。
我想知道是否还有另一种方法可以直接从$exportedBillingAddress
搜索客户电子邮件,以便为其搜索文档。但没有找到。
提前致谢
答案 0 :(得分:0)
我能够弄清楚这一点。我需要的只是覆盖prepareOrderReview()
而不是returnfromPaypal()
。