gpt4 book ai didi

magento - 如何在 Magento 中关闭 PayPal IPN?

转载 作者:太空宇宙 更新时间:2023-11-03 15:53:51 25 4
gpt4 key购买 nike

当人们在我的 Magento 网上商店使用 PAyPal 成功付款时,它会自动创建一个具有唯一发票编号的发票。出于簿记原因,我必须禁用它。

我已经搜索了几周,但仍未找到解决此问题的方法。目前我所知道的是这是由 IPN 引起的。问题是我不知道如何在不损坏我的商店或 Paypal 付款的情况下关闭它。

更多规范:- 版本:Magento 1.6.2.0- 标准 Paypal

包含 IPN 的文件:www/app/code/core/Mage/Paypal/controllers

最佳答案

“关闭它”有点含糊,但在 Magento 端没有配置设置允许您使用 IPN 系统接受 PayPal 标准付款但不创建发票。您正在考虑编写自定义代码来执行此操作。这里有一些起点。

PayPal IPN 使用回调 URL。也就是说,一旦 PayPal 处理了付款,它就会从 Magento 获取一个特定的 URL,并在 post 字段中包含一组特定的数据。然后,根据这些信息,采取适当的行动(创建发票、开立信用证等)。因此,实现目标的最快方法是更改​​ PayPal 配置中的 IPN URL。这意味着 PayPal 仍在通知 URL,而不是 Magento URL,并且永远不会创建发票。

如果这不起作用或有 Not Acceptable 副作用,这里是您感兴趣的代码点。假设您使用的是标准的 Magento PayPal 设置,IPN URL 配置为

http://yourstore.example.com/paypal/ipn/

Magento 将使用 indexAction 方法处理这个请求

#File: app/code/core/Mage/Paypal/controllers/IpnController.php
public function indexAction()
{
if (!$this->getRequest()->isPost()) {
return;
}

try {
$data = $this->getRequest()->getPost();
Mage::getModel('paypal/ipn')->processIpnRequest($data, new Varien_Http_Adapter_Curl());
} catch (Exception $e) {
Mage::logException($e);
}
}

此方法的业务逻辑(包括您的发票创建)从 paypal/ipn 模型开始。在标准系统中,这解析为类

#File: app/code/core/Mage/Paypal/Model/Ipn.php
class Mage_Paypal_Model_Ipn
{
....
}

从此处跟踪代码以找到您要重写 的方法并实现您想要的功能更改(而不是创建发票)。最好的办法是设置一个 PayPal 开发人员沙箱帐户,这样您就可以反复点击 URL,直到您将代码追踪到正确的位置。

祝你好运!

关于magento - 如何在 Magento 中关闭 PayPal IPN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9369069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com