0

警告、これは気弱な人向けではありません (長文で申し訳ありません)...カスタムの支払い方法として PayPal 透明リダイレクトを実装しました。要するに、クレジット カード番号をサーバーに送信することなく、クレジット カードを使用して PayPal に送信するカスタムの支払い方法があります。クライアント側から番号を取得し、Ajax、JSON、および js を振りかけると、ほら (!)、クレジット カードの承認が得られ、注文が Magento に送信されます。問題は、Mage_Customer を書き換える別のカスタム モジュールがアクティブな場合を除いて、これがうまく機能することです。上書きしたモデルを 1 つに絞り込みました。そのモデルだけの設定で書き換えノードをコメントアウトすると、透過的なリダイレクトは正常に機能します。100% 削除したので、それらのモデル内のコードではないと判断しました。

 <?php


 class Mycompany_Customer_Model_Customer extends Mage_Customer_Model_Customer
 {
 }

これだけでも、リクエストが PayPal に送信されるときに JSON 解析エラーが発生します。JavaScriptを壊す可能性のあるプロセスの一部として子クラスを持つことについて何かありますか? 私は JavaScript や JSON の経験があまりありませんが、応答が戻ってくることは知っています。成功応答と同じように見えますが、何らかの理由で "OnException" がトリガーされています。これはメッセージです: SyntaxError: JSON.parse: 予期しない文字。

2つがどのように関連している可能性があるかさえわかりません。過去にモデルのオーバーライドに関連する他の奇妙な問題がありましたが。たとえば、Customer Create API を書き直して追加の属性を追加したところ、受信した XML がカスタム メソッドにヒットすると、それは (配列ではなく) オブジェクトなので、回避策として、強制的に配列に変換しました。ただし、標準メソッドに到着すると、最初は配列になります (これは機能するので、これについては助けは必要ありません)。

これらの奇妙な問題のいくつかについては、そこに説明があるに違いないと思います。これをトラブルシューティングする方法についてアドバイスがある場合、または継承されたクラスが問題を引き起こす可能性がある理由についての情報/経験がある場合は、大歓迎です。

4

1 に答える 1

0

これはまだ完全には解決していませんが、順調に進んでいます。私たちは Windows スタックで開発を行っており、顧客モデルを UTF-8 エンコーディングで手動で保存しました。しかし、私のパートナーはすべての PayPal 拡張機能を開発し、UTF-8 で保存しませんでした。彼が私のモデルを ANSI 形式に戻すと、彼のコードは機能するので、今度は逆の方法で (UTF-8 を作成して) 試してみて、それをチェックします。エンコーディングと開発プラットフォームに関するアドバイスがあれば、ぜひ聞きたいです。

于 2013-08-01T14:50:21.457 に答える