[解決済み] paypalエクスプレスチェックアウトで決済、受注が完了しない。
-
投稿者投稿
-
2012年2月24日 10:10 AM #51334you参加者
いつもお世話になっております。
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%
2012年2月27日 1:18 AM #63917nanbuキーマスターこんにちは。
PHP5.2の環境では問題ないようですが、もしnumber_formatの問題でしたら以下のようにして見ていただけますでしょうか。
$price = number_format($amount, $decimal, $point, $seperator);
↓
$price = number_format((float)$amount, $decimal, $point, $seperator);よろしくお願いいたします。
2012年2月27日 3:37 AM #63918nanbuキーマスターすみません、number_formatの問題ではありませんでした。たぶんセッションがうまく復帰できていないのが原因ではないかと思います。
もしよろしければ調査いたしますので下記にご連絡ください。
nanbuアットusconsort.com(アットは@)
2012年2月27日 4:54 AM #63919you参加者>nanbuさま
迅速な対応ありがとうございます。
訳あってテスト環境をいったん削除してしまいましたので、復旧次第メールをお送りさせて頂きます。
2012年2月28日 2:27 AM #63921nanbuキーマスターご協力感謝いたします。
サイトを拝見させていただきましたが、配送設定がされていないため動作確認ができませんでした。まずは配送設定を行った後、全ての商品を更新していただけますでしょうか。よろしくお願いいたします。
2012年3月4日 3:37 AM #63922you参加者>nanbuさま
お世話になっております。
後日お送りしたメールに返信があると勝手に思っていて、こちらをチェックしておりませんでした。
すみません。
配送方法を入力して商品を更新し、sandbox使用でテスト購入しましたが結果は同じでした。
エラーログの内容は上記2つと一緒です。
他の方のところに、developmentバージョンの紹介がされていましたが、私もバージョンアップするべきでしょうか?
以上、お手数おかけしますが、再度よろしくお願いいたします。
2012年3月4日 4:08 PM #63923こちらで挙げられているのと同じ症状に苦慮しています。
システム設定の「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
2012年3月5日 3:13 AM #63924nanbuキーマスター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でのクッキーチェック」を行わないようにするためのフィルターです。
2012年3月5日 9:19 AM #63925you参加者>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.にアップグレードせずにフィルター設置だけしようと思いますが、構わないでしょうか?
2012年3月6日 9:04 AM #63926nanbuキーマスターはい。reg_orderdata : の記録はこの時間に受注が登録されたという意味になります。
前述のフィルターはv1.1以降であれば有効です。
2012年3月7日 7:06 AM #63927you参加者>nanbuさま
いつもお世話になっております。
では、このフィルターを設置すると解決、という事でタイトル変更しておきます。
でもこれを設置すると、せっかくverアップで強化したセキュリティが少し落ちると他の方の所に書かれていたので、さらに良い解決策があれば、また教えて頂けたらと思います。
perfect.insiderさんもこれで解決していたら良いですね。
ありがとうございました。
[追記]
お名前.comサーバーでは、フィルター設置なしで決済、受注共に完了しました。
(WP、WC共に最新バージョン、php5.2.12)
2012年3月8日 1:26 AM #63928nanbuキーマスターyouさん、情報提供ありがとうございます。
新しいセキュリティ対策として、SSL時のクッキー取得およびSSL時のリファラー取得を行っていますが、そのどちらかができないサーバーはこのフィルターを適用しなくてはいけなくなります。「さくら」を使ってらっしゃる方は多いと思いますので、オプションスイッチを付けるなど何か対策を検討したいと思います。
-
投稿者投稿
- このトピックに返信するにはログインが必要です。