PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.23.2
GiveWP – Donation Plugin and Fundraising Platform v2.23.2
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / PaymentGateways / Gateways / PayPalStandard / Webhooks / WebhookRegister.php
give / src / PaymentGateways / Gateways / PayPalStandard / Webhooks Last commit date
Listeners 4 years ago WebhookRegister.php 4 years ago WebhookValidator.php 4 years ago
WebhookRegister.php
106 lines
1 <?php
2
3 namespace Give\PaymentGateways\Gateways\PayPalStandard\Webhooks;
4
5 use Give\Framework\Exceptions\Primitives\InvalidArgumentException;
6 use Give\PaymentGateways\Gateways\PayPalStandard\Webhooks\Listeners\EventListener;
7 use Give\PaymentGateways\Gateways\PayPalStandard\Webhooks\Listeners\PaymentUpdated;
8
9 class WebhookRegister
10 {
11 /**
12 * Array of the PayPal webhook event handlers. Add-ons can use the registerEventHandler method
13 * to add additional events/handlers.
14 *
15 * Structure: PayPalTractionType => EventHandlerClass
16 *
17 * @since 2.19.0
18 *
19 * @var string[]
20 */
21 private $eventHandlers = [
22 'web_accept' => PaymentUpdated::class,
23 'cart' => PaymentUpdated::class,
24 ];
25
26 /**
27 * Use this to register additional events and handlers
28 *
29 * @since 2.19.0
30 *
31 * @param string $payPalEvent PayPal event to listen for, i.e. CHECKOUT.ORDER.APPROVED
32 * @param string $eventHandler The FQCN of the event handler
33 *
34 * @return $this
35 */
36 public function registerEventHandler($payPalEvent, $eventHandler)
37 {
38 if (isset($this->eventHandlers[$payPalEvent])) {
39 throw new InvalidArgumentException('Cannot register an already registered event');
40 }
41
42 if ( ! is_subclass_of($eventHandler, EventListener::class)) {
43 throw new InvalidArgumentException('Listener must be a subclass of ' . EventListener::class);
44 }
45
46 $this->eventHandlers[$payPalEvent] = $eventHandler;
47
48 return $this;
49 }
50
51 /**
52 * Registers multiple event handlers using an array where the key is the
53 *
54 * @since 2.19.0
55 *
56 * @param array $handlers = [ 'web_accept' => EventHandler::class ]
57 * https://developer.paypal.com/api/nvp-soap/ipn/IPNandPDTVariables/#link-ipntransactiontypes
58 */
59 public function registerEventHandlers(array $handlers)
60 {
61 foreach ($handlers as $event => $handler) {
62 $this->registerEventHandler($event, $handler);
63 }
64 }
65
66 /**
67 * Returns Event Listener instance for given event
68 *
69 * @since 2.19.0
70 *
71 * @param string $event
72 *
73 * @return EventListener
74 */
75 public function getEventHandler($event)
76 {
77 return give($this->eventHandlers[$event]);
78 }
79
80 /**
81 * Checks whether the given event is registered
82 *
83 * @since 2.19.0
84 *
85 * @param string $event
86 *
87 * @return bool
88 */
89 public function hasEventRegistered($event)
90 {
91 return isset($this->eventHandlers[$event]);
92 }
93
94 /**
95 * Returns an array of the registered events
96 *
97 * @since 2.19.0
98 *
99 * @return string[]
100 */
101 public function getRegisteredEvents()
102 {
103 return array_keys($this->eventHandlers);
104 }
105 }
106