diff --git a/app/Config/Constants.php b/app/Config/Constants.php index 3ce9815..d76c3e3 100644 --- a/app/Config/Constants.php +++ b/app/Config/Constants.php @@ -218,6 +218,10 @@ define('ICONS', [ 'HOME' => '', 'PLAY' => '', 'CART' => '', + 'UP' => '', + 'DOWN' => '', + 'LEFT' => '', + 'RIGHT' => '', 'IMAGE_FILE' => '', ]); define('CLASS_ICONS', [ diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 68349ad..4de56d3 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -169,6 +169,7 @@ $routes->group('front', ['namespace' => 'App\Controllers\Front'], function ($rou $routes->get('', 'PaymentController::index'); $routes->get('card/(:uuid)', 'PaymentController::card_form/$1'); $routes->post('card/(:uuid)', 'PaymentController::card/$1'); + $routes->get('deposit/(:uuid)', 'PaymentController::deposit_form/$1'); }); }); /* diff --git a/app/Controllers/Front/PaymentController.php b/app/Controllers/Front/PaymentController.php index 9ad5e94..ba142b9 100644 --- a/app/Controllers/Front/PaymentController.php +++ b/app/Controllers/Front/PaymentController.php @@ -2,16 +2,18 @@ namespace App\Controllers\Front; +use App\Entities\PaymentEntity; +use App\Libraries\Adapter\Payment\CookiePayment as PaymentAdapter; +use App\Models\OrderModel; use App\Models\PaymentModel; +use App\Models\UserModel; use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\ResponseInterface; use Psr\Log\LoggerInterface; -use App\Models\OrderModel; -use App\Entities\PaymentEntity; -use App\Libraries\Adapter\Payment\CookiePayment as PaymentAdapter; class PaymentController extends FrontController { + private $_userModel = null; private $_orderModel = null; public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) { @@ -23,6 +25,10 @@ class PaymentController extends FrontController $this->isRole('index'); } + private function getUserModel() + { + return $this->_userModel = $this->_userModel ?: new UserModel(); + } private function getOrderModel() { return $this->_orderModel = $this->_orderModel ?: new OrderModel(); @@ -74,6 +80,7 @@ class PaymentController extends FrontController { try { $this->card_init(); + $this->_viewDatas['user'] = $this->getUserModel()->getEntity([$this->getUserModel()->getPrimaryKey() => $this->_viewDatas['auth'][AUTH_FIELDS['ID']]]); $this->_viewDatas['order'] = $this->getOrderModel()->getEntity([$this->getOrderModel()->getPrimaryKey() => $uid]); helper(['form']); $this->_viewDatas['forms'] = ['attributes' => ['method' => "post",], 'hiddens' => []]; @@ -111,7 +118,7 @@ class PaymentController extends FrontController { $msg = ""; try { - $this->_viewDatas = $this->card_init(); + $this->card_init(); $this->card_validate(); $entity = $this->card_process(); $msg = "{$this->_viewDatas['title']}에서 {$entity->getTitle()}의 " . __FUNCTION__ . " 완료하였습니다."; @@ -125,4 +132,21 @@ class PaymentController extends FrontController $this->_session->setFlashdata("return_message", $msg); } } + + public function deposit_form($uid) + { + try { + $this->_viewDatas['bank'] = [ + "name" => getenv("payment.deposit.bank.name") ?: "은행명", + "account" => getenv("payment.deposit.bank.account") ?: "계좌번호", + "holder" => getenv("payment.deposit.bank.holder") ?: "예금주" + ]; + $this->_viewDatas['order'] = $this->getOrderModel()->getEntity([$this->getOrderModel()->getPrimaryKey() => $uid]); + $this->_session->keepFlashdata(SESSION_NAMES['RETURN_URL']); + return view($this->_viewPath . '/deposit', ['viewDatas' => $this->_viewDatas]); + } catch (\Exception $e) { + log_message("error", $e->getMessage()); + return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL']) ?: "/")->with('return_message', $e->getMessage()); + } + } } diff --git a/app/Helpers/Board_helper.php b/app/Helpers/Board_helper.php index c7a0325..e47730f 100644 --- a/app/Helpers/Board_helper.php +++ b/app/Helpers/Board_helper.php @@ -105,11 +105,23 @@ function getFieldFilter_BoardHelper($field, $value, array $viewDatas) function getFieldIndex_Column_BoardHelper($field, array $viewDatas) { $label = lang("{$viewDatas['className']}.label.{$field}"); - $label = $field == $viewDatas['order_field'] ? sprintf('%s ', $label, $viewDatas['order_value'] == 'ASC' ? "up" : "down") : $label; + if ($field == $viewDatas['order_field']) { + $label .= $viewDatas['order_value'] == 'ASC' ? ICONS['UP'] : ICONS['DOWN']; + } $value = $viewDatas['order_value'] == 'DESC' ? "ASC" : "DESC"; - return anchor(current_url() . "?order_field={$field}&order_value={$value}", $label); + $viewDatas['uri']->addQuery('order_field', $field); + $viewDatas['uri']->addQuery('order_value', $value); + $columnData = anchor($viewDatas['uri'], $label); + switch ($field) { + case 'title': + case 'name': + return sprintf("%s", $columnData); + break; + default: + return sprintf("%s", $columnData); + break; + } } // - //Front용 function getFieldIndex_Row_BoardHelper($field, $entity, array $viewDatas): string { diff --git a/app/Helpers/Category_helper.php b/app/Helpers/Category_helper.php index c87c95f..db7099c 100644 --- a/app/Helpers/Category_helper.php +++ b/app/Helpers/Category_helper.php @@ -105,9 +105,22 @@ function getFieldFilter_CategoryHelper($field, $value, array $viewDatas) function getFieldIndex_Column_CategoryHelper($field, array $viewDatas) { $label = lang("{$viewDatas['className']}.label.{$field}"); - $label = $field == $viewDatas['order_field'] ? sprintf('%s ', $label, $viewDatas['order_value'] == 'ASC' ? "up" : "down") : $label; + if ($field == $viewDatas['order_field']) { + $label .= $viewDatas['order_value'] == 'ASC' ? ICONS['UP'] : ICONS['DOWN']; + } $value = $viewDatas['order_value'] == 'DESC' ? "ASC" : "DESC"; - return anchor(current_url() . "?order_field={$field}&order_value={$value}", $label); + $viewDatas['uri']->addQuery('order_field', $field); + $viewDatas['uri']->addQuery('order_value', $value); + $columnData = anchor($viewDatas['uri'], $label); + switch ($field) { + case 'title': + case 'name': + return sprintf("%s", $columnData); + break; + default: + return sprintf("%s", $columnData); + break; + } } // //Front용 diff --git a/app/Helpers/Order_helper.php b/app/Helpers/Order_helper.php index 1adede1..44e6f95 100644 --- a/app/Helpers/Order_helper.php +++ b/app/Helpers/Order_helper.php @@ -99,9 +99,22 @@ function getFieldFilter_OrderHelper($field, $value, array $viewDatas) function getFieldIndex_Column_OrderHelper($field, array $viewDatas) { $label = lang("{$viewDatas['className']}.label.{$field}"); - $label = $field == $viewDatas['order_field'] ? sprintf('%s ', $label, $viewDatas['order_value'] == 'ASC' ? "up" : "down") : $label; + if ($field == $viewDatas['order_field']) { + $label .= $viewDatas['order_value'] == 'ASC' ? ICONS['UP'] : ICONS['DOWN']; + } $value = $viewDatas['order_value'] == 'DESC' ? "ASC" : "DESC"; - return anchor(current_url() . "?order_field={$field}&order_value={$value}", $label); + $viewDatas['uri']->addQuery('order_field', $field); + $viewDatas['uri']->addQuery('order_value', $value); + $columnData = anchor($viewDatas['uri'], $label); + switch ($field) { + case 'title': + case 'name': + return sprintf("%s", $columnData); + break; + default: + return sprintf("%s", $columnData); + break; + } } // //Front용 @@ -112,7 +125,7 @@ function getFieldIndex_Row_OrderHelper($field, $entity, array $viewDatas): strin case 'title': case 'name': return sprintf( - "
%s : %s
%s
", + "%s : %s
%s", lang("{$viewDatas['className']}.label.uid"), $entity->getOrderHint(), anchor( @@ -124,11 +137,15 @@ function getFieldIndex_Row_OrderHelper($field, $entity, array $viewDatas): strin break; case 'status': if ($value == DEFAULTS['STATUS']) { - return anchor( + return sprintf("
%s
%s
", anchor( '/front/payment/card/' . $entity->getPrimaryKey(), - $viewDatas['fieldFormOptions'][$field][$value], + "카드결제", ["class" => "btn btn-sm btn-primary btn-circle", "style" => "color:white", "target" => "_self"] - ); + ), anchor( + '/front/payment/deposit/' . $entity->getPrimaryKey(), + "무통장입금", + ["class" => "btn btn-sm btn-info btn-circle", "style" => "color:white", "target" => "_self"] + )); } else { return getFieldView_OrderHelper($field, $entity, $viewDatas); } diff --git a/app/Helpers/Payment_helper.php b/app/Helpers/Payment_helper.php index 16d12ec..0e6ad43 100644 --- a/app/Helpers/Payment_helper.php +++ b/app/Helpers/Payment_helper.php @@ -88,6 +88,12 @@ function getFieldForm_PaymentHelper($field, $value, array $viewDatas, array $att form_dropdown("{$field}[]", $years, DEFAULTS['EMPTY']), ); break; + case 'card_email': + return form_input($field, $viewDatas['user']->email); + break; + case 'card_mobile': + return form_input($field, $viewDatas['user']->mobile); + break; default: return form_input($field, $value); break; @@ -129,9 +135,22 @@ function getFieldFilter_PaymentHelper($field, $value, array $viewDatas) function getFieldIndex_Column_PaymentHelper($field, array $viewDatas) { $label = lang("{$viewDatas['className']}.label.{$field}"); - $label = $field == $viewDatas['order_field'] ? sprintf('%s ', $label, $viewDatas['order_value'] == 'ASC' ? "up" : "down") : $label; + if ($field == $viewDatas['order_field']) { + $label .= $viewDatas['order_value'] == 'ASC' ? ICONS['UP'] : ICONS['DOWN']; + } $value = $viewDatas['order_value'] == 'DESC' ? "ASC" : "DESC"; - return anchor(current_url() . "?order_field={$field}&order_value={$value}", $label); + $viewDatas['uri']->addQuery('order_field', $field); + $viewDatas['uri']->addQuery('order_value', $value); + $columnData = anchor($viewDatas['uri'], $label); + switch ($field) { + case 'title': + case 'name': + return sprintf("%s", $columnData); + break; + default: + return sprintf("%s", $columnData); + break; + } } // //Front용 diff --git a/app/Helpers/Product_helper.php b/app/Helpers/Product_helper.php index 5a83d97..8425e88 100644 --- a/app/Helpers/Product_helper.php +++ b/app/Helpers/Product_helper.php @@ -114,12 +114,25 @@ function getFieldFilter_ProductHelper($field, $value, array $viewDatas) return form_dropdown($field, $viewDatas['fieldFormOptions'][$field], $value, ['class' => "select-field"]); } // -function getFieldIndex_Column_ProductHelper($field, array $viewDatas) +function getFieldIndex_Column_Productelper($field, array $viewDatas) { $label = lang("{$viewDatas['className']}.label.{$field}"); - $label = $field == $viewDatas['order_field'] ? sprintf('%s ', $label, $viewDatas['order_value'] == 'ASC' ? "up" : "down") : $label; + if ($field == $viewDatas['order_field']) { + $label .= $viewDatas['order_value'] == 'ASC' ? ICONS['UP'] : ICONS['DOWN']; + } $value = $viewDatas['order_value'] == 'DESC' ? "ASC" : "DESC"; - return anchor(current_url() . "?order_field={$field}&order_value={$value}", $label); + $viewDatas['uri']->addQuery('order_field', $field); + $viewDatas['uri']->addQuery('order_value', $value); + $columnData = anchor($viewDatas['uri'], $label); + switch ($field) { + case 'title': + case 'name': + return sprintf("%s", $columnData); + break; + default: + return sprintf("%s", $columnData); + break; + } } // //Front용 diff --git a/app/Helpers/Sitepage_helper.php b/app/Helpers/Sitepage_helper.php index c2b6cb7..5b2c99e 100644 --- a/app/Helpers/Sitepage_helper.php +++ b/app/Helpers/Sitepage_helper.php @@ -105,9 +105,22 @@ function getFieldFilter_SitepageHelper($field, $value, array $viewDatas) function getFieldIndex_Column_SitepageHelper($field, array $viewDatas) { $label = lang("{$viewDatas['className']}.label.{$field}"); - $label = $field == $viewDatas['order_field'] ? sprintf('%s ', $label, $viewDatas['order_value'] == 'ASC' ? "up" : "down") : $label; + if ($field == $viewDatas['order_field']) { + $label .= $viewDatas['order_value'] == 'ASC' ? ICONS['UP'] : ICONS['DOWN']; + } $value = $viewDatas['order_value'] == 'DESC' ? "ASC" : "DESC"; - return anchor(current_url() . "?order_field={$field}&order_value={$value}", $label); + $viewDatas['uri']->addQuery('order_field', $field); + $viewDatas['uri']->addQuery('order_value', $value); + $columnData = anchor($viewDatas['uri'], $label); + switch ($field) { + case 'title': + case 'name': + return sprintf("%s", $columnData); + break; + default: + return sprintf("%s", $columnData); + break; + } } // //Front용 diff --git a/app/Helpers/UserSNS_helper.php b/app/Helpers/UserSNS_helper.php index 347a00b..a4c90d2 100644 --- a/app/Helpers/UserSNS_helper.php +++ b/app/Helpers/UserSNS_helper.php @@ -93,9 +93,22 @@ function getFieldFilter_UserSNSHelper($field, $value, array $viewDatas) function getFieldIndex_Column_UserSNSHelper($field, array $viewDatas) { $label = lang("{$viewDatas['className']}.label.{$field}"); - $label = $field == $viewDatas['order_field'] ? sprintf('%s ', $label, $viewDatas['order_value'] == 'ASC' ? "up" : "down") : $label; + if ($field == $viewDatas['order_field']) { + $label .= $viewDatas['order_value'] == 'ASC' ? ICONS['UP'] : ICONS['DOWN']; + } $value = $viewDatas['order_value'] == 'DESC' ? "ASC" : "DESC"; - return anchor(current_url() . "?order_field={$field}&order_value={$value}", $label); + $viewDatas['uri']->addQuery('order_field', $field); + $viewDatas['uri']->addQuery('order_value', $value); + $columnData = anchor($viewDatas['uri'], $label); + switch ($field) { + case 'title': + case 'name': + return sprintf("%s", $columnData); + break; + default: + return sprintf("%s", $columnData); + break; + } } // //Front용 diff --git a/app/Helpers/User_helper.php b/app/Helpers/User_helper.php index 6d636de..9d7ef82 100644 --- a/app/Helpers/User_helper.php +++ b/app/Helpers/User_helper.php @@ -109,9 +109,22 @@ function getFieldFilter_UserHelper($field, $value, array $viewDatas) function getFieldIndex_Column_UserHelper($field, array $viewDatas) { $label = lang("{$viewDatas['className']}.label.{$field}"); - $label = $field == $viewDatas['order_field'] ? sprintf('%s ', $label, $viewDatas['order_value'] == 'ASC' ? "up" : "down") : $label; + if ($field == $viewDatas['order_field']) { + $label .= $viewDatas['order_value'] == 'ASC' ? ICONS['UP'] : ICONS['DOWN']; + } $value = $viewDatas['order_value'] == 'DESC' ? "ASC" : "DESC"; - return anchor(current_url() . "?order_field={$field}&order_value={$value}", $label); + $viewDatas['uri']->addQuery('order_field', $field); + $viewDatas['uri']->addQuery('order_value', $value); + $columnData = anchor($viewDatas['uri'], $label); + switch ($field) { + case 'title': + case 'name': + return sprintf("%s", $columnData); + break; + default: + return sprintf("%s", $columnData); + break; + } } // //Front용 diff --git a/app/Language/ko/Order.php b/app/Language/ko/Order.php index 6a8b695..487c06f 100644 --- a/app/Language/ko/Order.php +++ b/app/Language/ko/Order.php @@ -16,7 +16,7 @@ return [ 'created_at' => "작성일" ], "STATUS" => [ - "use" => "결제하기", + "use" => "장바구니", "unuse" => "주문취소", "paid" => "결제완료" ] diff --git a/app/Libraries/Adapter/Payment/CookiePayment.php b/app/Libraries/Adapter/Payment/CookiePayment.php index 62c5d77..a417144 100644 --- a/app/Libraries/Adapter/Payment/CookiePayment.php +++ b/app/Libraries/Adapter/Payment/CookiePayment.php @@ -19,10 +19,10 @@ class CookiePayment extends Payment $adapter = new APIAdapter(); $adapter->setHeader("content-type", "application/json; charset=utf-8"); /* 토큰 발행 API */ - $adapter->setURL(getenv("payment.cookiepay.token_url") ?: "{TOKEN 발행 URL}"); + $adapter->setURL(getenv("payment.card.pay2.token_url") ?: "{TOKEN 발행 URL}"); $adapter->setDatas(array( - 'pay2_id' => 'cookiepayments에서 발급받은 ID', - 'pay2_key' => 'cookiepayments에서 발급받은 연동키', + 'pay2_id' => getenv("payment.card.pay2.id") ?: 'cookiepayments에서 발급받은 ID', + 'pay2_key' => getenv("payment.card.pay2.key") ?: 'cookiepayments에서 발급받은 연동키', )); $token = $adapter->execute(); /* 여기 까지 */ @@ -35,9 +35,9 @@ class CookiePayment extends Payment { $adapter = new APIAdapter(); $adapter->setHeader("content-type", "application/json; charset=utf-8"); - $adapter->setHeader("ApiKey", getenv("payment.cookiepay.apikey") ?: "COOKIEPAY에서 발급받은 연동키"); + $adapter->setHeader("ApiKey", getenv("payment.card.pay2.apikey") ?: "COOKIEPAY에서 발급받은 연동키"); $adapter->setHeader("TOKEN", $this->getToken()); - $adapter->setURL(getenv("payment.cookiepay.url") ?: "{요청도메인}/keyin/payment"); + $adapter->setURL(getenv("payment.card.pay2.url") ?: "{요청도메인}/keyin/payment"); $adapter->setDatas(array( 'API_ID' => 'COOKIEPAY에서 발급받은 가맹점연동 ID', 'ORDERNO' => '주문번호', diff --git a/app/Views/front/order/index.php b/app/Views/front/order/index.php index 2782f5b..c44c776 100644 --- a/app/Views/front/order/index.php +++ b/app/Views/front/order/index.php @@ -10,7 +10,7 @@ 번호 - + @@ -21,7 +21,7 @@ - + diff --git a/app/Views/front/payment/card.php b/app/Views/front/payment/card.php index 528f544..aff8534 100644 --- a/app/Views/front/payment/card.php +++ b/app/Views/front/payment/card.php @@ -23,7 +23,7 @@ - "btn btn-outline btn-primary")); ?> + "btn btn-outline btn-primary")); ?> diff --git a/app/Views/front/payment/deposit.php b/app/Views/front/payment/deposit.php new file mode 100644 index 0000000..ed5c653 --- /dev/null +++ b/app/Views/front/payment/deposit.php @@ -0,0 +1,38 @@ +extend('layouts/front') ?> +section('content') ?> + +
+
head) ?>
+ + + + + + + + + + + + + + + + + + + + + + + + +
상품명getTitle() ?>
결제금액price) ?>원
은행명
계좌번호
예금주
+ 설명문...... + 설명문...... + 설명문...... + 설명문...... +
+
tail) ?>
+
+endSection() ?> \ No newline at end of file