initial docker setup
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit; // Exit if accessed directly
|
||||
}
|
||||
|
||||
/**
|
||||
* PayPal API Exception.
|
||||
*/
|
||||
class PayPal_API_Exception extends Exception {
|
||||
|
||||
/**
|
||||
* List of errors from PayPal API.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public $errors;
|
||||
|
||||
/**
|
||||
* Unique identifier of PayPal transaction.
|
||||
*
|
||||
* This identifies the PayPal application that processed the request and
|
||||
* must be provided to Merchant Technical Support if you need their assistance
|
||||
* with a specific transaction.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $correlation_id;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* This constructor takes the API response received from PayPal, parses out the
|
||||
* errors in the response, then places those errors into the $errors property.
|
||||
* It also captures correlation ID and places that in the $correlation_id property.
|
||||
*
|
||||
* @param array $response Response from PayPal API
|
||||
*/
|
||||
public function __construct( $response ) {
|
||||
parent::__construct( __( 'An error occurred while calling the PayPal API.', 'woocommerce-gateway-paypal-express-checkout' ) );
|
||||
|
||||
$errors = array();
|
||||
foreach ( $response as $index => $value ) {
|
||||
if ( preg_match( '/^L_ERRORCODE(\d+)$/', $index, $matches ) ) {
|
||||
$errors[ $matches[1] ]['code'] = $value;
|
||||
} elseif ( preg_match( '/^L_SHORTMESSAGE(\d+)$/', $index, $matches ) ) {
|
||||
$errors[ $matches[1] ]['message'] = $value;
|
||||
} elseif ( preg_match( '/^L_LONGMESSAGE(\d+)$/', $index, $matches ) ) {
|
||||
$errors[ $matches[1] ]['long'] = $value;
|
||||
} elseif ( preg_match( '/^L_SEVERITYCODE(\d+)$/', $index, $matches ) ) {
|
||||
$errors[ $matches[1] ]['severity'] = $value;
|
||||
} elseif ( 'CORRELATIONID' == $index ) {
|
||||
$this->correlation_id = $value;
|
||||
}
|
||||
}
|
||||
|
||||
$this->errors = array();
|
||||
$error_messages = array();
|
||||
foreach ( $errors as $value ) {
|
||||
$error = new PayPal_API_Error( $value['code'], $value['message'], $value['long'], $value['severity'] );
|
||||
$this->errors[] = $error;
|
||||
|
||||
/* translators: placeholders are error code and message from PayPal */
|
||||
$error_messages[] = sprintf( __( 'PayPal error (%1$s): %2$s', 'woocommerce-gateway-paypal-express-checkout' ), $error->error_code, $error->maptoBuyerFriendlyError() );
|
||||
}
|
||||
|
||||
if ( empty( $error_messages ) ) {
|
||||
$error_messages[] = __( 'An error occurred while calling the PayPal API.', 'woocommerce-gateway-paypal-express-checkout' );
|
||||
}
|
||||
|
||||
$this->message = implode( PHP_EOL, $error_messages );
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit; // Exit if accessed directly
|
||||
}
|
||||
|
||||
/**
|
||||
* Missing session exception.
|
||||
*/
|
||||
class PayPal_Missing_Session_Exception extends Exception {
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param string $message Exception message
|
||||
*/
|
||||
public function __construct( $message = '' ) {
|
||||
if ( empty( $message ) ) {
|
||||
$message = __( 'The buyer\'s session information could not be found.', 'woocommerce-gateway-paypal-express-checkout' );
|
||||
}
|
||||
|
||||
parent::__construct( $message );
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user