* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * @copyright PayPal */ namespace PaypalAddons\classes\ACDC; use Context; use PaypalAddons\classes\AbstractMethodPaypal; class AcdcPaymentMethod { /** @var AbstractMethodPaypal */ protected $method; /** @var Context */ protected $context; public function __construct($method = null) { if ($method instanceof AbstractMethodPaypal) { $this->method = $method; } else { $this->method = AbstractMethodPaypal::load(); } $this->context = Context::getContext(); } public function render() { $this->context->smarty->assign($this->getTplVars()); //todo: to implement return $this->context->smarty->fetch('module:paypal/views/templates/acdc/payment-option.tpl'); } protected function getTplVars() { $vars = [ 'psPaypalDir' => _PS_MODULE_DIR_ . 'paypal', 'JSvars' => [], 'JSscripts' => $this->getScripts(), ]; return $vars; } protected function getScripts() { $scripts = []; $srcLib = $this->method->getUrlJsSdkLib(['components' => 'buttons,hosted-fields']); $scripts['tot-paypal-acdc-sdk'] = [ 'src' => $srcLib, 'data-namespace' => 'totPaypalAcdcSdk', 'data-partner-attribution-id' => $this->getPartnerId(), 'data-client-token' => $this->getClientToken(), ]; $scripts['acdc'] = [ 'src' => __PS_BASE_URI__ . 'modules/paypal/views/js/acdc.js', ]; return $scripts; } protected function getPartnerId() { return 'PRESTASHOP_Cart_SPB'; } protected function getClientToken() { $response = $this->method->acdcGenerateToken(); if ($response->isSuccess()) { return $response->getToken(); } return ''; } }