0

警告,这不适合胆小的人(对不起,篇幅太长)......我们已将 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命中我的自定义方法时,它是一个对象(不是数组),所以解决方法是强行将其转换为数组,然而,当它到达标准方法时,它是一个开始的数组(我不需要帮助,因为它有效)。

我认为其中一些奇怪的问题必须有一个解释。如果有人对如何解决这个问题有任何建议,或者有任何关于继承类为什么会破坏事物的信息/经验,我们将不胜感激。

4

1 回答 1

0

我们还没有完全解决这个问题,但我们已经在路上了。我们正在 Windows 堆栈上进行开发,我使用 UTF-8 编码手动保存了我的客户模型。但是,我的伙伴开发了他所有的 PayPal 扩展程序,并没有将其保存为 UTF-8。当他将我的模型转换回 ANSI 格式时,他的代码可以工作,所以现在他将尝试相反的方式(制作他的 UTF-8)并检查它。如果有人对编码和开发平台有建议,我还是想听听。

于 2013-08-01T14:50:21.457 回答