Magento Paypal Express和标准代码差异-空篮

Magento Paypal Express和标准代码差异-空篮,magento,Magento,在magento上使用paypal时,有两个明确的选择,标准和快速 实际上,它们之间的区别很容易混淆,但其中一个主要区别是,paypal standard在重定向到paypal时立即完成订单,而express则没有 这本质上意味着用户篮在转移到paypal时使用paypal标准得到清除,如果他们单击后退,他们将没有篮 在代码中的哪个确切点发生这种情况 我可以在magento中看到两种付款方式: app\code\core\Mage\Paypal\Model\Express.php 及 但我看不

在magento上使用paypal时,有两个明确的选择,标准和快速

实际上,它们之间的区别很容易混淆,但其中一个主要区别是,paypal standard在重定向到paypal时立即完成订单,而express则没有

这本质上意味着用户篮在转移到paypal时使用paypal标准得到清除,如果他们单击后退,他们将没有篮

在代码中的哪个确切点发生这种情况

我可以在magento中看到两种付款方式:

app\code\core\Mage\Paypal\Model\Express.php


但我看不出magento在哪里允许express继续订单

基于代码快速检查的部分答案,也许这至少会为您指明正确的方向。让我知道你发现了什么,我会尝试做一些额外的挖掘,并提供更多的细节

// Mage_Paypal_StandardController
public function redirectAction()
{
    $session = Mage::getSingleton('checkout/session');
    $session->setPaypalStandardQuoteId($session->getQuoteId());
    $this->getResponse()->setBody($this->getLayout()->createBlock('paypal/standard_redirect')->toHtml());
    $session->unsQuoteId();
    $session->unsRedirectUrl();
}
请注意,quote_id在签出/会话中未设置。那可能就行了

在Express controller中,我没有看到任何位置的
quote\u id
未设置:

// Mage_Paypal_Controller_Express_Abstract
public function placeOrderAction()
{
    ...
}

部分答案基于对代码的快速检查,也许这至少会为您指明正确的方向。让我知道你发现了什么,我会尝试做一些额外的挖掘,并提供更多的细节

// Mage_Paypal_StandardController
public function redirectAction()
{
    $session = Mage::getSingleton('checkout/session');
    $session->setPaypalStandardQuoteId($session->getQuoteId());
    $this->getResponse()->setBody($this->getLayout()->createBlock('paypal/standard_redirect')->toHtml());
    $session->unsQuoteId();
    $session->unsRedirectUrl();
}
请注意,quote_id在签出/会话中未设置。那可能就行了

在Express controller中,我没有看到任何位置的
quote\u id
未设置:

// Mage_Paypal_Controller_Express_Abstract
public function placeOrderAction()
{
    ...
}

Express和Standard之间的实际流程不同

PayPal Express

用户在选择付款方式后(显然是在订单完成之前)直接被重定向到PayPal。在授权PayPal付款后,他们返回网站完成订单

贝宝标准

用户完成整个结账过程,并在现场完成订单。然后他们会被重定向到PayPal来整理付款。他们不需要回到网站来完成订单,因为在重定向到PayPal之前订单已经完成。这就是为什么无论您是否在PayPal支付,如果您返回该网站,您都会看到一个空篮子-报价已经转换为订单。

所以从这个意义上说,PayPal express本质上是一种结算方式,而PayPal标准则是一种支付方式


关于这一切发生在代码中的确切位置

PayPal Express

使用在-中调用的方法,以便在如上所述完成订单之前重定向

贝宝标准

使用在中调用的


请查看链接以了解所有事情发生的确切代码点。

Express和Standard之间的实际流程不同

PayPal Express

用户在选择付款方式后(显然是在订单完成之前)直接被重定向到PayPal。在授权PayPal付款后,他们返回网站完成订单

贝宝标准

用户完成整个结账过程,并在现场完成订单。然后他们会被重定向到PayPal来整理付款。他们不需要回到网站来完成订单,因为在重定向到PayPal之前订单已经完成。这就是为什么无论您是否在PayPal支付,如果您返回该网站,您都会看到一个空篮子-报价已经转换为订单。

所以从这个意义上说,PayPal express本质上是一种结算方式,而PayPal标准则是一种支付方式


关于这一切发生在代码中的确切位置

PayPal Express

使用在-中调用的方法,以便在如上所述完成订单之前重定向

贝宝标准

使用在中调用的

请查看链接,了解所有事情发生的确切代码点