Skip to content

Commit

Permalink
Merge pull request #2 from eccubevn/master-check-connect
Browse files Browse the repository at this point in the history
Master check connect
  • Loading branch information
toannguyen-lockon authored Jan 30, 2019
2 parents 673cf49 + 20bc3a0 commit 769c41c
Show file tree
Hide file tree
Showing 10 changed files with 264 additions and 49 deletions.
83 changes: 74 additions & 9 deletions Controller/Admin/ConfigController.php
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
<?php
namespace Plugin\Onepay\Controller\Admin;

use Plugin\Onepay\Service\Payment\Method\LinkCreditCard;
use Plugin\Onepay\Service\Payment\Method\LinkDomesticCard;
use Plugin\Onepay\Service\Payment\Method\RedirectLinkGateway;
use Symfony\Component\Routing\Annotation\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\HttpFoundation\Request;
use Eccube\Controller\AbstractController;
use Plugin\Onepay\Repository\ConfigRepository;
use Plugin\Onepay\Form\Type\Admin\ConfigType;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;

class ConfigController extends AbstractController
{
Expand All @@ -15,38 +19,99 @@ class ConfigController extends AbstractController
*/
protected $configRepository;

/**
* @var LinkDomesticCard
*/
protected $domesticCard;

/**
* @var LinkCreditCard
*/
protected $creditCard;

/**
* ConfigController constructor.
*
* @param ConfigRepository $configRepository
* @param LinkDomesticCard $domesticCard
* @param LinkCreditCard $creditCard
*/
public function __construct(
ConfigRepository $configRepository
) {
ConfigRepository $configRepository,
LinkDomesticCard $domesticCard,
LinkCreditCard $creditCard
)
{
$this->configRepository = $configRepository;
$this->domesticCard = $domesticCard;
$this->creditCard = $creditCard;
}

/**
* @Route("/%eccube_admin_route%/onepay/config", name="onepay_admin_config")
* @Template("@Onepay/admin/config.twig")
* @param Request $request
* @return array|\Symfony\Component\HttpFoundation\RedirectResponse
* @return array|\Symfony\Component\HttpFoundation\JsonResponse
*/
public function index(Request $request)
{
$Config = $this->configRepository->get();
$form = $this->createForm(ConfigType::class, $Config);
$form->handleRequest($request);

if ($form->isSubmitted() && $form->isValid()) {
$this->entityManager->persist($Config);
$this->entityManager->flush();
$typeCheckCard = $request->get('typeCheckCard');
if ($request->isXmlHttpRequest() && $typeCheckCard) {
if ($typeCheckCard == 'credit'){
$urlCheck = $this->creditCard->checkConn($Config);
}else{
$urlCheck = $this->domesticCard->checkConn($Config);
}

$this->addSuccess('admin.common.save_complete', 'admin');
return $this->redirectToRoute('onepay_admin_config');
return $this->json(['error' => false, 'url' => $urlCheck]);
}

if ($request->get('saveConfig')) {
$this->entityManager->persist($Config);
$this->entityManager->flush();

$this->addSuccess('admin.common.save_complete', 'admin');
}
}

return [
'form' => $form->createView()
'form' => $form->createView(),
'urlCheckCredit' => $this->creditCard->checkConn($Config),
'urlCheckDomestic' => $this->domesticCard->checkConn($Config),
];
}

/**
* @Route("/%eccube_admin_route%/onepay/config/check", name="onepay_admin_config_check")
* @Template("@Onepay/admin/config.twig")
* @param Request $request
* @return array|\Symfony\Component\HttpFoundation\RedirectResponse
*/
public function checkConfig(Request $request)
{
$orderId = intval($request->get('vpc_OrderInfo'));

if ($orderId != RedirectLinkGateway::CREDIT_CHECK_ORDER_ID || $orderId != RedirectLinkGateway::DOMESTIC_CHECK_ORDER_ID) {
throw new NotFoundHttpException();
}

if ($orderId == RedirectLinkGateway::CREDIT_CHECK_ORDER_ID) {
$PaymentMethod = $this->container->get(LinkCreditCard::class);
} else {
$PaymentMethod = $this->container->get(LinkDomesticCard::class);
}

$result = $PaymentMethod->handleRequest($request);
if ($result['status'] === 'success') {
$this->session->set('eccube.front.shopping.order.id', $orderId);
return $this->redirectToRoute('onepay_admin_config');
} else {
$this->addError($result['message'], 'admin');
return $this->redirectToRoute('onepay_admin_config');
}
}
}
5 changes: 3 additions & 2 deletions Controller/OnepayController.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,9 @@ class OnepayController extends AbstractController
*/
protected $orderStateMachine;

/** @var PaidLogsRepository */
/**
* @var PaidLogsRepository
*/
protected $paidLogsRepository;

/**
Expand All @@ -62,7 +64,6 @@ public function __construct(
$this->paidLogsRepository = $paidLogsRepository;
}


/**
* @Route("/onepay/back", name="onepay_back")
* @param Request $request
Expand Down
5 changes: 5 additions & 0 deletions OnepayEvent.php
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,11 @@ public function adminOrderEditIndexInitialize(TemplateEvent $event)
$formatter = new \NumberFormatter($locale, \NumberFormatter::CURRENCY);

$paidLog['vpc_Amount'] = $formatter->formatCurrency($paidLog['vpc_Amount'] / 100, $currency);

if(isset($paidLog['AgainLink'])){
$paidLog['AgainLink'] = urldecode($paidLog['AgainLink']);
}

$parameter['paidLog'] = $paidLog;
$event->setParameters($parameter);

Expand Down
4 changes: 2 additions & 2 deletions PluginManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ protected function setupPayment()
$Payment = new Payment();
$Payment->setCharge(0);
$Payment->setSortNo($sortNo);
$Payment->setVisible(true);
$Payment->setVisible(false);
$Payment->setMethod('Thanh toán bằng thẻ quốc tế');
$Payment->setMethodClass(LinkCreditCard::class);
}
Expand All @@ -109,7 +109,7 @@ protected function setupPayment()
$Payment = new Payment();
$Payment->setCharge(0);
$Payment->setSortNo($sortNo);
$Payment->setVisible(true);
$Payment->setVisible(false);
$Payment->setMethod('Thanh toán bằng thẻ nội địa');
$Payment->setMethodClass(LinkDomesticCard::class);
}
Expand Down
2 changes: 2 additions & 0 deletions Resource/locale/messages.vi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ onepay.config.merchant_access_code.label: "Mã truy cập"
onepay.config.secret.label: "Mã bí mật"
onepay.admin.config.title: "Phương thức thanh toán Onepay"
onepay.admin.config.sub_title: "Tùy chỉnh"
onepay.admin.order.title: "Thông tin thanh toán"
onepay.admin.config.btn.trycheck: "Thử kiểm tra"

onepay.response.credit.msg.Transaction_Successful: Giao dịch thành công
onepay.response.credit.msg.Transaction_status_is_unknown: Tình trạng giao dịch không xác định
Expand Down
66 changes: 62 additions & 4 deletions Resource/template/admin/config.twig
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,66 @@
{% block stylesheet %}

{% endblock stylesheet %}
{% block javascript %}
<script type='text/javascript'>
var cards = $('.c-primaryCol');
cards.find('input').each(function () {
if (!$.trim($(this).val())){
$(this).closest('.card').find('a.check').addClass('disabled');
}
});
cards.find('input[type="text"]').on('change', function (e) {
var conEls = $(this).closest('.card');
var checked = _checkNullInput(conEls);
if (checked === 0) {
_doGetUrl(conEls);
}else{
conEls.find('a.check').addClass('disabled');
}
});
function _checkNullInput(el) {
var _count = 0;
el.find('input[type="text"]').each(function () {
if (!$.trim($(this).val())) {
_count++;
}
});
return _count;
}
function _doGetUrl(conEls) {
var _form = cards.closest('form');
if (conEls.hasClass('credit')) {
_form.find('input[name="typeCheckCard"]').val('credit');
} else {
_form.find('input[name="typeCheckCard"]').val('domestic');
}
$.ajax({
type: "POST",
url: _form.attr('action'),
data: _form.serialize(),
success: function (data) {
if (data.error == false) {
conEls.find('a.check').attr('href', data.url).removeClass('disabled');
}
}
});
}
</script>
{% endblock javascript %}

{% block main %}
<form role="form" method="post">
{{ form_widget(form._token) }}
<input type="hidden" value="" name="typeCheckCard">
<div class="c-contentsArea__cols">
<div class="c-contentsArea__primaryCol">
<div class="c-primaryCol">
<div class="card rounded border-0 mb-4">
<div class="credit card rounded border-0 mb-4">
<div class="card-header"><span>{{ 'onepay.link_credit_card.title'|trans }}</span></div>
<div class="card-body">
{% for child in form.children if child.vars.name != '_token' and 'credit_' in child.vars.name %}
Expand All @@ -37,13 +89,13 @@
<div class="row">
<div class="col-3"></div>
<div class="col mb-2">
<button class="btn btn-ec-conversion px-5 ladda-button" type="submit" data-style="expand-right"><span class="ladda-label">Thử kiểm tra</span><span class="ladda-spinner"></span></button>
<a target="_blank" class="check btn btn-ec-conversion px-5 ladda-button" data-card="credit" href="{{ urlCheckCredit }}">{{ 'onepay.admin.config.btn.trycheck'|trans }}</a>
</div>
</div>
</div>
</div>

<div class="card rounded border-0 mb-4">
<div class="domestic card rounded border-0 mb-4">
<div class="card-header"><span>{{ 'onepay.link_domestic_card.title'|trans }}</span></div>
<div class="card-body">
{% for child in form.children if child.vars.name != '_token' and 'domestic_' in child.vars.name %}
Expand All @@ -60,6 +112,12 @@
</div>
</div>
{% endfor %}
<div class="row">
<div class="col-3"></div>
<div class="col mb-2">
<a target="_blank" class="check btn btn-ec-conversion px-5 ladda-button" data-card="domestic" href="{{ urlCheckDomestic }}">{{ 'onepay.admin.config.btn.trycheck'|trans }}</a>
</div>
</div>
</div>
</div>
</div>
Expand All @@ -79,7 +137,7 @@
<div class="col-6">
<div class="row align-items-center justify-content-end">
<div class="col-auto">
<button class="btn btn-ec-conversion px-5" type="submit">{{ 'admin.common.save'|trans }}</button>
<button class="btn btn-ec-conversion px-5" name="saveConfig" value="ok" type="submit">{{ 'admin.common.save'|trans }}</button>
</div>
</div>
</div>
Expand Down
3 changes: 1 addition & 2 deletions Resource/template/admin/paid_log.twig
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<div class="card-header">
<div class="row">
<div class="col-4 col-sm-3 col-md-2">
<div class="d-inline-block"><span class="card-title">Thông tin thanh toán</span></div>
<div class="d-inline-block"><span class="card-title">{{ 'onepay.admin.order.title'|trans }}</span></div>
</div>
<div class="col-6 col-sm-6 col-md-8">
{{ payment.getMethod() }}
Expand All @@ -20,7 +20,6 @@
</div>
</div>
<div class="collapse ec-cardCollapse h-adr" id="paidInformation">
<span class="p-country-name" style="display:none;">Japan</span>
<div class="card-body">
<div class="row">
<div class="col-12">
Expand Down
Loading

0 comments on commit 769c41c

Please sign in to comment.