CoolCMS API

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

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
string

isAllowedReturnUrl()

Checks a return URL against {@see ReturnUrlPolicy}; also shared by `PaymentExecuteTrait::buildRedirectUrl()`.

private isAllowedReturnUrl(mixed $url) : bool
Parameters
$url : mixed
Return values
bool

keepSameHostUrls()

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>
Return values
array{notifyUrl: string, successUrl: string, cancelUrl: string}
On this page

Search results