バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > ECCUBE3 イプシロン決済モジュール(3.0系)でポイントが付与されない件

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
n_m_7777
投稿日時: 2018/5/8 19:29
対応状況: −−−
新米
登録日: 2018/5/8
居住地:
投稿: 7
ECCUBE3 イプシロン決済モジュール(3.0系)でポイントが付与されない件
▼テンプレート
[EC-CUBE] 3.0.16 自動インストール
[レンタルサーバ] エックスサーバー
[PHP] 7.1.2
[データベース] MySQL 5.5.45
[導入プラグインの有無] イプシロン決済モジュール、ポイントプラグイン、メガメニューカテゴリプラグイン


お世話になっております。
いつも、ありがたく拝見させて頂いております。
ありがとうございます。

旧スレッド
「ECCUBE3 イプシロン決済モジュール(3.0系)でポイントが付与されない件」
をみて、修正すているのですが、イプシロン決済のクレジットカード利用時に、ポイントが機能しないのです。

ECCUBE3 イプシロン決済モジュール(3.0系)でポイントが付与されるようにするには、どのファイルの修正が必要でしょうか?


お手数ですが、どうぞ宜しくお願い致します。
h_tanaka
投稿日時: 2018/5/17 10:32
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: ECCUBE3 イプシロン決済モジュール(3.0系)でポイントが付与されない件
app/Plugin/GmoEpsilon/Controller/PaymentController.php(132行目)
complete() の return 直前に次を追記してください。
    if (version_compare(Constant::VERSION, '3.0.10', '>=')) {
        // 受注完了を他プラグインへ通知する.
        $this->app['eccube.service.shopping']->notifyComplete($Order);
    }


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

n_m_7777
投稿日時: 2018/5/19 16:47
対応状況: −−−
新米
登録日: 2018/5/8
居住地:
投稿: 7
Re: ECCUBE3 イプシロン決済モジュール(3.0系)でポイントが付与されない件

トエビス株式会社 御中
田中 様

ご返信、頂き、誠に有り難う御座います。

早速、お教えいただいた箇所を探しています。

バージョンによって、大幅に異なっているのでしょうか?

利用しているのは、GmoEpsilon1.1.1 でして、

complete は、116行目と151行目でして、

116行目の数段下あたりに、

///////////////////////////////////
public function complete(\Eccube\Application $app)
{
$this->app = $app;

// 想定外のリクエスト
if ('POST' === $this->app['request']->getMethod()) {
$this->app['monolog.gmoepsilon']->addInfo('pay process error. get Fraud POST.');
$error_title = 'システムエラーが発生しました。';
$error_message = '不正なPOSTリクエストを受信しました。';
←コチラに追記ですか?
return $this->app['view']->render('error.twig', compact('error_title', 'error_message'));
}
///////////////////////////////////

return が出てきますが、やってみたいと思います。
お教えいただき、誠に有り難う御座います。

n_m_7777
投稿日時: 2018/5/19 19:45
対応状況: −−−
新米
登録日: 2018/5/8
居住地:
投稿: 7
Re: ECCUBE3 イプシロン決済モジュール(3.0系)でポイントが付与されない件

トエビス株式会社 御中
田中 様

バックアップ取りながら、更新して、いろいろ試したのですが、
思っているような結果が得られませんでした。

eccube-バージョン 3.0.16
決済モジュール GmoEpsilon 1.1.1

PaymentController.php を記載させて頂きます。

お手数ですが、どうぞ、ご教授宜しくお願い致します。

/////////////////////////////////
<?php


namespace Plugin\GmoEpsilon\Controller;

use Eccube\Application;
use Eccube\Common\Constant;
use Plugin\GmoEpsilon\Util\PaymentUtil;
use Plugin\GmoEpsilon\Util\PluginUtil;
use Guzzle\Service\Client;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Validator\Constraints as Assert;

class PaymentController
{
private $app;

/**
* @var string 非会員用セッションキー
*/
private $sessionKey = 'eccube.front.shopping.nonmember';

public function index(\Eccube\Application $app)
{
$this->app = $app;

$Order = $this->app['eccube.repository.order']->findOneBy(array('pre_order_id' => $this->app['eccube.service.cart']->getPreOrderId()));
if (empty($Order)) {
$this->app['monolog.gmoepsilon']->addInfo('pay process error. not found Order in index.');
$error_title = 'システムエラーが発生しました。';
$error_message = '注文情報の取得が出来ませんでした。この手続きは無効となりました。';
return $this->app['view']->render('error.twig', compact('error_title', 'error_message'));
}

$PaymentExtension = $this->app['eccube.plugin.epsilon.repository.payment_extension']->find($Order->getPayment()->getId());

// 決済方法に応じたServiceを取得
$GmoEpsilonService = $this->getGmoEpsilonService($PaymentExtension->getPaymentTypeId());
/*
* 決済処理
* 1.リクエストパラメータ設定
* 2.POSTデータ送信
* 3.イプシロン決済画面に遷移(コンビニ除く)
*/
$this->app['monolog.gmoepsilon']->addInfo('pay process start. order_id = ' . $Order->getId());
return $GmoEpsilonService->payProcess($Order, $PaymentExtension);
}

public function back(\Eccube\Application $app)
{
$this->app = $app;

// 受注番号を取得
$orderId = $this->app['request']->get('order_number');
$Order = $this->app['eccube.repository.order']->find($orderId);
if (empty($Order)) {
$this->app['monolog.gmoepsilon']->addInfo('pay process error. not found Order in index.');
$error_title = 'システムエラーが発生しました。';
$error_message = '注文情報の取得が出来ませんでした。この手続きは無効となりました。';
return $this->app['view']->render('error.twig', compact('error_title', 'error_message'));
}

$Customer = $Order->getCustomer();
// 非会員の場合
if (is_null($Customer)) {
$Customer = $this->app['eccube.service.shopping']->getNonMember($this->sessionKey);
}

// 新しい受注を作成(受注IDを振りなおすため)
$NewOrder = $this->app['eccube.service.shopping']->createOrder($Customer);
$NewOrder->setPayment($Order->getPayment());
$NewOrder->setPaymentMethod($Order->getPaymentMethod());

/**
* 新しい受注に紐づけられている届け先等を前の受注と紐づける
* 新しい受注には前の受注に紐づけられた届け先等を紐づける
* ※商品詳細は同じなので何もしない
*/
$NewShippings = $NewOrder->getShippings();
foreach ($NewShippings as $NewShipping) {
$NewShipmentItems = $NewShipping->getShipmentItems();
foreach ($NewShipmentItems as $NewShipmentItem) {
$NewShipmentItem->setOrder($Order);
$this->app['orm.em']->persist($NewShipmentItem);
}
$NewShipping->setOrder($Order);
$NewOrder->removeShipping($NewShipping);
}

$Shippings = $Order->getShippings();
foreach ($Shippings as $Shipping) {
$ShipmentItems = $Shipping->getShipmentItems();
foreach ($ShipmentItems as $ShipmentItem) {
$ShipmentItem->setOrder($NewOrder);
$this->app['orm.em']->persist($ShipmentItem);
}
$Shipping->setOrder($NewOrder);
$this->app['orm.em']->persist($Shipping);
}
$NewOrder->setMessage($Order->getMessage());

// 以前の受注情報を更新
$Order->setOrderStatus($this->app['eccube.repository.order_status']->find($this->app['config']['order_processing']));

$this->app['orm.em']->persist($Order);
$this->app['orm.em']->persist($NewOrder);
$this->app['orm.em']->flush();

// 受注番号をリセット
$this->app['session']->set('eccube.plugin.epsilon.orderId', null);

$this->app['monolog.gmoepsilon']->addInfo('back. order_id = ' . $Order->getId() . ' new_order_id = ' . $NewOrder->getId());
return $this->app->redirect($this->app->url('shopping'));
}

public function complete(\Eccube\Application $app)
{
$this->app = $app;

// 想定外のリクエスト
if ('POST' === $this->app['request']->getMethod()) {
$this->app['monolog.gmoepsilon']->addInfo('pay process error. get Fraud POST.');
$error_title = 'システムエラーが発生しました。';
$error_message = '不正なPOSTリクエストを受信しました。';
if (version_compare(Constant::VERSION, '3.0.10', '>=')) {
// 受注完了を他プラグインへ通知する.
$this->app['eccube.service.shopping']->notifyComplete($Order);
}
return $this->app['view']->render('error.twig', compact('error_title', 'error_message'));
}

// 受注番号を取得
$orderId = $this->app['request']->get('order_number');
if (empty($orderId)) {
$orderId = $this->app['session']->get('eccube.plugin.epsilon.orderId');
}

if (empty($orderId)) {
$Order = null;
} else {
$Order = $this->app['eccube.repository.order']->find($orderId);
}

// 受注取得エラー
if (empty($Order)) {
// メールリンク決済の場合を考慮してオーダー情報確認CGIから受注番号を取得
$arrXML = $this->getOrderInfo($_GET['trans_code']);
$err_code = $this->app['eccube.plugin.epsilon.service.base']->getXMLValue($arrXML, 'RESULT', 'ERR_CODE');
if (empty($err_code)) {
$orderId = $this->app['eccube.plugin.epsilon.service.base']->getXMLValue($arrXML, 'RESULT', 'ORDER_NUMBER');
$Order = $this->app['eccube.repository.order']->find($orderId);
}

if (empty($Order)) {
$this->app['monolog.gmoepsilon']->addInfo('pay process error. not found Order in complete.');
$error_title = 'システムエラーが発生しました。';
$error_message = '注文情報の取得が出来ませんでした。この手続きは無効となりました。';
return $this->app['view']->render('error.twig', compact('error_title', 'error_message'));
}
}

$PaymentExtension = $this->app['eccube.plugin.epsilon.repository.payment_extension']->find($Order->getPayment()->getId());
$paymentTypeId = $PaymentExtension->getPaymentTypeId();
if ($paymentTypeId == $this->app['config']['GmoEpsilon']['const']['PAY_ID_MAIL']) {
$arrXML = $this->getOrderInfo($_GET['trans_code']);

// エラーチェック
$err_code = $this->app['eccube.plugin.epsilon.service.base']->getXMLValue($arrXML, 'RESULT', 'ERR_CODE');
if (empty($err_code)) {
$payment_code = $this->app['eccube.plugin.epsilon.service.base']->getXMLValue($arrXML, 'RESULT', 'PAYMENT_CODE');
}
$response = array('payment_type_id' => $payment_code,
'trans_code' => $_GET['trans_code']);
} else {
$response = $_GET;
}
// 決済方法に応じたインスタンスを取得
$GmoEpsilonService = $this->getGmoEpsilonService($PaymentExtension->getPaymentTypeId());

$this->app['monolog.gmoepsilon']->addInfo('pay process end. order_id = ' . $Order->getId());

return $GmoEpsilonService->compProcess($Order, $response);
}

/**
* 各決済に応じたServiceを取得
*
* @param integer $epsilonPaymentId
* @return Service
*/
function getGmoEpsilonService($epsilonPaymentId)
{
switch ($epsilonPaymentId) {
// クレジットカード決済
case 1:
$GmoEpsilonService = $this->app['eccube.plugin.epsilon.service.credit'];
break;
// 登録済みのクレジットカードで決済
case 2:
$GmoEpsilonService = $this->app['eccube.plugin.epsilon.service.reg_credit'];
break;
// コンビニ決済
case 3:
$GmoEpsilonService = $this->app['eccube.plugin.epsilon.service.convenience'];
break;
// ネット銀行決済(ジャパンネット銀行)
case 4:
$GmoEpsilonService = $this->app['eccube.plugin.epsilon.service.netbank_jnb'];
break;
// ネット銀行決済(楽天銀行)
case 5:
$GmoEpsilonService = $this->app['eccube.plugin.epsilon.service.netbank_rakuten'];
break;
// ペイジー決済
case 7:
$GmoEpsilonService = $this->app['eccube.plugin.epsilon.service.payeasy'];
break;
// WebMoney決済
case 8:
$GmoEpsilonService = $this->app['eccube.plugin.epsilon.service.webmoney'];
break;
// Yahoo!ウォレット決済サービス
case 9:
$GmoEpsilonService = $this->app['eccube.plugin.epsilon.service.ywallet'];
break;
// Paypal決済
case 11:
$GmoEpsilonService = $this->app['eccube.plugin.epsilon.service.paypal'];
break;
// Bitcash決済
case 12:
$GmoEpsilonService = $this->app['eccube.plugin.epsilon.service.bitcash'];
break;
// 電子マネーちょコム決済
case 13:
$GmoEpsilonService = $this->app['eccube.plugin.epsilon.service.chocom'];
break;
// スマートフォンキャリア決済
case 15:
$GmoEpsilonService = $this->app['eccube.plugin.epsilon.service.sphone'];
break;
// JCB PREMO
case 16:
$GmoEpsilonService = $this->app['eccube.plugin.epsilon.service.jcb'];
break;
// 住信SBIネット銀行決済
case 17:
$GmoEpsilonService = $this->app['eccube.plugin.epsilon.service.sumishin'];
break;
// GMO後払い
case 18:
$GmoEpsilonService = $this->app['eccube.plugin.epsilon.service.deferred'];
break;
// メールリンク決済
case 99:
$GmoEpsilonService = $this->app['eccube.plugin.epsilon.service.maillink'];
break;
// 定期課金
case 101:
case 102:
case 103:
case 104:
case 105:
$GmoEpsilonService = $this->app['eccube.plugin.epsilon.service.regular'];
break;
}

return $GmoEpsilonService;
}

function getOrderInfo($trans_code)
{
$objPlugin =& PluginUtil::getInstance($this->app);
$info_conf_url = $objPlugin->getSubData('info_conf_url');
$contract_code = $objPlugin->getSubData('contract_code');

// リクエストパラメータを設定
$arrParameter = array(
'contract_code' => $contract_code,
'trans_code' => $trans_code,
);

// リクエスト送信
$arrXML = $this->app['eccube.plugin.epsilon.service.base']->sendData($info_conf_url, $arrParameter);

return $arrXML;
}

}

/////////////////////////////////
n_m_7777
投稿日時: 2018/5/25 23:22
対応状況: −−−
新米
登録日: 2018/5/8
居住地:
投稿: 7
Re: ECCUBE3 イプシロン決済モジュール(3.0系)でポイントが付与されない件
この事案で、解決策が御座いましたら、ご返頂けませんか?

困っておられる方は、多いと思います。

h_tanaka
投稿日時: 2018/5/28 9:03
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: ECCUBE3 イプシロン決済モジュール(3.0系)でポイントが付与されない件
こちらで確認したGMOイプシロンのバージョンは1.0.5でした。
最新バージョンのソースを確認しましたが、結構異なっているようですね。。


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

n_m_7777
投稿日時: 2018/5/29 16:11
対応状況: −−−
新米
登録日: 2018/5/8
居住地:
投稿: 7
Re: ECCUBE3 イプシロン決済モジュール(3.0系)でポイントが付与されない件
トエビス株式会社 御中
田中 様


ご回答、有り難う御座います。

そんなに変わっているのですか。
では、お教え頂いた、箇所を加えても、解決できないということですよね。(^_^;)

こういった事案は、イプシロンさんに対応して欲しいなと思うのですが。。。

どうすればいいのですかね。。。
h_tanaka
投稿日時: 2018/5/29 16:14
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: ECCUBE3 イプシロン決済モジュール(3.0系)でポイントが付与されない件
イプシロンには問い合わせされていますでしょうか?


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

n_m_7777
投稿日時: 2018/5/29 17:27
対応状況: −−−
新米
登録日: 2018/5/8
居住地:
投稿: 7
Re: ECCUBE3 イプシロン決済モジュール(3.0系)でポイントが付与されない件


トエビス株式会社 御中
田中 様

ご返信、有り難う御座いました。

以前に、イプシロンさんに、違う件で、問い合わせたことがあったのですが、
その返答内容から、対応して頂けないかな。と考えておりました。

一度、問い合わせてみようと思います。
n_m_7777
投稿日時: 2018/5/29 19:20
対応状況: −−−
新米
登録日: 2018/5/8
居住地:
投稿: 7
Re: ECCUBE3 イプシロン決済モジュール(3.0系)でポイントが付与されない件
トエビス株式会社 御中
田中 様

イプシロンさんから、ご返信いただきました。

~~~~~~~~~~~~~~~~~
お問い合わせの件、EC-CUBE3系につきまして
弊社決済プラグインは現状ポイント機能に
対応していない状況でございます。

ご要望に添えるよう、弊社といたしましても
前向きに検討させていただきたく存じますが、
現時点で詳細な改修予定等のご案内はいたしかねますことをご了承ください。
~~~~~~~~~~~~~~~~~

EC-CUBE3
イプシロン決済モジュール GmoEpsilon1.1.1で、
ポイントが付与される方法が、お解りの方、
解決して頂けないでしょうか。

お手数ではございますが、どうぞ宜しくお願い致します。
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.