バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

プラグイン > 開発について > 他決済プラグインとの連携方法が分かりません…。

開発について

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kogoro
投稿日時: 2017/2/21 14:12
対応状況: −−−
新米
登録日: 2016/5/6
居住地:
投稿: 6
他決済プラグインとの連携方法が分かりません…。
▼テンプレート
[EC-CUBE] ec-cube V3.0.10(アップデート)
[レンタルサーバ] 不明(クライアント先の環境のため)
[OS] 不明(クライアント先の環境のため)
[PHP] 不明(クライアント先の環境のため)
[データベース] 不明(クライアント先の環境のため)
[WEBサーバ] 不明(クライアント先の環境のため)
[ブラウザ] どのブラウザでも
[導入プラグインの有無] 先方自社開発のペイパル決済プラグイン、後払い.comプラグイン、弊社開発の購入完了時に処理を行うプラグイン
[カスタマイズの有無] 不明(クライアント先の環境のため)
[現象] 先方自社開発のペイパル決済プラグインを使用してクレジットカードで支払い、サンクスページに遷移すると下記のように弊社側のプラグインのエラーが発生する。

【エラー内容】
[client 2001:240:2a7c:6400:4ce4:448f:7b6f:79fb] PHP Fatal error: Plugin\\PluginName\\PluginCvTagEvent::addCvTag(): The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "DoctrineProxy\\__CG__\\Eccube\\Entity\\Order" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in /var/www/html/xxxxxxx/app/Plugin/PluginName/PlubinCvTagEvent.php on line 70,


【エラーが出ている付近のプログラムコード】
private $xxxxxxxxSessionKey = 'xxxxxx.com.eccube.order.data';

〜〜〜〜〜〜〜〜〜〜

// 商品情報
$goods_set_str = "";
$order_data = $app['session']->get($this->xxxxxxxxSessionKey);
$OrderDetails = $order_data->getOrderDetails();
$d_cnt = 0;
foreach ($OrderDetails as $OrderDetail) {
$d_cnt++;
if($d_cnt>1){
$goods_set_str .= ":";
}
$goods_set_str .= $OrderDetail->getProductCode().".".$OrderDetail->getQuantity().".".$OrderDetail->getPrice();
}

※エラーが出ているのは上記の「$OrderDetails = $order_data->getOrderDetails();」部分です。おそらく$order_dataが取得できていないことによる不具合だと思います。


こちらの弊社のプラグインはec-cube V3.0.10以降に対応された下記をevent.ymlに設定済みです。

# 購入完了時拡張
service.shopping.notify.complete:
- [onServiceShoppingNotifyComplete, NORMAL]



上記以外に決済モジュールとの購入完了後の連携で設定が必要なのでしょうか?注文情報の取得方法が間違っているのでしょうか?
ちなみに決済モジュールを通さない銀行振込や他の決済では問題なくプラグインは動作いたします。

現在非常に困っています…。
是非お力添えをいただければ嬉しい限りです。

どうぞよろしくお願いいたします。
nyorai
投稿日時: 2017/2/21 16:19
対応状況: −−−
仙人
登録日: 2015/8/21
居住地:
投稿: 302
Re: 他決済プラグインとの連携方法が分かりません…。
発生しているエラーは、以下の事象かと思います。
https://github.com/EC-CUBE/ec-cube/issues/1680

セッションにOrderのエンティティを保存しているようですが、Doctrineではエンティティをセッションに格納するのは推奨されていません。

セッションに保存する際にorder_idのみ保存し、取得する際にfindしなおすようにすれば解消するかと思います。


ちなみにservice.shopping.notify.completeを使用しているのであれば、


        $event->getArgument('Order');


でOrderエンティティは取得できますので、そちらを利用してもよいかもしれません。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,704名です
総投稿数は109,948件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1570
9
mcontact
1285
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.