2013-07-31 29 views
0

警告,這不適用於心髒模糊(對不起長度)....我們實施了PayPal透明重定向作爲自定義付款方式。其長短之處在於,我們有一種自定義付款方式,可以使用信用卡並將其提交給PayPal,而無需使用信用卡號碼登錄我們的服務器。它從客戶端獲取數字,撒上一些Ajax,JSON和js,以及瞧(!),您將獲得信用卡許可,並且訂單將在Magento中提交。問題是這很好,除非重寫Mage_Customer的另一個自定義模塊處於活動狀態。我已經把它縮小到一個我已經覆蓋的模型。如果我在我的配置中爲那個模型註釋掉重寫節點,透明重定向工作正常。我已經確定它不是這些模型中的代碼,因爲我已經刪除了它的100%。只是聲明依然存在:Magento客戶模型重寫導致看似無關的JSON解析錯誤

<?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

我們還沒有完全解決這個問題,但我們很順利。我們正在Windows堆棧上開發,並手動保存UTF-8編碼的客戶模型。但是,我的合作伙伴開發了他所有的PayPal擴展,並沒有將它保存在UTF-8中。當他將我的模型轉換回ANSI格式時,他的代碼可以工作,所以現在他會嘗試使用它(製作他的UTF-8)並檢查它。如果有人對編碼和開發平臺有任何建議,我仍然希望聽到它。