警告,这不适合胆小的人(对不起长度)....我们已经实施了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命中我的自定义方法时,它是一个对象(不是数组),因此解决方法是将其强制转换为数组,但是,当它到达标准方法时,它是一个数组开始(我不需要帮助,因为它工作)。
我认为那里必须有一些解释这些奇怪的问题。如果有人对如何解决这个问题有任何建议,或任何关于为什么继承类可能会破坏事物的信息/经验,那将非常感激。
答案 0 :(得分:0)
我们还没有完全解决这个问题,但我们已经顺利完成了。我们正在开发Windows堆栈,并使用UTF-8编码手动保存了我的客户模型。但是,我的合作伙伴开发了他的所有PayPal扩展,并没有将其保存为UTF-8。当他将我的模型转换回ANSI格式时,他的代码可以工作,所以现在他将尝试反过来(制作他的UTF-8)并检查它。如果有人对编码和开发平台提出建议,我仍然希望听到它。