警告,这不适合胆小的人(对不起,篇幅太长)......我们已将 PayPal 透明重定向作为自定义付款方式实施。总而言之,我们有一种自定义付款方式,它可以使用信用卡并将其提交给 PayPal,而信用卡号永远不会访问我们的服务器。它从客户端获取数字,添加一些 Ajax、JSON 和 js,然后瞧(!),您将获得信用卡批准并在 Magento 中提交订单。问题是这很好用,除非另一个重写 Mage_Customer 的自定义模块处于活动状态。我已将其范围缩小到我已覆盖的一个模型。如果我仅在我的配置中为该模型注释掉重写节点,则透明重定向可以正常工作。我已经确定它不是这些模型中的代码,因为我已经删除了 100% 的代码。
<?php
class Mycompany_Customer_Model_Customer extends Mage_Customer_Model_Customer
{
}
当请求发送到 PayPal 时,仅此一项就会以某种方式导致 JSON 解析错误。将子类作为可能破坏 javascript 的过程的一部分有什么问题吗?我对 JavaScript 或 JSON 不是很有经验,但我知道响应正在返回,它看起来与成功响应相同,但以某种方式触发了“OnException”。这是消息:SyntaxError:JSON.parse:意外字符。
我什至不明白这两者有什么关系。尽管过去我们遇到过与模型覆盖相关的其他奇怪问题。比如我对Customer Create API做了一个重写,添加了一个额外的属性,当传入的XML命中我的自定义方法时,它是一个对象(不是数组),所以解决方法是强行将其转换为数组,然而,当它到达标准方法时,它是一个开始的数组(我不需要帮助,因为它有效)。
我认为其中一些奇怪的问题必须有一个解释。如果有人对如何解决这个问题有任何建议,或者有任何关于继承类为什么会破坏事物的信息/经验,我们将不胜感激。