/** * __construct. * * @method __construct * * @param array $attributes */ public function __construct(array $attributes = []) { if (empty($attributes['hash'])) { $attributes['hash'] = Random::generateToken(); } parent::__construct($attributes); }
/** * {@inheritDoc} */ public function createToken($gatewayName, $model, $targetPath, array $targetParameters = array(), $afterPath = null, array $afterParameters = array()) { /** @var TokenInterface $token */ $token = $this->tokenStorage->create(); $token->setHash($token->getHash() ?: Random::generateToken()); $token->setGatewayName($gatewayName); if ($model instanceof IdentityInterface) { $token->setDetails($model); } elseif (null !== $model) { $token->setDetails($this->storageRegistry->getStorage($model)->identify($model)); } if (0 === strpos($targetPath, 'http')) { $targetUrl = Url::createFromUrl($targetPath); $targetUrl->getQuery()->set(array_replace(array('payum_token' => $token->getHash()), $targetUrl->getQuery()->toArray(), $targetParameters)); $token->setTargetUrl((string) $targetUrl); } else { $token->setTargetUrl($this->generateUrl($targetPath, array_replace(array('payum_token' => $token->getHash()), $targetParameters))); } if ($afterPath && 0 === strpos($afterPath, 'http')) { $afterUrl = Url::createFromUrl($afterPath); $afterUrl->getQuery()->modify($afterParameters); $token->setAfterUrl((string) $afterUrl); } elseif ($afterPath) { $token->setAfterUrl($this->generateUrl($afterPath, $afterParameters)); } $this->tokenStorage->update($token); return $token; }
/** * @param Request $request * * @return JsonResponse */ public function createAction($content, Request $request) { $this->forward400Unless('json' == $request->getContentType() || 'form' == $request->getContentType()); $rawPayment = ArrayObject::ensureArrayObject($content); $form = $this->formFactory->create('create_payment'); $form->submit((array) $rawPayment); if (false == $form->isValid()) { return new JsonResponse($this->formToJsonConverter->convertInvalid($form), 400); } /** @var Payment $payment */ $payment = $form->getData(); $payment->setId(Random::generateToken()); $storage = $this->payum->getStorage($payment); $storage->update($payment); $payment->setNumber($payment->getNumber() ?: date('Ymd-' . mt_rand(10000, 99999))); $storage->update($payment); // TODO $payment->setValue('links', 'done', 'http://dev.payum-server.com/client/index.html'); $payment->setValue('links', 'self', $this->urlGenerator->generate('payment_get', ['id' => $payment->getId()], true)); $token = $this->payum->getTokenFactory()->createAuthorizeToken($payment->getGatewayName(), $payment, $payment->getValue('links', 'done'), ['payum_token' => null, 'payment' => $payment->getId()]); $payment->setValue('links', 'authorize', $token->getTargetUrl()); $token = $this->payum->getTokenFactory()->createCaptureToken($payment->getGatewayName(), $payment, $payment->getValue('links', 'done'), ['payum_token' => null, 'payment' => $payment->getId()]); $payment->setValue('links', 'capture', $token->getTargetUrl()); $token = $this->payum->getTokenFactory()->createNotifyToken($payment->getGatewayName(), $payment); $payment->setValue('links', 'notify', $token->getTargetUrl()); $storage->update($payment); return new JsonResponse(array('payment' => $this->paymentToJsonConverter->convert($payment)), 201, array('Location' => $payment->getValue('links', 'self'))); }
/** * @param Request $request * * @return JsonResponse */ public function createAction($content, Request $request) { $this->forward400Unless('json' == $request->getContentType() || 'form' == $request->getContentType()); $rawPayment = ArrayObject::ensureArrayObject($content); $form = $this->formFactory->create(CreatePaymentType::class); $form->submit((array) $rawPayment); if (false == $form->isValid()) { return new JsonResponse($this->formToJsonConverter->convertInvalid($form), 400); } /** @var Payment $payment */ $payment = $form->getData(); $payment->setId(Random::generateToken()); $payment->setNumber($payment->getNumber() ?: date('Ymd-' . mt_rand(10000, 99999))); $storage = $this->payum->getStorage($payment); $storage->update($payment); $selfUrl = $this->urlGenerator->generate('payment_get', ['id' => $payment->getId()], UrlGeneratorInterface::ABSOLUTE_URL); return new JsonResponse(['payment' => $this->paymentToJsonConverter->convert($payment)], 201, ['Location' => $selfUrl]); }
/** * @test */ public function shouldAllowGenerateToken() { $token = Random::generateToken(); $this->assertInternalType('string', $token); $this->assertEquals(43, strlen($token)); }
public function __construct() { $this->hash = Random::generateToken(); }
public function __construct() { $this->setHash(Random::generateToken()); }