バージョン選択

フォーラム

メニュー

オンライン状況

25 人のユーザが現在オンラインです。 (17 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 24
468 もっと...

サイト内検索

質問 > フロント機能 > F-REGI決済モジュールのエラー文言文字化け

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
Klif
投稿日時: 2009/4/23 13:43
対応状況: −−−
半人前
登録日: 2009/4/23
居住地: 神奈川県
投稿: 22
F-REGI決済モジュールのエラー文言文字化け
決済モジュール内の文字コード変換について
以下のケースで解決できずに困っています。
どなたかアドバイスいただけると助かります。
よろしくお願いします。


【開発環境】
IIS(アイルのレンタルサーバー「インフィニート」)
PHP5
MySQL4
php.iniの変更は不可
mb_stringのデフォルト
-------------------------
mbstring.detect_order:auto
mbstring.encoding_translation:Off
mbstring.func_overload:0
mbstring.http_input:UTF-8
mbstring.http_output:UTF-8
mbstring.internal_encoding:UTF-8
mbstring.language:neutral
mbstring.strict_detection:Off
mbstring.substitute_character:none
--------------------------

【現象】
カードもしくはコンビニを選択肢決済時に
カード番号や電話番号に入力ミスがあった場合
FREGI側のサーバーより所定のエラーコード+エラーメッセージ(日本語)
が返され、それが表示されますが
エラーメッセージ(日本語)部分が文字化けしています。
【対応】
FREGI側に連絡すると、エラーメッセージは「EUC-JP」でしか渡せないとのこと。
.htaccessでまたは、mb_convert_encodingで試したのですがなおりません。

ramrun
投稿日時: 2009/4/23 13:51
対応状況: −−−
仙人
登録日: 2006/11/3
居住地:
投稿: 789
Re: F-REGI決済モジュールのエラー文言文字化け
そのあたりの処理をみないで書いているのでハズレかもしれませんが...
引用:
mbstring.http_input:UTF-8
だから、mb_convert_encodingをやる以前に変になっているのではないでしょうか?

mbstring.http_inputをpassにできませんか?
Klif
投稿日時: 2009/4/23 14:28
対応状況: −−−
半人前
登録日: 2009/4/23
居住地: 神奈川県
投稿: 22
Re: F-REGI決済モジュールのエラー文言文字化け
早速のご回答ありがとうございます。

アドバイス通り変更してみましたがやはり以下のような状態でした。

--------------------
エラーが発生しました。
C1-1-73(����ӥ���ʸ�������TEL��û�����ޤ�)
--------------------
↑この化けている箇所は、ブラウザからテキストエンコーディングを「日本語EUC」
指定するとC1-1-73(コンビニ注文処理時のTELが短すぎます)のように表示されます

ブラウザのURLは以下なので
shopping/load_payment_module.php

.htaccessは「/html/shopping/」配下に設置致しました。

以上、何かアドバイスいただけると嬉しいです。
seasoft
投稿日時: 2009/4/23 14:39
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7333
Re: F-REGI決済モジュールのエラー文言文字化け
引用:
↑この化けている箇所は、ブラウザからテキストエンコーディングを「日本語EUC」
指定するとC1-1-73(コンビニ注文処理時のTELが短すぎます)のように表示されます

だとしたら、mb_convert_encoding で良いと思うんですけどね。
どのようなコードを書いたか、貼っておくと良いのでは?


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

ramrun
投稿日時: 2009/4/23 15:41
対応状況: −−−
仙人
登録日: 2006/11/3
居住地:
投稿: 789
Re: F-REGI決済モジュールのエラー文言文字化け
ちと気になったので追っかけてみました。
data/downloads/module/mdl_fregi/LC_Page_Mdl_Fregi_Payment.phpでデータのやり取りをしているようです。

情報をsendPost()して$responseに受け取り、sendDataで完了画面へリダイレクト、またはエラー画面へ。

で、sendPost()で$responseにデータを受け取って、そこにエラーメッセージなども格納されてくるようですが、その後
$response = mb_convert_encoding($response, CHAR_CODE, "auto");
という処理になっています。
$responseは配列なので、mb_convert_encodingが効いていない模様。

そっちを直すのが正当と思いますが、sendData()の
$this->tpl_error = "エラーが発生しました。<br/>". $this->message;
をmb_convert_encodingで処理したほうがとりあえず他に影響が出ずに安心かと。
Klif
投稿日時: 2009/4/23 17:24
対応状況: −−−
半人前
登録日: 2009/4/23
居住地: 神奈川県
投稿: 22
Re: F-REGI決済モジュールのエラー文言文字化け
ご丁寧ご親切なアドバイス恐縮です。

私もはじめ、$responseに対して

$response=mb_convert_encoding($response,"UTF-8","EUC-JP");

としたのですが、結果は

Array

とだけ表示され、「あー、配列なんだ」となり

$response[1]にmb_convert_encodingをかけると同じく

Array

とだけ表示され

最後に、ご指摘の

$this->tpl_error = "エラーが発生しました。<br/>". $this->message;

部分へのmb_convert_encodingの記述が悪かったのか、

ファイルが壊れてしまい

バックアップしておいたファイルに戻し、断念してしまいました。

【以下の記述では上手く行きませんでした】

$this->message=mb_convert_encoding($this->message,"UTF-8","EUC-JP");

よろしければご教示お願いしたいと思います。

Klif
投稿日時: 2009/4/23 17:26
対応状況: −−−
半人前
登録日: 2009/4/23
居住地: 神奈川県
投稿: 22
Re: F-REGI決済モジュールのエラー文言文字化け
ご指摘ありがとうございます。

どうしても解決しなければ有償でお願いしたいと思いますので
その際にはお世話になります。

引き続きよろしくお願いします。
seasoft
投稿日時: 2009/4/23 17:31
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7333
Re: F-REGI決済モジュールのエラー文言文字化け
とりあえず、
$this->message=mb_convert_encoding($this->message,"UTF-8","EUC-JP");
の前後で、当該変数を var_dump して、どうなっているか辺りが気になるところです。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

Klif
投稿日時: 2009/4/23 23:51
対応状況: −−−
半人前
登録日: 2009/4/23
居住地: 神奈川県
投稿: 22
Re: F-REGI決済モジュールのエラー文言文字化け
アドバイス通り、var_dumpしてみたところ
Array[0]に全ての変数が入っていました。
そこで、以下のコードを書いて試してみたところ
文字コードをコンバートする事が出来ました。

本当にありがとうございます。
お二人のお陰で助かりました。

また、今後同じケースでつまずく方のヘルプになれば幸いです。


$this->message[0]=mb_convert_encoding($this->message[0],"UTF-8","EUC-JP");
$this->tpl_error = "エラーが発生しました。<br/>". $this->message[0];
seasoft
投稿日時: 2009/4/24 11:40
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7333
Re: F-REGI決済モジュールのエラー文言文字化け
チケットを登録しました。
http://svn.ec-cube.net/open_trac/ticket/444


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

(1) 2 3 4 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は72,983名です
総投稿数は102,060件です

投稿数ランキング

1
seasoft
7333
2
468
3072
3
AMUAMU
2712
4
nanasess
2174
5
umebius
2030
6
yuh
1612
7
red
1453
8
h_tanaka
1090
9
tsuji
936
10
fukap
907
11
shutta
835
12
tao_s
793
13 ramrun 789
14 karin 689
15 sumida 641
16
homan
633
17 DELIGHT 572
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.