バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > クレジットカード払いを選択されたときのみ、決済完了画面にボタンを表示したい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ktrijk2008
投稿日時: 2010/6/13 8:43
対応状況: −−−
新米
登録日: 2010/6/13
居住地: 埼玉県
投稿: 3
クレジットカード払いを選択されたときのみ、決済完了画面にボタンを表示したい
[EC-CUBE] 2.4.2
[レンタルサーバ] ヘテムル
[OS] Linux
[PHP] 4.4.4
[データベース] MySQL 5.0.82
[WEBサーバ] Apache
[ブラウザ] FireFox 3.63
[現象]

初めまして。オタッカーと申します。
現在ECCUBEを利用してwebショップを運営中です。

先日「クロネコwebコレクト」の契約が完了し、リンク方式の導入を実施致しておりまして、
注文データを「クロネコwebコレクト」に遷移出来る、「クレジット決済画面に移動」ボタンを
無事注文完了画面(complete.php)に表示することが出来ました。

次のフェーズとして、
「ボタンは支払い方法をクレジットカード決済で選んだときのみ表示する」
というようにしようとしたのですが、これがなかなか上手くいきません。

こちらのフォーラムの

http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=5342&forum=10



http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=6205&forum=10
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=5538&forum=10

を参考に、下記のコードを追記してみたのですが、上手くいきませんでした。。。

------------------------------------------------------------------

LC_Page_Shopping_Complete.php

function process() {



$payment_type = "";
$sql = "SELECT memo03 FROM dtb_payment WHERE payment_id = ?";
$this->$arrPayment = $objQuery->getall($sql, array($arrData['payment_id']));


}

------------------------------------------------------------------

complete.tpl

<!--{if $arrPayment == 7 }-->

〜ここにクレジット決済に移行するためのフォームボタンを入れてあります〜

<!--{/if}-->

------------------------------------------------------------------

Google先生に「$arrPayment」について聞きまくったものの、
明快な回答が得られず、けんもほろろ。


支払い方法でクレジット払いが選ばれた時のみ、
注文完了画面でクレジット決済ボタンを表示させるためには、
あと何が足りません(あるいは余計)でしょうか?

是非お教え頂けますと幸いです。

何卒、よろしくお願い申し上げます。
sendenrk
投稿日時: 2010/6/13 10:50
対応状況: −−−
半人前
登録日: 2010/6/12
居住地:
投稿: 20
Re: クレジットカード払いを選択されたときのみ、決済完了画面にボタンを表示したい

$this->$arrPayment = $objQuery->getall($sql, array($arrData['payment_id']));


ここの結果は返ってきているのでしょうか?


var_dump($this->arrPayment);
var_dump($arrData['payment_id']);


の内容が見たいです
ktrijk2008
投稿日時: 2010/6/13 11:46
対応状況: −−−
新米
登録日: 2010/6/13
居住地: 埼玉県
投稿: 3
Re: クレジットカード払いを選択されたときのみ、決済完了画面にボタンを表示したい
sendenrk様


早速ご返信頂きまして、誠にありがとうございます。


ご指摘頂きました実際のデータの状況を確認してみましたところ、
全部の変数の中身が「NULL」でございました。

ちなみに、コードは下記のように書きました。

------------------------------------------------------------------

complete.tpl

<!--{if $arrPayment == 7 }-->

〜ここにクレジット決済に移行するためのフォームボタンを入れてあります〜

<!--{/if}-->

<!--{$this->arrPayment|@var_dump}-->
<!--{$payment_id|@var_dump}-->
<!--{$arrData|@var_dump}-->

------------------------------------------------------------------

ダンプ命令を3行としたのは、2行のときにエラーが発生したためです。

Fatal error: Smarty error: [in shopping/complete.tpl line 146]: syntax error: unrecognized tag: $arrData['payment_id']|@var_dump (Smarty_Compiler.class.php, line 436) in

ということで、データの受け渡しが狙い通りになってないということが判明しました。


ぬぅ、、、どうすればいいんだろう。。。
sendenrk
投稿日時: 2010/6/13 14:36
対応状況: −−−
半人前
登録日: 2010/6/12
居住地:
投稿: 20
Re: クレジットカード払いを選択されたときのみ、決済完了画面にボタンを表示したい

var_dump($this->arrPayment);
var_dump($arrData['payment_id']);


はPHPの方に入れてみてもらえますか?
complete.tpl に書くなら


<!--{$arrPayment|@var_dump}-->


としてみてください。
あと、$arrPayment は配列だと思うので == 7 と比較するのはおかしいですね。


----------------
現在EC-cubeのサポートは夜間行っております。
(20時〜24時)
-----------------------------------------------
ECCUBE並びにPHP、VB、ACCESSなどの受託業務も
行っております。(有料)数万円の開発から

ktrijk2008
投稿日時: 2010/6/14 5:43
対応状況: 解決済
新米
登録日: 2010/6/13
居住地: 埼玉県
投稿: 3
Re: クレジットカード払いを選択されたときのみ、決済完了画面にボタンを表示したい
sendenrk様


ご返信頂きまして、誠にありがとうございます。

そして早とちりをしてしまい、誠に申し訳ございませんでした。

早速ご指摘頂きました内容を用いまして、
色々と値を確認しながら試行錯誤しましたところ、
「Cookie」を用いることによって、今回の目的を達成出来ました!

以下、コードを記載します。

------------------------------------------------------------------

LC_Page_Shopping_Payment.php

164行目付近

// 支払い方法の取得
$this->arrPayment = $this->lfGetPayment($total_pretax);

の下に下記3行を追記

$paymentidnum= $this->objFormParam->getValue('payment_id');//支払い方法の番号を取得
$timeout = time()+60*60;//Cookie有効期限1時間
setcookie("examplecookie",$paymentidnum,$timeout);//Cookie保存

------------------------------------------------------------------

LC_Page_Shopping_Payment.php

133行目付近

// TradeSafe連携用

の上に下の3行を追記

$paymentidnumtemp=$_COOKIE['examplecookie'];//クッキーの読み出し
$this->paymentidnum= $paymentidnumtemp;
setcookie("examplecookie");//クッキー削除

------------------------------------------------------------------

complete.tpl


<!--{if $paymentidnum == 7 }-->

〜ここにクレジット決済に移行するためのフォームボタンを入れてあります〜

<!--{/if}-->

------------------------------------------------------------------


上記の追記で、支払い方法でクレジットカード決済を選んだ時のみ、
「クレジット決済画面へ移る」ボタンを表示させることが出来ました。


それと、LC_Page_Shopping_Payment.phpで保存した支払い方法番号は、
LC_Page_Shopping_Confirm.phpでも読み出すことが出来るので、

「クレジットカード決済の場合は、
 注文完了画面に移っても、決済は完了しておりません。
 必ず次の画面に表示される決済画面への移動のボタンをクリックし、
 クレジットーカード決済を完了してください。」

といった注意書きを注文確認画面(confirm.tpl)に表示させることも可能と考えて、
現在応用しようと試行中です。



sendenrk様


素晴らしいヒントを頂きまして、本当にありがとうございました!
おかげさまで、これで無事目的が達成出来ました。

本当に感謝感激!

また、何かの機会がございましたら、その際もどうぞよろしくお願い申し上げます。

ありがとうございました!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,874名です
総投稿数は110,000件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1295
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
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.