* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * @copyright PayPal */ namespace PaypalAddons\classes\PUI; use Address; use Context; use PaypalAddons\classes\AbstractMethodPaypal; class FraudNetForm { protected $context; protected $method; public function __construct() { $this->context = Context::getContext(); $this->method = AbstractMethodPaypal::load('PPP'); } /** * @return string */ public function render() { $this->context->smarty->assign('sessionId', $this->getFraudSessionId()->buildSessionId()); $this->context->smarty->assign('sourceId', $this->getSourceId()); $this->context->smarty->assign('isSandbox', $this->method->isSandbox()); $this->context->smarty->assign('userData', $this->getUserData()); $this->context->smarty->assign('JSscripts', $this->getScripts()); $this->context->smarty->assign('psPaypalDir', _PS_MODULE_DIR_ . 'paypal'); try { return Context::getContext()->smarty->fetch('module:paypal/views/templates/pui/fraudNetForm.tpl'); } catch (\Throwable $e) { return ''; } } protected function getFraudSessionId() { return new FraudSessionId(); } protected function getSourceId() { //todo: use format merchantId + page name return '[use-client-id-here]-checkout-page'; } protected function getUserData() { $billingAddress = new Address($this->context->cart->id_address_invoice); $userData = new DataUserForm(); $userData->setFirstName($this->context->customer->firstname); $userData->setLastName($this->context->customer->lastname); $userData->setEmail($this->context->customer->email); $userData->setPhone($billingAddress->phone); return $userData; } protected function getScripts() { return [ 'paypal-tools' => [ 'src' => __PS_BASE_URI__ . 'modules/paypal/views/js/tools.js', ], ]; } }