<?php
/* __________________________________________________
| Obfuscated by YAK Pro - Php Obfuscator 2.0.3 |
| on 2021-09-17 16:10:28 |
| GitHub: https://github.com/pk-fr/yakpro-po |
|__________________________________________________|
*/
namespace Plugin\AmazonPayV2;
use Eccube\Event\TemplateEvent;
use Eccube\Event\EventArgs;
use Eccube\Event\EccubeEvents;
use Eccube\Common\EccubeConfig;
use Eccube\Repository\PaymentRepository;
use Eccube\Repository\PluginRepository;
use Eccube\Service\OrderHelper;
use Eccube\Service\CartService;
use Plugin\AmazonPayV2\Repository\ConfigRepository;
use Plugin\AmazonPayV2\Service\AmazonRequestService;
use Plugin\AmazonPayV2\Service\Method\AmazonPay;
use Plugin\AmazonPayV2\phpseclib\Crypt\Random;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Eccube\Repository\DeliveryRepository;
use Eccube\Repository\PaymentOptionRepository;
class AmazonPayEvent implements EventSubscriberInterface
{
private $sessionAmazonProfileKey = 'amazon_pay_v2.profile';
private $sessionAmazonCheckoutSessionIdKey = 'amazon_pay_v2.checkout_session_id';
private $sessionAmazonLoginStateKey = 'amazon_pay_v2.amazon_login_state';
protected $eccubeConfig;
private $router;
protected $configRepository;
protected $amazonRequestService;
protected $deliveryRepository;
protected $paymentOptionRepository;
public function __construct(RequestStack $requestStack, SessionInterface $session, TokenStorageInterface $tokenStorage, EccubeConfig $eccubeConfig, UrlGeneratorInterface $router, PaymentRepository $paymentRepository, PluginRepository $pluginRepository, ConfigRepository $configRepository, ContainerInterface $container, OrderHelper $orderHelper, CartService $cartService, AmazonRequestService $amazonRequestService, DeliveryRepository $deliveryRepository, PaymentOptionRepository $paymentOptionRepository)
{
goto aVoZ4;
hmafY:
$this->amazonRequestService = $amazonRequestService;
goto qGpsx;
roPbp:
$this->eccubeConfig = $eccubeConfig;
goto nKZ7S;
SQPlW:
$this->container = $container;
goto WxAU0;
VKgeO:
$this->paymentRepository = $paymentRepository;
goto HRaQz;
WxAU0:
$this->orderHelper = $orderHelper;
goto aiXmP;
aiXmP:
$this->cartService = $cartService;
goto hmafY;
sLLW4:
$this->session = $session;
goto hYte7;
pqIVu:
$this->paymentOptionRepository = $paymentOptionRepository;
goto k8smY;
VLD8C:
$this->configRepository = $configRepository;
goto SQPlW;
hYte7:
$this->tokenStorage = $tokenStorage;
goto roPbp;
aVoZ4:
$this->requestStack = $requestStack;
goto sLLW4;
qGpsx:
$this->deliveryRepository = $deliveryRepository;
goto pqIVu;
HRaQz:
$this->pluginRepository = $pluginRepository;
goto VLD8C;
nKZ7S:
$this->router = $router;
goto VKgeO;
k8smY:
}
public static function getSubscribedEvents()
{
return [
EccubeEvents::FRONT_CART_BUYSTEP_COMPLETE => 'amazon_cart_buystep',
'Cart/index.twig' => 'cart',
'Shopping/amz_index.twig' => 'amazon_pay_shopping',
// 'Mypage/login.twig' => 'mypage_login',
'Shopping/amz_confirm.twig' => 'amazon_pay_shopping_confirm',
'LandingPage/index.twig' => 'lp_amazon_login'
];
}
public function cart(TemplateEvent $event)
{
goto oHfyb;
f4S9l:
return;
goto MGINf;
kmRPH:
if (!($Config->getUseCartButton() == $this->eccubeConfig['amazon_pay_v2']['toggle']['off'])) {
goto RGUKj;
}
goto f4S9l;
Zgged:
BUV21:
goto j92EP;
c3v82:
goto n6C_z;
goto SwFTt;
yG2CA:
foreach ($parameters['Carts'] as $Cart) {
goto bFs97;
qXqv9:
$signature = $this->amazonRequestService->signaturePayload($payload);
goto K50mn;
nOelm:
wuOVV:
goto V9Rt1;
bFs97:
$cartKey = $Cart->getCartKey();
goto NA6lH;
C5JCl:
$parameters['cart'][$cartKey]['signature'] = $signature;
goto nOelm;
K50mn:
$parameters['cart'][$cartKey]['payload'] = $payload;
goto C5JCl;
NA6lH:
$payload = $this->amazonRequestService->createCheckoutSessionPayload($Cart->getCartKey());
goto qXqv9;
V9Rt1:
}
goto MrTmV;
HmXUF:
$AmazonSaleTypes = [];
goto QWNDI;
AMMqf:
$event->setParameters($parameters);
goto mY_Dt;
j92EP:
$Config = $this->configRepository->get();
goto kmRPH;
SwFTt:
igeDA:
goto Mmxol;
HSbyT:
n6C_z:
goto AMMqf;
rutP5:
$event->addSnippet('@AmazonPayV2/default/Cart/button.twig');
goto nKr0E;
OZYak:
$parameters['AmazonPayV2Config'] = $Config;
goto Sq8AH;
Sfdza:
$Payment = $this->paymentRepository->findOneBy(['method_class' => AmazonPay::class]);
goto yB4uQ;
Sq8AH:
if ($Config->getEnv() == $this->eccubeConfig['amazon_pay_v2']['env']['prod']) {
goto igeDA;
}
goto lzlWd;
MGINf:
RGUKj:
goto Sfdza;
lzlWd:
$parameters['AmazonPayV2Api'] = $this->eccubeConfig['amazon_pay_v2']['api']['sandbox'];
goto c3v82;
JD855:
if (!($Config->getCartButtonPlace() == $this->eccubeConfig['amazon_pay_v2']['button_place']['auto'])) {
goto koxCA;
}
goto rutP5;
MrTmV:
H_6pS:
goto OZYak;
nKr0E:
koxCA:
goto tzB4D;
mY_Dt:
$event->addSnippet('@AmazonPayV2/default/Cart/amazon_pay_js.twig');
goto JD855;
U1u0T:
return;
goto Zgged;
oHfyb:
$parameters = $event->getParameters();
goto cLVu6;
ppGFB:
pOcXa:
goto gLoLj;
cLVu6:
if (!empty($parameters['Carts'])) {
goto BUV21;
}
goto U1u0T;
yB4uQ:
$AmazonDeliveries = $this->paymentOptionRepository->findBy(['payment_id' => $Payment->getId()]);
goto HmXUF;
Mmxol:
$parameters['AmazonPayV2Api'] = $this->eccubeConfig['amazon_pay_v2']['api']['prod'];
goto HSbyT;
gLoLj:
$parameters['AmazonSaleTypes'] = $AmazonSaleTypes;
goto yG2CA;
QWNDI:
foreach ($AmazonDeliveries as $AmazonDelivery) {
goto JXvCt;
FX_In:
xa8Rr:
goto ARRQg;
JXvCt:
$Delivery = $this->deliveryRepository->findOneBy(['id' => $AmazonDelivery->getDelivery()->getId()]);
goto GTwJU;
GTwJU:
$AmazonSaleTypes[] = $Delivery->getSaleType()->getId();
goto FX_In;
ARRQg:
}
goto ppGFB;
tzB4D:
}
public function amazon_cart_buystep(EventArgs $event)
{
goto PlrsM;
Yq8pk:
$this->cartService->setPreOrderId(null);
goto HFF8t;
trH7S:
m3bML:
goto Dti8n;
f6UKN:
$this->session->remove($this->sessionAmazonProfileKey);
goto Yq8pk;
HFF8t:
$this->cartService->save();
goto trH7S;
PlrsM:
if (!($this->orderHelper->getNonmember() && $this->session->get($this->sessionAmazonProfileKey))) {
goto m3bML;
}
goto MkSv4;
MkSv4:
$this->session->remove(OrderHelper::SESSION_NON_MEMBER);
goto f6UKN;
Dti8n:
}
public function amazon_pay_shopping(TemplateEvent $event)
{
goto oYvK6;
W2hdE:
exit;
goto CyOIF;
Pndg9:
$parameters['AmazonPayV2Api'] = $this->eccubeConfig['amazon_pay_v2']['api']['prod'];
goto A6AZM;
C1inr:
$parameters['useMailMagazine'] = $useMailMagazine;
goto JE4_8;
fEE4R:
$event->addSnippet('@AmazonPayV2/default/Shopping/widgets.twig');
goto d5P2v;
sPhn2:
if ($this->pluginRepository->findOneBy(['code' => 'MailMagazine4', 'enabled' => true]) || $this->pluginRepository->findOneBy(['code' => 'PostCarrier4', 'enabled' => true])) {
goto cTDPC;
}
goto OdOe9;
fOiBV:
$parameters['AmazonPayV2Config'] = $Config;
goto sPhn2;
CyOIF:
ebgpY:
goto Hejjy;
vYeJa:
goto yFk83;
goto GJqZ7;
GJqZ7:
cTDPC:
goto Rxknz;
OdOe9:
$useMailMagazine = false;
goto vYeJa;
JE4_8:
if ($Config->getEnv() == $this->eccubeConfig['amazon_pay_v2']['env']['prod']) {
goto eU5dp;
}
goto aQ0VV;
AM9ez:
goto J8r8P;
goto miotL;
Iz036:
$parameters = $event->getParameters();
goto v7CCd;
Rxknz:
$useMailMagazine = true;
goto tm34k;
jVZli:
X5DOk:
goto ysqHh;
v7CCd:
$parameters['amazonCheckoutSessionId'] = $amazonCheckoutSessionId;
goto fOiBV;
ysqHh:
$Config = $this->configRepository->get();
goto fEE4R;
Hejjy:
return;
goto jVZli;
DYYIw:
$parameters = $event->getParameters();
goto jGwvD;
cm7PT:
$Order = $parameters['Order'];
goto AhkWS;
miotL:
eU5dp:
goto Pndg9;
MU1mx:
$referer = $request->headers->get('referer');
goto cm7PT;
d5P2v:
$event->addSnippet('@AmazonPayV2/default/Shopping/customer_regist_v2.twig');
goto LxFxK;
tm34k:
yFk83:
goto C1inr;
A6AZM:
J8r8P:
goto LqlkU;
aQ0VV:
$parameters['AmazonPayV2Api'] = $this->eccubeConfig['amazon_pay_v2']['api']['sandbox'];
goto AM9ez;
oYvK6:
$request = $this->requestStack->getMasterRequest();
goto OoZ9Z;
AhkWS:
$Payment = $Order->getPayment();
goto lELcs;
LxFxK:
$amazonCheckoutSessionId = $this->session->get($this->sessionAmazonCheckoutSessionIdKey);
goto Iz036;
lELcs:
if (!($Payment && $Payment->getMethodClass() === AmazonPay::class && preg_match('/shopping_coupon/', $referer))) {
goto ebgpY;
}
goto hQLcd;
OoZ9Z:
$uri = $request->getUri();
goto DYYIw;
jGwvD:
if (!(preg_match('/shopping\\/amazon_pay/', $uri) == false)) {
goto X5DOk;
}
goto MU1mx;
LqlkU:
$event->setParameters($parameters);
goto sY5v2;
hQLcd:
header("Location:" . $this->container->get('router')->generate('amazon_pay_shopping'));
goto W2hdE;
sY5v2:
}
public function amazon_pay_shopping_confirm(TemplateEvent $event)
{
goto fpDxz;
GmkSt:
$parameters['AmazonPayV2Api'] = $this->eccubeConfig['amazon_pay_v2']['api']['prod'];
goto IXbCJ;
wn79J:
nlxOx:
goto DQFft;
Ar0TF:
$useMailMagazine = false;
goto bPh2u;
h44fK:
$useMailMagazine = true;
goto wn79J;
pZbV2:
if (!(preg_match('/shopping\\/amazon_pay/', $uri) == false)) {
goto tKvHv;
}
goto a8m0b;
AR2AE:
if ($this->pluginRepository->findOneBy(['code' => 'MailMagazine4', 'enabled' => true]) || $this->pluginRepository->findOneBy(['code' => 'PostCarrier4', 'enabled' => true])) {
goto UqmZa;
}
goto Ar0TF;
fpDxz:
$request = $this->requestStack->getMasterRequest();
goto dZqB4;
IXbCJ:
H_2UE:
goto jS74I;
a8m0b:
return;
goto UVDaL;
HJ561:
goto H_2UE;
goto ZDsny;
jS74I:
$event->setParameters($parameters);
goto zqfdT;
iWixA:
$event->addSnippet('@AmazonPayV2/default/Shopping/confirm_customer_regist_v2.twig');
goto gQJEG;
ZDsny:
yrSPZ:
goto GmkSt;
qWT9X:
$event->addSnippet('@AmazonPayV2/default/Shopping/confirm_widgets.twig');
goto iWixA;
gQJEG:
$parameters = $event->getParameters();
goto FWwKq;
UVDaL:
tKvHv:
goto jSXkH;
FWwKq:
$parameters['AmazonPayV2Config'] = $Config;
goto AR2AE;
jSXkH:
$Config = $this->configRepository->get();
goto qWT9X;
kLxYX:
if ($Config->getEnv() == $this->eccubeConfig['amazon_pay_v2']['env']['prod']) {
goto yrSPZ;
}
goto v49eQ;
o92pp:
UqmZa:
goto h44fK;
bPh2u:
goto nlxOx;
goto o92pp;
DQFft:
$parameters['useMailMagazine'] = $useMailMagazine;
goto kLxYX;
v49eQ:
$parameters['AmazonPayV2Api'] = $this->eccubeConfig['amazon_pay_v2']['api']['sandbox'];
goto HJ561;
dZqB4:
$uri = $request->getUri();
goto pZbV2;
zqfdT:
}
public function mypage_login(TemplateEvent $event)
{
// dump(123);die;
goto L7ja5;
nkKV8:
return;
goto NOGAg;
L7ja5:
$Config = $this->configRepository->get();
goto RV3v6;
e9oUD:
if ($Config->getEnv() == $this->eccubeConfig['amazon_pay_v2']['env']['prod']) {
goto REKAO;
}
goto OLu4n;
NOGAg:
jND4F:
goto VkPBA;
fuKL0:
$this->session->set($this->sessionAmazonLoginStateKey, $state);
goto qEOvQ;
Cycer:
$payload = $this->amazonRequestService->createSigninPayload($returnUrl);
goto b9GsZ;
LNTbW:
$returnUrl = $this->router->generate('login_with_amazon', ['state' => $state], UrlGeneratorInterface::ABSOLUTE_URL);
goto ClV9B;
RV3v6:
if (!($Config->getUseMypageLoginButton() == $this->eccubeConfig['amazon_pay_v2']['toggle']['off'])) {
goto jND4F;
}
goto nkKV8;
B59MK:
$event->addSnippet('@AmazonPayV2/default/Mypage/amazon_login_js.twig');
goto IDPg5;
VkPBA:
$state = $this->session->get($this->sessionAmazonLoginStateKey);
goto HHk2h;
XoeoE:
$parameters['AmazonPayV2Api'] = $this->eccubeConfig['amazon_pay_v2']['api']['prod'];
goto JGY10;
Cp_BX:
$parameters['payload'] = $payload;
goto Dz1t1;
C0xtI:
goto vwt6_;
goto tWgTU;
ClV9B:
$parameters = $event->getParameters();
goto Cycer;
HHk2h:
if ($state) {
goto RepgZ;
}
goto tZCZi;
OLu4n:
$parameters['AmazonPayV2Api'] = $this->eccubeConfig['amazon_pay_v2']['api']['sandbox'];
goto C0xtI;
yXIPD:
if (!($Config->getMypageLoginButtonPlace() == $this->eccubeConfig['amazon_pay_v2']['button_place']['auto'])) {
goto FaeWr;
}
goto XgZza;
HPcyD:
$parameters['AmazonPayV2Config'] = $Config;
goto e9oUD;
b9GsZ:
$signature = $this->amazonRequestService->signaturePayload($payload);
goto Cp_BX;
tZCZi:
$state = bin2hex(Random::string(16));
goto fuKL0;
qEOvQ:
RepgZ:
goto LNTbW;
rIokg:
$event->setParameters($parameters);
goto yXIPD;
XgZza:
$event->addSnippet('@AmazonPayV2/default/Mypage/login_page_button.twig');
goto oismC;
JGY10:
vwt6_:
goto rIokg;
tWgTU:
REKAO:
goto XoeoE;
MYaqt:
$parameters['buttonColor'] = $Config->getMypageLoginButtonColor();
goto HPcyD;
oismC:
FaeWr:
goto B59MK;
Dz1t1:
$parameters['signature'] = $signature;
goto MYaqt;
IDPg5:
}
public function lp_amazon_login(TemplateEvent $event)
{
$Config = $this->configRepository->get();
if ($Config->getUseMypageLoginButton() == $this->eccubeConfig['amazon_pay_v2']['toggle']['off']) {
return;
}
$state = $this->session->get($this->sessionAmazonLoginStateKey);
if (!$state) {
$state = bin2hex(Random::string(16));
$this->session->set($this->sessionAmazonLoginStateKey, $state);
}
$returnUrl = $this->router->generate('login_with_amazon', ['state' => $state, 'isLp' => 1], UrlGeneratorInterface::ABSOLUTE_URL);
$parameters = $event->getParameters();
$payload = $this->amazonRequestService->createSigninPayload($returnUrl);
$signature = $this->amazonRequestService->signaturePayload($payload);
$parameters['payload'] = $payload;
$parameters['signature'] = $signature;
$parameters['buttonColor'] = $Config->getMypageLoginButtonColor();
$parameters['AmazonPayV2Config'] = $Config;
if ($Config->getEnv() == $this->eccubeConfig['amazon_pay_v2']['env']['prod']) {
$parameters['AmazonPayV2Api'] = $this->eccubeConfig['amazon_pay_v2']['api']['prod'];
} else {
$parameters['AmazonPayV2Api'] = $this->eccubeConfig['amazon_pay_v2']['api']['sandbox'];
}
$event->setParameters($parameters);
if ($Config->getMypageLoginButtonPlace() == $this->eccubeConfig['amazon_pay_v2']['button_place']['auto']) {
$event->addSnippet('LandingPage/login_lp_amazon_button.twig');
}
$event->addSnippet('LandingPage/lp_amazon_login_js.twig');
}
}