epsilon.phpでエラーが出てしまいました。
こんばんは。いつもお世話になります。
paypal決裁は上手くできたのですが、イプシロン決裁の組み込みで苦労しております。
所定事項を記載し、モジュールを稼働させたところ、以下のようなメッセージが出て参ります。
どこを、どのように対応すればいいでしょうか?
状況は、発送・支払い方法でクレジット決裁(epsilon.php)を選択した後、内容確認のページに移り、
画面下に「上記の内容で注文」というボタンを押したのち、以下のエラーが出て来ます。 ログは生成されていません。
Warning: mb_convert_encoding() [function.mb-convert-encoding]: Unable to detect character encoding in /home/(略)/wp-content/plugins/usc-e-shop/settlement/epsilon.php on line 87
Warning: Cannot modify header information – headers already sent by (output started at /home/(略)/wp-content/plugins/usc-e-shop/settlement/epsilon.php:87) in /home/(略)/wp-content/plugins/usc-e-shop/settlement/epsilon.php on line 97
epsilon.phpはUTF-8で作成されていることを確認しております。
稼働環境は、さくらインターネット(共有SSL)で、WP2.9+Welcart0.40 です。
以上、お手数ですが宜しくお願いいたします。
カテゴリー: 未分類


使用中のテーマフォルダ内にある、functions.phpを確認してみて下さい。
PHP分の頭、または最後尾にスペースが入っている為に起きているエラーでは!?
スペースがある場合は削除して下さい。エラーは消えると思います。
(誤ってPHP分を削除しないよう注意して下さい。)
それでもエラーが消えない場合は、使用中のプラグインに問題ありです。
コメントありがとうございます。functions.phpはオリジナルのままの日付ですので、ノータッチです。
試しに、今回とは別にWPを用意し、最新のwelcart042をインストール、ソースに対するカスタマイズは一切無しという条件で買い物をしてみましたが、なんとURLが若干異なる以外は同じセンテンスと番号のエラーメッセージが出ます。
さくらインターネットの問題なのか、それともイプシロンに蹴られているのか、悩んでおります。
とりあえず多くの対応事例に習い、mb_convert_encodingの引数のうち、autoを削除したところ、イプシロンの決裁サイト(テスト環境)まで進むようになりました。
そして、インチキクレジットカード番号を打ち込むと無事に決裁完了しましたので、welcartの管理画面に入って入金状況を確認しますと、なんと何も状態表示が無く、「ブランク」になっております。(XX)
注文番号をクリックし、詳細を見てみますと、左の「ステータス欄」に対応状態と入金状態の欄があるはずなのに、なんと対応状態の欄しか現れていません。
カートの方はちゃんとクリアされており、電子メールも受注完了で送信されているのですが・・・。
どうしたものでしょうか。
ちなみにwelcartは0.42にアップグレードしています。
こんにちは。
恐らく認証が通らず空のresultが返されているのがエラーの原因だと推測します。
認証が通らない原因は、
・$contract_codeが違う
・$interface_urlがテスト用のURLになっていない
・オーダー情報発信元ホスト情報のIPアドレスが違っている
などが考えられます。
nanbuさん、おはようございます。
いただいたアドバイスは、「Warning」エラーの所という理解でよろしいでしょうか?
クレジットカードのステータス無表示とも関連するでしょうか。
失礼しました。認証は通っているんですね。
mb_convert_encodingの引数”auto”でエラーが出たのはphp.ini で”auto”が使えないようになっているのが原因のようです。”auto”を外してうまく行ったのは多分イプシロンの文字コードと内部文字エンコーディングが同じだったためかと・・・
いずれにしても”auto”ではまずいようなので修正したいと思います。
クレジット決済の場合は入金状況が表示されません。
やはり皆さんこの「入金状況」と言う項目についてわかりにくいという声が多いので変更しようと思います。
Welcartは代金回収までは管理できません。ここにある「入金状況」は商品を発送しても良いかどうかを判断するための確認フラグとして設置しています。クレジット決済のときは日本では入金確実なので”即発送”と言う意味で入金状況は表示させていません。
つまり入金状況の「入金済み」は発送しても良いですよという意味で、「未入金」はまだ発送してはいけませんよという意味になります。
クレジット決済は注文があった段階では未入金です。でも即発送しますので入金状況は表示させていないのです。
「入金状況」ではなくて、この項目をなんと呼んだらいいでしょう。良いネーミングを募集いたします。
nanbuさん、ありがとうございます。現在の現象が肯定的に捉えられたので安堵しています。
確かにphp.iniにコマンドが記載されていませんでした。ちゃんと定義しないといけなかったんですね。(汗)
「入金状況」は「入金管理」と改称し、プログラムで自動制御するのではなく、備忘欄として人手で変更できるようにドロップダウンボックスにしてはどうかと思います。
どうせ入金をこの目で確認しないといけないのですから・・・・。
以上、どうもありがとうございました。