class PayPalExpress in PayPal for Payment 8
Same name in this branch
- 8 src/Plugin/Payment/MethodConfiguration/PayPalExpress.php \Drupal\paypal_payment\Plugin\Payment\MethodConfiguration\PayPalExpress
- 8 src/Plugin/Payment/Method/PayPalExpress.php \Drupal\paypal_payment\Plugin\Payment\Method\PayPalExpress
Same name and namespace in other branches
- 2.0.x src/Plugin/Payment/MethodConfiguration/PayPalExpress.php \Drupal\paypal_payment\Plugin\Payment\MethodConfiguration\PayPalExpress
Provides the configuration for the PayPal Express payment method plugin.
Plugin annotation
@PaymentMethodConfiguration(
description = @Translation("PayPal Express payment method type."),
id = "paypal_payment_express",
label = @Translation("PayPal Express")
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\payment\Plugin\Payment\MethodConfiguration\PaymentMethodConfigurationBase implements ConfigurableInterface, DependentPluginInterface, PaymentMethodConfigurationInterface
- class \Drupal\payment\Plugin\Payment\MethodConfiguration\Basic implements ContainerFactoryPluginInterface
- class \Drupal\paypal_payment\Plugin\Payment\MethodConfiguration\PayPalBasic
- class \Drupal\paypal_payment\Plugin\Payment\MethodConfiguration\PayPalExpress
- class \Drupal\paypal_payment\Plugin\Payment\MethodConfiguration\PayPalBasic
- class \Drupal\payment\Plugin\Payment\MethodConfiguration\Basic implements ContainerFactoryPluginInterface
- class \Drupal\payment\Plugin\Payment\MethodConfiguration\PaymentMethodConfigurationBase implements ConfigurableInterface, DependentPluginInterface, PaymentMethodConfigurationInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of PayPalExpress
File
- src/
Plugin/ Payment/ MethodConfiguration/ PayPalExpress.php, line 24
Namespace
Drupal\paypal_payment\Plugin\Payment\MethodConfigurationView source
class PayPalExpress extends PayPalBasic {
/**
* Gets the client ID of this configuration.
*
* @return string
*/
public function getClientId() : string {
return $this->configuration['clientId'] ?? '';
}
/**
* Gets the client secret of this configuration.
*
* @return string
*/
public function getClientSecret() : string {
return $this->configuration['clientSecret'] ?? '';
}
/**
* Gets the webhook ID of this configuration.
*
* @return string
*/
public function getWebhookId() : string {
return $this->configuration['webhookId'] ?? '';
}
/**
* {@inheritdoc}
*/
public function processBuildConfigurationForm(array &$element, FormStateInterface $form_state, array &$form) {
parent::processBuildConfigurationForm($element, $form_state, $form);
$element['paypal']['clientId'] = [
'#type' => 'textfield',
'#title' => $this
->t('Client ID'),
'#default_value' => $this
->getClientId(),
'#maxlength' => 255,
'#required' => TRUE,
];
$element['paypal']['clientSecret'] = [
'#type' => 'textfield',
'#title' => $this
->t('Client Secret'),
'#default_value' => $this
->getClientSecret(),
'#maxlength' => 255,
'#required' => TRUE,
];
return $element;
}
/**
* {{@inheritdoc}}
*/
public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
parent::submitConfigurationForm($form, $form_state);
$parents = $form['plugin_form']['paypal']['#parents'];
array_pop($parents);
$values = $form_state
->getValues();
$values = NestedArray::getValue($values, $parents);
$this->configuration['clientId'] = $values['paypal']['clientId'];
$this->configuration['clientSecret'] = $values['paypal']['clientSecret'];
$this->configuration['webhookId'] = $this
->updateWebhook($this->configuration, $form_state
->getValue('id'));
}
/**
* @param $configuration
* @param $id
* @return string
*/
private function updateWebhook($configuration, $id) : string {
$webhookId = $this
->getWebhookId();
$webhookUrl = PayPalExpressMethod::webhookUrl($id);
$apiContext = PayPalExpressMethod::apiContext($configuration, PayPalExpressMethod::PAYPAL_CONTEXT_TYPE_ADMIN);
if (!empty($webhookId)) {
try {
$webhook = Webhook::get($webhookId, $apiContext);
if ($webhookUrl !== $webhook
->getUrl()) {
$patch = new Patch();
$patch
->setOp('replace')
->setPath('/url')
->setValue($webhookUrl);
$patchRequest = new PatchRequest();
$patchRequest
->addPatch($patch);
$webhook
->update($patchRequest, $apiContext);
}
} catch (Exception $ex) {
$webhookId = '';
}
}
if (empty($webhookId)) {
try {
// Create a new webhook
$webhook = new Webhook();
$webhook
->setUrl($webhookUrl);
$eventType = new WebhookEventType();
$eventType
->setName('*');
$webhook
->setEventTypes([
$eventType,
]);
$webhook = $webhook
->create($apiContext);
$webhookId = $webhook
->getId();
} catch (Exception $ex) {
$this
->messenger()
->addError($this
->t('Something went wrong when creating the webhook for your PayPal Express payment method.'));
}
}
return $webhookId;
}
/**
* {@inheritdoc}
*/
public function getDerivativeConfiguration() : array {
return parent::getDerivativeConfiguration() + [
'clientId' => $this
->getClientId(),
'clientSecret' => $this
->getClientSecret(),
'webhookId' => $this
->getWebhookId(),
];
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
Basic:: |
protected | property | The payment status plugin type. | |
Basic:: |
protected | property | The plugin selector manager. | |
Basic:: |
public | function |
Form constructor. Overrides PaymentMethodConfigurationBase:: |
|
Basic:: |
public static | function |
Creates an instance of the plugin. Overrides PaymentMethodConfigurationBase:: |
|
Basic:: |
public | function |
Gets default configuration for this plugin. Overrides PaymentMethodConfigurationBase:: |
|
Basic:: |
public | function | Gets the brand label. | |
Basic:: |
public | function | Gets whether or not capture is supported. | |
Basic:: |
protected | function | Gets the payment status selector for the capture phase. | |
Basic:: |
public | function | Gets the status to set on payment capture. | |
Basic:: |
protected | function | Gets the payment status selector for the execute phase. | |
Basic:: |
public | function | Gets the status to set on payment execution. | |
Basic:: |
protected | function | Gets the payment status selector. | |
Basic:: |
public | function | Gets whether or not refunds are supported. | |
Basic:: |
protected | function | Gets the payment status selector for the refund phase. | |
Basic:: |
public | function | Gets the status to set on payment refund. | |
Basic:: |
public | function | Sets the brand label. | |
Basic:: |
public | function | Sets whether or not capture is supported. | |
Basic:: |
public | function | Sets the status to set on payment capture. | |
Basic:: |
public | function | Sets the status to set on payment execution. | |
Basic:: |
public | function | Sets whether or not refunds are supported. | |
Basic:: |
public | function | Sets the status to set on payment refund. | |
Basic:: |
public | function |
Form validation handler. Overrides PaymentMethodConfigurationBase:: |
|
Basic:: |
public | function |
Constructs a new instance. Overrides PaymentMethodConfigurationBase:: |
|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PaymentMethodConfigurationBase:: |
protected | property | The module handler. | |
PaymentMethodConfigurationBase:: |
public | function |
Calculates dependencies for the configured plugin. Overrides DependentPluginInterface:: |
|
PaymentMethodConfigurationBase:: |
public | function |
Gets this plugin's configuration. Overrides ConfigurableInterface:: |
|
PaymentMethodConfigurationBase:: |
public | function | Gets the payer message text. | |
PaymentMethodConfigurationBase:: |
public | function | Gets the payer message text format. | |
PaymentMethodConfigurationBase:: |
public | function |
Sets the configuration for this plugin instance. Overrides ConfigurableInterface:: |
|
PaymentMethodConfigurationBase:: |
public | function | Sets payer message text. | |
PaymentMethodConfigurationBase:: |
public | function | Sets payer message text format. | |
PayPalBasic:: |
public | function | Gets the setting for the log level. | |
PayPalBasic:: |
public | function | Gets the setting for logging the PayPal API traffic. | |
PayPalBasic:: |
public | function | Gets the setting for the production server. | |
PayPalExpress:: |
public | function | Gets the client ID of this configuration. | |
PayPalExpress:: |
public | function | Gets the client secret of this configuration. | |
PayPalExpress:: |
public | function |
Overrides PayPalBasic:: |
|
PayPalExpress:: |
public | function | Gets the webhook ID of this configuration. | |
PayPalExpress:: |
public | function |
Implements a form API #process callback. Overrides PayPalBasic:: |
|
PayPalExpress:: |
public | function |
{} Overrides PayPalBasic:: |
|
PayPalExpress:: |
private | function | ||
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |