バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 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
居住地:
投稿: 7365
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
居住地:
投稿: 7365
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
居住地:
投稿: 7365
Re: F-REGI決済モジュールのエラー文言文字化け
チケットを登録しました。
http://svn.ec-cube.net/open_trac/ticket/444


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

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


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,297名です
総投稿数は109,692件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

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