概要
EC-CUBE3.0でGMOイプシロンの決済を行うと「システムエラーが発生しました。注文情報の商品名の形式が異常です。」とエラーが出てしまいます。
イプシロン決済システムの仕様では商品名が「64バイト以下」という制限があるようです。
- イプシロン決済プラグイン(3.0系) バージョン 1.0.5
実現したいこと
プラグインをカスタマイズし、イプシロンにデータを送信したい。
商品名が長いためにこのようなエラーが出ていることは分かったのですが、書き換える場所と変更方法がわかりません。
お詳しい方、ご教示お願い致します。
該当と思われるソースコード
app/Plugin/EccubePaymentLite3/Service/Client/GmoEpsilon_Base.php
php
1 /** 2 * リクエストパラメータを設定 3 * 4 * @param Order $Order 5 * @param PaymentExtension 6 * @return array 7 */ 8 function setParameter($Order, $PaymentExtension) 9 { 10 $cartItems = array(); 11 $cartItems = $this->app['eccube.service.cart']->getCart()->getCartItems(); 12 13 $objPlugin =& PluginUtil::getInstance($this->app); 14 $Customer = $Order->getCustomer(); 15 $user_id = is_null($Customer) ? 'non_customer' : $Customer->getId(); 16 17 $itemInfo = $this->getItemInfo(); 18 19 $mission_code = $PaymentExtension->getMissionCode(); 20 if (is_null($mission_code)) { 21 $mission_code = 1; 22 } else { 23 // 定期購入・非会員の場合、空文字に置き換え 24 $user_id = $user_id == 'non_customer' ? '' : $user_id; 25 } 26 27 // 送信データを作成 28 $arrResult = array( 29 'contract_code' => $objPlugin->getSubData('contract_code'), 30 'user_id' => $user_id, // ユーザID 31 'user_name' => $Order->getName01().$Order->getName02(), // ユーザ名 32 'user_mail_add' => $Order->getEmail(), // メールアドレス 33 'order_number' => $Order->getId(), // オーダー番号 34 'item_code' => $itemInfo['item_code'], // 商品コード(代表) 35 'item_name' => $itemInfo['item_name'], // 商品名(代表) 36 'item_price' => $Order->getPaymentTotal(), // 商品価格(税込み総額) 37 'st_code' => $PaymentExtension->getStCode(), // 決済区分 38 'mission_code' => $mission_code, // 課金区分(固定) 39 'process_code' => '1', // 処理区分(固定) 40 'xml' => '1', // 応答形式(固定) 41 'memo1' => "", // 予備01 42 'memo2' => "EC-CUBE3_" . date("YmdHis"), // 予備02 43 'delivery_id' => '99', 44 'version' => '1', 45 ); 46 47 return $arrResult; 48 }

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。