app/Plugin/UnivaPay/UnivaPayEvent.php line 66

Open in your IDE?
  1. <?php
  2. namespace Plugin\UnivaPay;
  3. use Eccube\Event\TemplateEvent;
  4. use Eccube\Event\EventArgs;
  5. use Eccube\Event\EccubeEvents;
  6. use Eccube\Application;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. use Plugin\UnivaPay\Repository\ConfigRepository;
  9. use Plugin\UnivaPay\Util\SDK;
  10. class UnivaPayEvent implements EventSubscriberInterface
  11. {
  12.     /** @var ConfigRepository */
  13.     protected $Config;
  14.     /**
  15.      * UnivaPayEvent constructor.
  16.      *
  17.      * @param ConfigRepository $configRepository
  18.      */
  19.     public function __construct(
  20.         ConfigRepository $configRepository
  21.     ) {
  22.         $this->Config $configRepository;
  23.     }
  24.     /**
  25.      * リッスンしたいサブスクライバのイベント名の配列を返します。
  26.      * 配列のキーはイベント名、値は以下のどれかをしてします。
  27.      * - 呼び出すメソッド名
  28.      * - 呼び出すメソッド名と優先度の配列
  29.      * - 呼び出すメソッド名と優先度の配列の配列
  30.      * 優先度を省略した場合は0
  31.      *
  32.      * 例:
  33.      * - array('eventName' => 'methodName')
  34.      * - array('eventName' => array('methodName', $priority))
  35.      * - array('eventName' => array(array('methodName1', $priority), array('methodName2')))
  36.      *
  37.      * {@inheritdoc}
  38.      */
  39.     public static function getSubscribedEvents()
  40.     {
  41.         return [
  42.             '@admin/Order/edit.twig' => 'onAdminOrderEditTwig',
  43.             'Shopping/confirm.twig' => 'onShoppingConfirmTwig',
  44.             'Mypage/history.twig' => 'onMypageHistoryTwig',
  45.             '@admin/Product/product.twig' => 'onAdminProductEditTwig',
  46.             EccubeEvents::FRONT_MYPAGE_WITHDRAW_INDEX_COMPLETE => 'onMypageWithdraw'
  47.         ];
  48.     }
  49.     public function onAdminOrderEditTwig(TemplateEvent $event)
  50.     {
  51.         $event->addSnippet('@UnivaPay/admin/order_edit.twig');
  52.     }
  53.     public function onShoppingConfirmTwig(TemplateEvent $event)
  54.     {
  55.         $event->addSnippet('@UnivaPay/shopping_confirm.twig');
  56.     }
  57.     public function onMypageHistoryTwig(TemplateEvent $event) {
  58.         $event->addSnippet('@UnivaPay/mypage_history.twig');
  59.     }
  60.     public function onAdminProductEditTwig(TemplateEvent $event)
  61.     {
  62.         $event->addSnippet('@UnivaPay/admin/product_edit.twig');
  63.     }
  64.     public function onMypageWithdraw(EventArgs $event)
  65.     {
  66.         $Customer $event->getArgument('Customer');
  67.         $subscriptionId '';
  68.         $config $this->Config->findOneById(1);
  69.         $util = new SDK($config);
  70.         foreach($Customer->getOrders() as $Order) {
  71.             $nowSubscription $Order->getUnivaPaySubscriptionId();
  72.             if($nowSubscription && $nowSubscription !== $subscriptionId) {
  73.                 $subscriptionId $nowSubscription;
  74.                 $subscription $util->getSubscription($subscriptionId);
  75.                 if($subscription && $subscription->status->getValue() === 'current')
  76.                     $subscription $subscription->cancel();
  77.             }
  78.         }
  79.     }
  80. }