PayPalController

Extends \HttpViewController

Class PayPalController

This class contains some helper methods for handling view requests. Be careful always when outputting raw user data to HTML or when handling POST requests because insufficient protection will lead to XSS and CSRF vulnerabilities.

package

HttpViewControllers

Methods

__construct

__construct(\HttpContextReaderInterface $httpContextReader, \HttpResponseProcessorInterface $httpResponseProcessor, \ContentViewInterface $defaultContentView) 
inherited

Arguments

$httpContextReader

\HttpContextReaderInterface

$httpResponseProcessor

\HttpResponseProcessorInterface

$defaultContentView

\ContentViewInterface

Invokes an action method by the given action name.

_callActionMethod(string $actionName) : \HttpControllerResponseInterface
inherited
Throws
\LogicException

If no action method of the given name exists.

Arguments

$actionName

string

Name of action method to call, without 'action'-Suffix.

Response

\HttpControllerResponseInterface

Response message.

_findCountryByID

_findCountryByID( $country_id) 

Arguments

$country_id

Returns the expected $_POST value by the given key name.

_getPostData(string $keyName) : string|null
inherited

This method is the object oriented layer for $_POST[$keyName].

Arguments

$keyName

string

Expected key of post parameter.

Response

string|null

Either the expected value or null, of not found.

Creates and returns a key value collection which represent the global $_POST array.

_getPostDataCollection() : \KeyValueCollection
inherited

Returns the expected $_GET value by the given key name.

_getQueryParameter(string $keyName) : mixed|null
inherited

This method is the object oriented layer for $_GET[$keyName].

Arguments

$keyName

string

Expected key of query parameter.

Response

mixed|null

Either the expected value or null, of not found.

Creates and returns a key value collection which represent the global $_GET array.

_getQueryParametersCollection() : \KeyValueCollection
inherited

Returns the expected $_SERVER value by the given key name.

_getServerData(string $keyName) : string|null
inherited

This method is the object oriented layer for $_SERVER[$keyName].

Arguments

$keyName

string

Expected key of server parameter.

Response

string|null

Either the expected value or null, of not found.

determines if a payment module is currently installed.

_isValidPayment( $paymentCode) : boolean

Caveat: This only works for modules where the filename (plus '.php') is identical with the module code.

Arguments

$paymentCode

Response

boolean

true if module is installed

Renders and returns a template file.

_render(string $templateFile, array $contentArray) : string
inherited

Arguments

$templateFile

string

Template file to render.

$contentArray

array

Content array which represent the variables of the template.

Response

string

Rendered template.

Check if the $_POST['pageToken'] or $_GET['pageToken'] variable is provided and if it's valid.

_validatePageToken(string $customExceptionMessage = null) 
inherited

Example: public function proceed(HttpContextInterface $httpContext) { parent::proceed($httpContext); // proceed http context from parent class if($_SERVER['REQUEST_METHOD'] === 'POST') { $this->_validatePageToken(); // CSRF Protection } }

Throws
\Exception

If the validation fails.

Arguments

$customExceptionMessage

string

(optional) You can specify a custom exception message.

dummy action for the bank transaction pending URL.

actionBankTxnPending() 

The flow that used to require this has recently been deprecated by PayPal.

invalidates session data when the user cancels an ECS login

actionCancelECS() 

sets the ECS shopping cart flag to true.

actionCartECS() 

The flag is used in ECSButton.js as an indication that the customer is to be redirected to PayPal for an ECS login. This is required for the ECS button on products pages to work as intended.

Default action method.

actionDefault() : \HttpControllerResponseInterface
inherited

Every controller child class requires at least the default action method, which is invoked when the ::_getQueryParameterData('do') value is not separated by a trailing slash.

Every action method have to return an instance which implements the http controller response interface.

Response

\HttpControllerResponseInterface

returns content for installments options popup

actionInstallmentOptions() 

called by a CheckoutSuccessExtender to end an ECS guest session

actionLogoffECSCustomer() 

action used in return URLs for the paylink feature.

actionPaylinkReturn() 

Takes the PayerID from the query parameters and executes the payment created by actionPaylink(), then displays a quick thank you note.

creates a PayPal payment for the ECS flow and redirects the customer to the ECS login page.

actionPrepareECS() 

called as the return URL when a customer returns from an ECS login.

actionReturnFromECS() 

If the customer is not logged in, a guest account will be created from data provided by PayPal.

called by the third party payments integration in PayPal Plus, this action simply sets one of the supported payment methods as the selected method and invalidates the PayPal payment which has been created for the paywall.

actionSetPayment() 

This action can be called from a cronjob to update orders still in pending state.

actionStatusUpdate() 

Supposed to be used as a replacement for Webhooks in cases where the shop is inaccessible for PayPal, e.g. due to missing TLS accessibility.

called by PayPal to deliver Webhook notifications.

actionWebhook() 

Any incoming notification will be recorded in the order status history of the corresponding order. If the HMAC signature check fails, a warning will be added. Notifications of type PAYMENT.SALE.COMPLETED cause the order to be transferred to the status for completed orders.

getCustomerByEmail

getCustomerByEmail( $email_address) 

Arguments

$email_address

getCustomerCountryIdByIso2

getCustomerCountryIdByIso2( $iso2) 

Arguments

$iso2

determines LocaleCode from session data

getLocale() 

returns a QueryBuilder instance for database access.

getQueryBuilder() : \CI_DB_query_builder

Response

\CI_DB_query_builder

Returns a database driver that can be used for db operations.

Searches the GXModules directory and admin/html directory for a template file, wich can be useed inside the AdminLayoutHttpControllerResponse object for the template parameter.

getTemplateFile(string $templateFile) : \ExistingFile
inherited
Throws
\Exception

if the path or file is not found

Arguments

$templateFile

string

The relative path and filename to search for

Response

\ExistingFile

containing absolute file path to the given template file

loginCustomer

loginCustomer(\Customer $customer) 

Arguments

$customer

\Customer

Processes a http response object which is get by invoking an action method.

proceed(\HttpContextInterface $httpContext) 
inherited

The action method is determined by the http context reader instance and the current request context. Re-implement this method in child classes to enable XSS and CSRF protection on demand.

see \HttpContextReaderInterface::getActionName \HttpResponseProcessorInterface::proceed
Throws
\LogicException

When no action method is found by the http context reader.

Arguments

$httpContext

\HttpContextInterface

Http context object which hold the request variables.

Heuristically splits up a street address into its component street name and house number

splitStreet( $street_address) : array

Arguments

$street_address

Response

array

with keys 'street' and 'house_no'

updates order status and adds entry to status history

updateOrdersStatus( $orders_id,  $orders_status_id = null,  $comments = '') 
todo

: replace once services for orders and order status history are available

Arguments

$orders_id

$orders_status_id

$comments

Properties

Helper for language-specific texts

paypalText : \PayPalText
var

Helper for language-specific texts

Type(s)

\PayPalText

configurationStorage

configurationStorage : \PayPalConfigurationStorage
var

Type(s)

\PayPalConfigurationStorage

logger

logger : \PayPalLogger
var

Type(s)

\PayPalLogger

httpContextReader

httpContextReader : \HttpContextReaderInterface
inherited

httpResponseProcessor

httpResponseProcessor : \HttpResponseProcessorInterface
inherited

contentView

contentView : \ContentViewInterface
inherited
var

Type(s)

\ContentViewInterface

queryParametersArray

queryParametersArray : array
inherited
var

Type(s)

array

postDataArray

postDataArray : array
inherited
var

Type(s)

array

Contain the assets needed to be included in the view HTML.

assets : \AssetCollectionInterface
inherited
var

Contain the assets needed to be included in the view HTML.

Type(s)

\AssetCollectionInterface

Server data.

serverDataArray : array
inherited
var

Server data.

Type(s)

array