yokoye

投稿の際は下記の情報をお書き添えください。
-------------------------------------------
WordPress のバージョン:(例 6.0.2)
Welcart のバージョン:(例 2.8.1)
PHP のバージョン:(例 8.0)
Welcart専用の拡張プラグインとバージョン:(例 DL Seller 3.4.1、SKU Select 1.4.2)
ご利用の親テーマとバージョン :(例 Welcart Basic 1.7.1)
ご利用の子テーマとバージョン :(例 Welcart Beldad 1.4)
症状を確認したブラウザ:
サーバー【重要】:(会社名、サービス名)
--------------------------------------------

フォーラムへの返信

6件の投稿を表示中 - 1 - 6件目 (全6件中)
  • 投稿者
    投稿
  • yokoye
    参加者

    お世話になります。
    解決しましたので、ご報告いたします。

    原因は、「3Dセキュア」の設定が間違っていたことでした。
    当初、DSK側へは、
    クレジット設定画面の設定状況のキャプチャ画像を送り、
    「何か間違っていないか?」と問い合わせていたのですが、
    じつはDSK側もこの設定について、よく分かっていなかったらしく
    「設定に間違いはない・原因が分からない・Welcartの問題かも」
    と回答を返してきていました。

    しかし、DSK側に、
    ソフトバンクペイメントのエラーログを確認してほしいと
    依頼したところ、
    「ソフトバンクペイメントへ問い合わせた結果
     pay_method は credit ではなく credit3d に
     してくださいとのことです」
    と回答があり、3Dセキュアの設定に気がついたという次第です。

    いろいろお騒がせして申し訳ありませんでした。
    キーマスター様、お忙しい中ご回答いただきましてありがとうございました。

    yokoye
    参加者

    お世話になっております。

    DSK側より連絡があり、
    接続支援サイト専用のID、ハッシュキーを使うことにより、
    とりあえず接続支援サイトには接続成功しました。

    しかし、その後
    あらためてテスト環境用にID、ハッシュキーを設定しなおし、
    注文ボタンをクリックしてみましたが、
    やはり決済サイトへ移動せず
    エラーが表示されてしまいます。

    テスト環境用のID、ハッシュキーなどの情報が正しくないのでは?
    と思い、DSKに問い合わせましたが、
    まだはっきりとした回答は得られておりません。

    また、キーマスター様よりご回答いただいた、
    ソフトバンクペイメントサービスの件の場合、
    決済サイトの画面へは移動できていたようなので、
    やはり今回の件とは、原因が違っていると思われます。

    yokoye
    参加者

    キーマスター様

    ありがとうございます。
    リンク先内容を確認させていただきました。
    さっそくパッチをあてて試してみましたが、状況は変わりませんでした。
    なお、当該サイトのSSLはSHA256です。

    そもそもSSL不要という「接続支援サイト」「テスト環境」で試しているので、やはり関係ないのかもしれません。

    その後も、こちらでいろいろ試してみているのですが、その中で商品名の文字化けが解消したので、ご報告させていただきます。
    ——————————————————–
    PaymentDSK.class.php の 271行目

    <input type=”hidden” name=”item_name” value=”‘.mb_convert_encoding($item_name, ‘SJIS’, ‘UTF-8’).'” />

    となっていたのを、

    <input type=”hidden” name=”item_name” value=”‘.$item_name.'” />

    として、文字コード変換処理を削除したところ、文字化けしなくなりました。
    ——————————————————–

    そして、このときに気になったのですが、
    同じく PaymentDSK.class.php の 254行目~255行目

    $sps_hashcode = $pay_method.$acting_opts[‘merchant_id’].$acting_opts[‘service_id’].$cust_code.$dsk_cust_no.$dsk_payment_no.$rand.$item_id.$item_name.$amount.$pay_type.$auto_charge_type.$service_type.$div_settle.$last_charge_month.$camp_type.$terminal_type.$success_url.$cancel_url.$error_url.$pagecon_url.$free1.$free_csv.$request_date.$limit_second.$acting_opts[‘hash_key’];

    この中の $item_name は、文字化けすることはないのでしょうか?

    さらに キーマスター様からSHA256についてのコメントをいただいて、
    同じように気になったのですが・・・

    255行目

    $sps_hashcode = sha1( $sps_hashcode );

    という部分があり、この最後のところで sha1() でハッシュ化(?)していると思うのですが、これはSSLのSHA256とは関係ないものなのでしょうか?

    まったく見当違いの質問していたら申し訳ありません。
    何かお分かりになることがありましたら、ぜひ教えていただきたくお願いいたします。

    yokoye
    参加者

    キーマスター様

    お返事ありがとうございます。

    お知らせいただいたURLおよび導入マニュアルについては、確認しております。

    DSKペイメントサービスは、
    「テスト環境」ではSSLは必要ないということです。
    DSKのカスタマーサービスに確認しておりますし、
    Welcartのクレジット設定画面にも
    「本番環境では独自SSLが必要」と書かれています。

    そうしたわけで、SSLなしの状態でとりあえずテストをしていた次第です。

    しかし、どうしてもエラーになってしまうことと、
    いずれにせよ本番環境ではSSLが必要ということで、
    最初の投稿をしたあとに、独自SSLを導入しました。

    導入後も同じようにテストをしてみましたが、
    状況は同じです。

    DSK側にも接続できないことについて、問い合わせてはいますが、
    文字化けの理由を含め、原因はまだ分からないといわれています。

    yokoye
    参加者

    たびたび申し訳ありません。

    PaymentDSK.class.php

    を見てみたところ、チェックサムはハッシュキーそのものではないことが分かりました。
    従ってクレジット設定画面で入力している文字列と違って当たり前ということも分かりました。
    勘違いしており、申し訳ありませんでした。

    その上でさらにお伺いさせていただきたいのですが、
    このチェックサムの内容が文字化けしているかどうかを知ることは可能でしょうか?
    また、文字化けしているとしたら、どのようにして解決したらよいでしょうか?

    何かヒントでもあれば、お教えいただきたくお願いいたします。

    yokoye
    参加者

    自己解決しました。
    extract( $args );
    の後、配列をとりだすところの変数の値が間違っていたのが原因でした。

    よくわからないまま、
    参考サイトのコードをコピーして、つぎはぎしていたため、
    初歩的なミスをしてしまいました。
    お騒がせして、たいへん申し訳ありませんでした。

6件の投稿を表示中 - 1 - 6件目 (全6件中)