PaymentCreateTrait
Table of Contents
Methods
- actionCreate() : void
- internalActionCreate() : array<string, mixed>
- ensurePaymentId() : string
- isAllowedReturnUrl() : bool
- Checks a return URL against {@see ReturnUrlPolicy}; also shared by `PaymentExecuteTrait::buildRedirectUrl()`.
- keepSameHostUrls() : array<string, mixed>
- Keeps only the return URLs that point to this website. Foreign and nonsensical values are dropped and `resolvePaymentUrls()` fills in the server default instead.
- resolvePaymentUrls() : array{notifyUrl: string, successUrl: string, cancelUrl: string}
Methods
actionCreate()
public
actionCreate() : void
internalActionCreate()
public
internalActionCreate(int $paymentId[, array<string|int, mixed> $urls = [] ]) : array<string, mixed>
Parameters
- $paymentId : int
- $urls : array<string|int, mixed> = []
Return values
array<string, mixed>ensurePaymentId()
private
ensurePaymentId(string $url, string $paymentId) : string
Parameters
- $url : string
- $paymentId : string
Return values
stringisAllowedReturnUrl()
Checks a return URL against {@see ReturnUrlPolicy}; also shared by `PaymentExecuteTrait::buildRedirectUrl()`.
private
isAllowedReturnUrl(mixed $url) : bool
Parameters
- $url : mixed
Return values
boolkeepSameHostUrls()
Keeps only the return URLs that point to this website. Foreign and nonsensical values are dropped and `resolvePaymentUrls()` fills in the server default instead.
private
keepSameHostUrls(array<string, mixed> $urls) : array<string, mixed>
IMPORTANT: the decision is a positive allowlist (ReturnUrlPolicy), not a host
comparison: parse_url() yields a null host for javascript:, data:, mailto: and
https:evil.example, which would pass as relative.
For the current caller (the front PaymentShowTrait) it is a no-op: it sends absolute links
built by $this->link('//...') on the same host.
Parameters
- $urls : array<string, mixed>
Return values
array<string, mixed>resolvePaymentUrls()
private
resolvePaymentUrls(Payment $payment, PaymentGate $paymentGate, array<string|int, mixed> $urls) : array{notifyUrl: string, successUrl: string, cancelUrl: string}
Parameters
- $payment : Payment
- $paymentGate : PaymentGate
- $urls : array<string|int, mixed>