allow vendord
All checks were successful
Build, Push and Deploy / build-and-push (push) Successful in 3m3s
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 16s
Build, Push and Deploy / deploy-staging (push) Successful in 32s
Build, Push and Deploy / deploy-production (push) Has been skipped
Build, Push and Deploy / cleanup (push) Successful in 1s
All checks were successful
Build, Push and Deploy / build-and-push (push) Successful in 3m3s
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 16s
Build, Push and Deploy / deploy-staging (push) Successful in 32s
Build, Push and Deploy / deploy-production (push) Has been skipped
Build, Push and Deploy / cleanup (push) Successful in 1s
This commit is contained in:
266
vendor/omnipay/common/src/Common/Message/AbstractResponse.php
vendored
Normal file
266
vendor/omnipay/common/src/Common/Message/AbstractResponse.php
vendored
Normal file
@@ -0,0 +1,266 @@
|
||||
<?php
|
||||
/**
|
||||
* Abstract Response
|
||||
*/
|
||||
|
||||
namespace Omnipay\Common\Message;
|
||||
|
||||
use Omnipay\Common\Exception\RuntimeException;
|
||||
use Symfony\Component\HttpFoundation\RedirectResponse as HttpRedirectResponse;
|
||||
use Symfony\Component\HttpFoundation\Response as HttpResponse;
|
||||
|
||||
/**
|
||||
* Abstract Response
|
||||
*
|
||||
* This abstract class implements ResponseInterface and defines a basic
|
||||
* set of functions that all Omnipay Requests are intended to include.
|
||||
*
|
||||
* Objects of this class or a subclass are usually created in the Request
|
||||
* object (subclass of AbstractRequest) as the return parameters from the
|
||||
* send() function.
|
||||
*
|
||||
* Example -- validating and sending a request:
|
||||
*
|
||||
* <code>
|
||||
* $myResponse = $myRequest->send();
|
||||
* // now do something with the $myResponse object, test for success, etc.
|
||||
* </code>
|
||||
*
|
||||
*/
|
||||
abstract class AbstractResponse implements ResponseInterface
|
||||
{
|
||||
|
||||
/**
|
||||
* The embodied request object.
|
||||
*
|
||||
* @var RequestInterface
|
||||
*/
|
||||
protected $request;
|
||||
|
||||
/**
|
||||
* The data contained in the response.
|
||||
*
|
||||
* @var mixed
|
||||
*/
|
||||
protected $data;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param RequestInterface $request the initiating request.
|
||||
* @param mixed $data
|
||||
*/
|
||||
public function __construct(RequestInterface $request, $data)
|
||||
{
|
||||
$this->request = $request;
|
||||
$this->data = $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the initiating request object.
|
||||
*
|
||||
* @return RequestInterface
|
||||
*/
|
||||
public function getRequest()
|
||||
{
|
||||
return $this->request;
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the response successful?
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function isPending()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Does the response require a redirect?
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function isRedirect()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the response a transparent redirect?
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function isTransparentRedirect()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the transaction cancelled by the user?
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function isCancelled()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the response data.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function getData()
|
||||
{
|
||||
return $this->data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Response Message
|
||||
*
|
||||
* @return null|string A response message from the payment gateway
|
||||
*/
|
||||
public function getMessage()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Response code
|
||||
*
|
||||
* @return null|string A response code from the payment gateway
|
||||
*/
|
||||
public function getCode()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gateway Reference
|
||||
*
|
||||
* @return null|string A reference provided by the gateway to represent this transaction
|
||||
*/
|
||||
public function getTransactionReference()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the transaction ID as generated by the merchant website.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getTransactionId()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the redirect target url.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getRedirectUrl()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the required redirect method (either GET or POST).
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getRedirectMethod()
|
||||
{
|
||||
return 'GET';
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the redirect form data array, if the redirect method is POST.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getRedirectData()
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Automatically perform any required redirect
|
||||
*
|
||||
* This method is meant to be a helper for simple scenarios. If you want to customize the
|
||||
* redirection page, just call the getRedirectUrl() and getRedirectData() methods directly.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function redirect()
|
||||
{
|
||||
$this->getRedirectResponse()->send();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return HttpRedirectResponse|HttpResponse
|
||||
*/
|
||||
public function getRedirectResponse()
|
||||
{
|
||||
$this->validateRedirect();
|
||||
|
||||
if ('GET' === $this->getRedirectMethod()) {
|
||||
return new HttpRedirectResponse($this->getRedirectUrl());
|
||||
}
|
||||
|
||||
$hiddenFields = '';
|
||||
foreach ($this->getRedirectData() as $key => $value) {
|
||||
$hiddenFields .= sprintf(
|
||||
'<input type="hidden" name="%1$s" value="%2$s" />',
|
||||
htmlentities($key, ENT_QUOTES, 'UTF-8', false),
|
||||
htmlentities((string) $value, ENT_QUOTES, 'UTF-8', false)
|
||||
)."\n";
|
||||
}
|
||||
|
||||
$output = '<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<title>Redirecting...</title>
|
||||
</head>
|
||||
<body onload="document.forms[0].submit();">
|
||||
<form action="%1$s" method="post">
|
||||
<p>Redirecting to payment page...</p>
|
||||
<p>
|
||||
%2$s
|
||||
<input type="submit" value="Continue" />
|
||||
</p>
|
||||
</form>
|
||||
</body>
|
||||
</html>';
|
||||
$output = sprintf(
|
||||
$output,
|
||||
htmlentities($this->getRedirectUrl(), ENT_QUOTES, 'UTF-8', false),
|
||||
$hiddenFields
|
||||
);
|
||||
|
||||
return new HttpResponse($output);
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate that the current Response is a valid redirect.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function validateRedirect()
|
||||
{
|
||||
if (!$this instanceof RedirectResponseInterface || !$this->isRedirect()) {
|
||||
throw new RuntimeException('This response does not support redirection.');
|
||||
}
|
||||
|
||||
if (empty($this->getRedirectUrl())) {
|
||||
throw new RuntimeException('The given redirectUrl cannot be empty.');
|
||||
}
|
||||
|
||||
if (!in_array($this->getRedirectMethod(), ['GET', 'POST'])) {
|
||||
throw new RuntimeException('Invalid redirect method "'.$this->getRedirectMethod().'".');
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user