Magento:删除“paypal/express/review”步骤的简单方法

问题描述 投票:0回答:4

在magento中使用paypal订购时,它会带你到paypal,paypal已经显示确认信息,你确认后,你会被重定向到另一个确认页面(/paypal/express/review),这是一个额外的步骤,对于用户体验来说是不必要的,我想删除它并让用户在 paypal 页面上确认时自动下订单,一旦离开 paypal 如果订单成功,客户应该看到成功页面。

是否有任何简单的解决方案,我可能忽略了,或者至少你可以指出我正确的方向来删除该步骤。

php magento paypal
4个回答
13
投票

实际上,Express Checkout 可以解决这个问题,没有问题,我个人建议坚持使用。

在 SetExpressCheckout 请求之后,您将用户重定向到 PayPal。您可以将 useraction=commit 附加到此 URL,以触发 PayPal 页面的确认。

这会导致 PayPal 上的“继续”按钮切换为“付款”按钮,并通知用户这是最终确认...单击“付款”将提交付款。

您仍然需要在服务器上调用 DoExpressCheckoutPayment 来完成该过程,但此时 GetExpressCheckoutDetails 是可选的。使用 useraction=commit 时,您将获得 PayerID 作为 ReturnURL 中的 URL 参数,因此如果您不想/不需要,则不必调用 GECD。

您可以进一步进行所有设置,并使用回调 API(也称为即时更新 API)将运费和销售税信息提供给 PayPal 审核页面。这允许您根据 PayPal 审核页面上选择的用户送货地址,使用您自己的送货数据填充 PayPal 审核页面上的下拉值。

引入这些功能是为了完全按照您指定的方式进行...消除额外的审核过程。

综上所述,如果 Express Checkout 的 Magento 模块没有提供所有这些选项,您需要扩展它并自己构建它们。不过我确实很漂亮。


11
投票

实际上这里提到的所有解决方案都需要编辑Magento核心。这被称为“不好的做法”,并且不会使您的商店保持更新。 要获得

干净的解决方案

需要做什么:

创建一个模块(在我的示例中:Avoe_Paypal)以包含更改
  1. 重写 Paypal 配置
  2. 重定向到贝宝快速审核步骤,即
  3. http://yourdomain.com/paypal/express/review/
1) 创建模块

Avoe/Paypal/etc/config.xml

<?xml version="1.0" encoding="UTF-8"?> <config> <modules> <Avoe_Paypal> <version>0.1.0</version> </Avoe_Paypal> </modules> <global> <models> <Avoe_Paypal> <class>Avoe_Paypal_Model</class> </Avoe_Paypal> <paypal> <rewrite> <config>Avoe_Paypal_Model_Config</config> </rewrite> </paypal> </models> <events> <controller_action_predispatch_paypal_express_review> <observers> <avoe_paypal_predispatch> <type>singleton</type> <class>Avoe_Paypal_Model_Observer</class> <method>paypalExpressReturnPredispatch</method> </avoe_paypal_predispatch> </observers> </controller_action_predispatch_paypal_express_review> </events> </global> </config>

应用程序/etc/Avoe_Paypal.xml

<?xml version="1.0" encoding="UTF-8"?> <config> <modules> <Avoe_Paypal> <active>true</active> <codePool>local</codePool> <depends> <Mage_Paypal /> </depends> </Avoe_Paypal> </modules> </config>

2)重写配置,添加用户操作“commit”:

<?php class Avoe_Paypal_Model_Config extends Mage_Paypal_Model_Config { /** * Get url for dispatching customer to express checkout start * Added useraction 'commit' to remove PayPal Express Checkout review page * * @param string $token * @return string */ public function getExpressCheckoutStartUrl($token) { return $this->getPaypalUrl(array( 'cmd' => '_express-checkout', 'useraction' => 'commit', 'token' => $token, )); } }

3)创建观察者进行重定向:

<?php class Avoe_Paypal_Model_Observer { function paypalExpressReturnPredispatch($observer) { Mage::app()->getResponse()->setRedirect(Mage::getUrl('*/*/placeOrder')); } }

还有一个昨天刚刚发布的小型 Magento 扩展,用于删除审核步骤:

https://github.com/tim-bezhashvyly/Sandfox_RemovePaypalExpressReviewStep


9
投票

现在可以在 1.9 中配置。


9
投票

1。前往:

p

© www.soinside.com 2019 - 2024. All rights reserved.