/**
  * 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;
 }
Example #2
0
 /**
  * @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;
 }