[解決済み] paypalエクスプレスチェックアウトで決済、受注が完了しない。

フォーラム 使い方全般 [解決済み] paypalエクスプレスチェックアウトで決済、受注が完了しない。

  • このトピックには11件の返信、3人の参加者があり、最後にnanbuにより12年、 1ヶ月前に更新されました。
12件の投稿を表示中 - 1 - 12件目 (全12件中)
  • 投稿者
    投稿
  • #51334
    you
    参加者

    いつもお世話になっております。

    welcart1.0.10から1.1.2にバージョンアップしてから、以下のエラーが出るようになりました。

    テーマをカスタムしているものや全くカスタムをしていないもの(テスト用)など、複数のwelcartでバージョンアップしてから同じエラーが出ています。

    [症状]

    paypalエクスプレスチェックアウトを使用すると、paypalの決済画面に移行後、「いますぐ支払う」ボタンをクリックしても、完了画面が出ず、サイトのトップページに飛び、決済が完了しない。

    決済が完了していないため、支払側、受取側両方に何も金銭の動きが出ず、また、受注もデータベース内に残らない。

    (もちろんサンキューメールなども送信されず。)

    sandboxアカウント、本番アカウント共に同じエラーと症状です。

    調べていて、「php5.3以降はphpのnumber_format文に対するチェックが厳しくなって、こういったphpエラーが出る」というのを見たので、php5.2.8にしてみましたが、エラー文は出ないものの、同じ症状で受注・決済共に完了しませんでした。

    [現在の回避策]

    [usc-e-shop]-[settlement]-[paypal_sample_ja.php]に必要事項を記入し、テーマ内にpaypal.phpとしてアップロード(welcartのシステム設定、決済モジュールパスや基本設定の支払方法なども変更)して問題なく使えています。

    [エラー内容]

    phpエラーログ

    [00-Feb-2012 00:00:00] PHP Warning:  number_format() expects parameter 1 to be double, string given in /wpまでのディレクトリ/wp-content/plugins/usc-e-shop/classes/usceshop.class.php on line 6448

    [plugins]-[usc-e-shop]-[logs]内のエラーログ

    acting_transaction.log

    [2012-00-00 00:00:00]	PayPal : DoExpressCheckoutPayment API call failed. Error Code:[81100] Error Severity Code:[Error] Short Error Message:Missing Parameter Detailed Error Message:OrderTotal (Amt) : Required parameter missing

    phpエラーが出ている…/usceshop.class.phpの6448行目は以下の記述でした。

    $price = number_format($amount, $decimal, $point, $seperator);

    お忙しい所何度も質問を書き込み大変申し訳ないのですが、どうぞよろしくお願い致します。

    動作に関するご質問の場合は必ずご記入ください。


    WordPress のバージョン:3.3.1

    Welcart のバージョン:1.1.2

    PHP のバージョン:5.3.5

    ご利用のテーマ:welcart_defaultをカスタム

    症状を確認したブラウザ:MAC OS X(10.5.8) FireFox10.0.2

    サーバー(会社名、サービス名):heteml(ヘテムル)

    SSLの利用: 共用SSL

    WordPress のパーマリンク設定:/%category%/%post_id%


    #63917
    nanbu
    キーマスター

    こんにちは。

    PHP5.2の環境では問題ないようですが、もしnumber_formatの問題でしたら以下のようにして見ていただけますでしょうか。

    $price = number_format($amount, $decimal, $point, $seperator);

     ↓

    $price = number_format((float)$amount, $decimal, $point, $seperator);

    よろしくお願いいたします。

    #63918
    nanbu
    キーマスター

    すみません、number_formatの問題ではありませんでした。たぶんセッションがうまく復帰できていないのが原因ではないかと思います。

    もしよろしければ調査いたしますので下記にご連絡ください。

    nanbuアットusconsort.com(アットは@)

    #63919
    you
    参加者

    >nanbuさま

    迅速な対応ありがとうございます。

    訳あってテスト環境をいったん削除してしまいましたので、復旧次第メールをお送りさせて頂きます。

    #63921
    nanbu
    キーマスター

    ご協力感謝いたします。

    サイトを拝見させていただきましたが、配送設定がされていないため動作確認ができませんでした。まずは配送設定を行った後、全ての商品を更新していただけますでしょうか。よろしくお願いいたします。

    #63922
    you
    参加者

    >nanbuさま

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

    後日お送りしたメールに返信があると勝手に思っていて、こちらをチェックしておりませんでした。

    すみません。

    配送方法を入力して商品を更新し、sandbox使用でテスト購入しましたが結果は同じでした。

    エラーログの内容は上記2つと一緒です。

    他の方のところに、developmentバージョンの紹介がされていましたが、私もバージョンアップするべきでしょうか?

    以上、お手数おかけしますが、再度よろしくお願いいたします。

    #63923
    perfect.insider
    参加者

    こちらで挙げられているのと同じ症状に苦慮しています。

    システム設定の「SSLを使用する」のチェックをはずし、paypal側もそれに対応させると正しく動作します。(チェックアウト・決済モジュール共に)

    また決済モジュールではSSL使用時に決済は完了しますが、やはり決済後に完了ページではなくトップページに遷移してしまいます。

    お手数をお掛けしますが、是非ご助言頂ければと思います。

    ────────────────────────────≪環境≫

    Wordpress のバージョン: Version 3.3.1

    Welcart のバージョン: Version 1.1.1

    症状を確認したブラウザ:Firefox, Crome

    サーバー(会社名、サービス名):さくらインターネット Apache/2.0.64 (Red Hat)

    Apacheバージョン:Apache/1.3.42 (Unix)

    SSLの利用: 共有SSL

    WordPress のパーマリンク設定:デフォルト

    MySQL: 5.5

    PHP: 5.2.17

    #63924
    nanbu
    キーマスター

    youさん、perfect.insiderさん

    まずはDevelopment Versionにアップグレードしてみてください。それでもダメな場合は、以下のフィルターをご利用のテーマのfunctions.phpに設置してみてください。

    add_filter( 'usces_filter_cookie', 'my_filter_cookie');
    function my_filter_cookie($nouse){
    return true;
    }

    このフィルターは、v1.1から導入された「SSLでのクッキーチェック」を行わないようにするためのフィルターです。

    #63925
    you
    参加者

    >nanbuさま

    いつも迅速な対応、ありがとうございます。

    >perfect.insiderさま

    はじめまして。

    Development Ver.にアップグレードをして試した結果、上記と同じ症状でエラー(エラーログ内容も同一)が出ました。

    また、plugins/usc-e-shop/logs/database_error.logには

    [2012-03-05 17:18:35]	set_initial : OK
    [2012-03-05 17:18:35] USCES_UP11 : Array
    (
    )

    [2012-03-05 17:18:35] rets11 : Array
    (
    )

    のみ出ていました。

    (Array=配列、整列だから、エラーではない??)

    その後、SSLの上記フィルターを設置しました所、「paypal上の処理」「受注」共に無事完了。

    ページも「送信が完了しました」画面に遷移。

    エラーログはなし。

    plugins/usc-e-shop/logs/database_error.logでも上記の後に以下のようになってました。

    [2012-03-05 18:01:56]	reg_orderdata :

    (↑「正常に受注の記録ができたと言う意味」とどこかで見ました。)

    そしてこのフィルターについてですが、Development Ver.ではないWelcart1.1.2に設置した場合も同様に無事完了しました。

    特に問題がなければ、稼働中のサイトはDevelopment Ver.にアップグレードせずにフィルター設置だけしようと思いますが、構わないでしょうか?

    #63926
    nanbu
    キーマスター

    はい。reg_orderdata : の記録はこの時間に受注が登録されたという意味になります。

    前述のフィルターはv1.1以降であれば有効です。

    #63927
    you
    参加者

    >nanbuさま

    いつもお世話になっております。

    では、このフィルターを設置すると解決、という事でタイトル変更しておきます。

    でもこれを設置すると、せっかくverアップで強化したセキュリティが少し落ちると他の方の所に書かれていたので、さらに良い解決策があれば、また教えて頂けたらと思います。

    perfect.insiderさんもこれで解決していたら良いですね。

    ありがとうございました。

    [追記]

    お名前.comサーバーでは、フィルター設置なしで決済、受注共に完了しました。

    (WP、WC共に最新バージョン、php5.2.12)

    #63928
    nanbu
    キーマスター

    youさん、情報提供ありがとうございます。

    新しいセキュリティ対策として、SSL時のクッキー取得およびSSL時のリファラー取得を行っていますが、そのどちらかができないサーバーはこのフィルターを適用しなくてはいけなくなります。「さくら」を使ってらっしゃる方は多いと思いますので、オプションスイッチを付けるなど何か対策を検討したいと思います。

12件の投稿を表示中 - 1 - 12件目 (全12件中)
  • このトピックに返信するにはログインが必要です。