/** * Generate token to make the payment request * * @return string */ public function generateToken() { $extraData = $this->paymentBridge->getExtraData(); $cartAmount = (double) number_format($this->paymentBridge->getAmount() / 100, 2, '.', ''); $payload = new Payload(); $payload->setIssuedAt(time()); $payload->setExpiration(time() + 3600); $payload->addProperty("name", $extraData['order_name']); $payload->addProperty("description", $extraData['order_description']); $payload->addProperty("price", $cartAmount); $payload->addProperty("currencyCode", $this->paymentBridge->getCurrency()); $token = $payload->CreatePayload($this->merchantId); $jwtToken = JWTHelper::encode($token, $this->secretKey); $paymentMethod = new GoogleWalletMethod(); $paymentMethod->setApiToken($jwtToken); $this->paymentEventDispatcher->notifyPaymentOrderLoad($this->paymentBridge, $paymentMethod); return $jwtToken; }
/** * @param object|array $input A PHP object or array * * @throws DomainException * @return string JSON representation of the PHP object or array */ public static function jsonEncode($input) { $json = json_encode($input); if (function_exists('json_last_error') && ($errno = json_last_error())) { JWT::handleJsonError($errno); } elseif ($json === 'null' && $input !== null) { throw new DomainException('Null result with non-null input'); } return $json; }