22
33namespace Drupal \commerce_log \EventSubscriber ;
44
5+ use Drupal \commerce_payment \Entity \PaymentInterface ;
6+ use Drupal \commerce_payment \Event \PaymentEvent ;
7+ use Drupal \commerce_payment \Event \PaymentEvents ;
58use Drupal \Core \Entity \EntityTypeManagerInterface ;
69use Drupal \state_machine \Event \WorkflowTransitionEvent ;
710use Symfony \Component \EventDispatcher \EventSubscriberInterface ;
@@ -30,13 +33,18 @@ public function __construct(EntityTypeManagerInterface $entity_type_manager) {
3033 */
3134 public static function getSubscribedEvents () {
3235 $ events = [
33- 'commerce_payment.authorize.pre_transition ' => ['onAuthorize ' , -100 ],
34- 'commerce_payment.void.pre_transition ' => ['onVoid ' , -100 ],
35- 'commerce_payment.expire.pre_transition ' => ['onExpire ' , -100 ],
36- 'commerce_payment.authorize_capture.pre_transition ' => ['onAuthorizeCapture ' , -100 ],
37- 'commerce_payment.capture.pre_transition ' => ['onCapture ' , -100 ],
38- 'commerce_payment.partially_refund.pre_transition ' => ['onPartiallyRefund ' , -100 ],
39- 'commerce_payment.refund.pre_transition ' => ['onRefund ' , -100 ],
36+ 'commerce_payment.authorize.pre_transition ' => ['onAuthorizeTransition ' , -100 ],
37+ 'commerce_payment.void.pre_transition ' => ['onVoidTransition ' , -100 ],
38+ 'commerce_payment.expire.pre_transition ' => ['onExpireTransition ' , -100 ],
39+ 'commerce_payment.authorize_capture.pre_transition ' => ['onAuthorizeCaptureTransition ' , -100 ],
40+ PaymentEvents::PAYMENT_AUTHORIZED => ['onAuthorize ' , -100 ],
41+ PaymentEvents::PAYMENT_VOIDED => ['onVoid ' , -100 ],
42+ PaymentEvents::PAYMENT_EXPIRED => ['onExpire ' , -100 ],
43+ PaymentEvents::PAYMENT_AUTHORIZED_CAPTURED => ['onAuthorizeCapture ' , -100 ],
44+ PaymentEvents::PAYMENT_PARTIALLY_CAPTURED => ['onPartialCapture ' , -100 ],
45+ PaymentEvents::PAYMENT_CAPTURED => ['onCapture ' , -100 ],
46+ PaymentEvents::PAYMENT_PARTIALLY_REFUNDED => ['onPartialRefund ' , -100 ],
47+ PaymentEvents::PAYMENT_REFUNDED => ['onRefund ' , -100 ],
4048 ];
4149 return $ events ;
4250 }
@@ -47,9 +55,64 @@ public static function getSubscribedEvents() {
4755 * @param \Drupal\state_machine\Event\WorkflowTransitionEvent $event
4856 * The transition event.
4957 */
50- public function onAuthorize (WorkflowTransitionEvent $ event ) {
51- /** @var \Drupal\commerce_payment\Entity\PaymentInterface $payment */
52- $ payment = $ event ->getEntity ();
58+ public function onAuthorizeTransition (WorkflowTransitionEvent $ event ) {
59+ $ this ->dispatch (PaymentEvents::PAYMENT_AUTHORIZED , $ event ->getEntity ());
60+ }
61+
62+ /**
63+ * Creates a log when a payment is voided.
64+ *
65+ * @param \Drupal\state_machine\Event\WorkflowTransitionEvent $event
66+ * The transition event.
67+ */
68+ public function onVoidTransition (WorkflowTransitionEvent $ event ) {
69+ $ this ->dispatch (PaymentEvents::PAYMENT_VOIDED , $ event ->getEntity ());
70+ }
71+
72+ /**
73+ * Creates a log when a payment is expired.
74+ *
75+ * @param \Drupal\state_machine\Event\WorkflowTransitionEvent $event
76+ * The transition event.
77+ */
78+ public function onExpireTransition (WorkflowTransitionEvent $ event ) {
79+ $ this ->dispatch (PaymentEvents::PAYMENT_EXPIRED , $ event ->getEntity ());
80+ }
81+
82+ /**
83+ * Creates a log when a payment is authorized and captured.
84+ *
85+ * @param \Drupal\state_machine\Event\WorkflowTransitionEvent $event
86+ * The transition event.
87+ */
88+ public function onAuthorizeCaptureTransition (WorkflowTransitionEvent $ event ) {
89+ $ this ->dispatch (PaymentEvents::PAYMENT_AUTHORIZED_CAPTURED , $ event ->getEntity ());
90+ }
91+
92+ /**
93+ * Dispatches a PaymentEvent for a payment.
94+ *
95+ * @param string $event_name
96+ * A name of the payment event to dispatch.
97+ * @param \Drupal\commerce_payment\Entity\PaymentInterface $payment
98+ * A payment to use for dispatching the event.
99+ */
100+ private function dispatch ($ event_name , PaymentInterface $ payment ) {
101+ /** @var \Drupal\commerce_payment\Event\PaymentEvent $event */
102+ $ event = new PaymentEvent ($ payment );
103+ /** @var \Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher $event_dispatcher */
104+ $ event_dispatcher = \Drupal::service ('event_dispatcher ' );
105+ $ event_dispatcher ->dispatch ($ event_name , $ event );
106+ }
107+
108+ /**
109+ * Creates a log when a payment is authorized.
110+ *
111+ * @param \Drupal\commerce_payment\Event\PaymentEvent $event
112+ * The payment event.
113+ */
114+ public function onAuthorize (PaymentEvent $ event ) {
115+ $ payment = $ event ->getPayment ();
53116 $ this ->logStorage ->generate ($ payment , 'payment_authorized ' , [
54117 'payment_remote_id ' => $ payment ->getRemoteId (),
55118 ])->save ();
@@ -58,12 +121,11 @@ public function onAuthorize(WorkflowTransitionEvent $event) {
58121 /**
59122 * Creates a log when a payment is voided.
60123 *
61- * @param \Drupal\state_machine \Event\WorkflowTransitionEvent $event
62- * The transition event.
124+ * @param \Drupal\commerce_payment \Event\PaymentEvent $event
125+ * The payment event.
63126 */
64- public function onVoid (WorkflowTransitionEvent $ event ) {
65- /** @var \Drupal\commerce_payment\Entity\PaymentInterface $payment */
66- $ payment = $ event ->getEntity ();
127+ public function onVoid (PaymentEvent $ event ) {
128+ $ payment = $ event ->getPayment ();
67129 $ this ->logStorage ->generate ($ payment , 'payment_voided ' , [
68130 'payment_remote_id ' => $ payment ->getRemoteId (),
69131 ])->save ();
@@ -72,12 +134,11 @@ public function onVoid(WorkflowTransitionEvent $event) {
72134 /**
73135 * Creates a log when a payment is expired.
74136 *
75- * @param \Drupal\state_machine \Event\WorkflowTransitionEvent $event
76- * The transition event.
137+ * @param \Drupal\commerce_payment \Event\PaymentEvent $event
138+ * The payment event.
77139 */
78- public function onExpire (WorkflowTransitionEvent $ event ) {
79- /** @var \Drupal\commerce_payment\Entity\PaymentInterface $payment */
80- $ payment = $ event ->getEntity ();
140+ public function onExpire (PaymentEvent $ event ) {
141+ $ payment = $ event ->getPayment ();
81142 $ this ->logStorage ->generate ($ payment , 'payment_expired ' , [
82143 'payment_remote_id ' => $ payment ->getRemoteId (),
83144 ])->save ();
@@ -86,26 +147,37 @@ public function onExpire(WorkflowTransitionEvent $event) {
86147 /**
87148 * Creates a log when a payment is authorized and captured.
88149 *
89- * @param \Drupal\state_machine \Event\WorkflowTransitionEvent $event
90- * The transition event.
150+ * @param \Drupal\commerce_payment \Event\PaymentEvent $event
151+ * The payment event.
91152 */
92- public function onAuthorizeCapture (WorkflowTransitionEvent $ event ) {
93- /** @var \Drupal\commerce_payment\Entity\PaymentInterface $payment */
94- $ payment = $ event ->getEntity ();
153+ public function onAuthorizeCapture (PaymentEvent $ event ) {
154+ $ payment = $ event ->getPayment ();
95155 $ this ->logStorage ->generate ($ payment , 'payment_authorized_captured ' , [
96156 'payment_remote_id ' => $ payment ->getRemoteId (),
97157 ])->save ();
98158 }
99159
100160 /**
101- * Creates a log when a payment is captured.
161+ * Creates a log when a payment is partially captured.
102162 *
103- * @param \Drupal\state_machine \Event\WorkflowTransitionEvent $event
104- * The transition event.
163+ * @param \Drupal\commerce_payment \Event\PaymentEvent $event
164+ * The payment event.
105165 */
106- public function onCapture (WorkflowTransitionEvent $ event ) {
107- /** @var \Drupal\commerce_payment\Entity\PaymentInterface $payment */
108- $ payment = $ event ->getEntity ();
166+ public function onPartialCapture (PaymentEvent $ event ) {
167+ $ payment = $ event ->getPayment ();
168+ $ this ->logStorage ->generate ($ payment , 'payment_partially_captured ' , [
169+ 'payment_remote_id ' => $ payment ->getRemoteId (),
170+ ])->save ();
171+ }
172+
173+ /**
174+ * Creates a log when a payment is fully captured.
175+ *
176+ * @param \Drupal\commerce_payment\Event\PaymentEvent $event
177+ * The payment event.
178+ */
179+ public function onCapture (PaymentEvent $ event ) {
180+ $ payment = $ event ->getPayment ();
109181 $ this ->logStorage ->generate ($ payment , 'payment_captured ' , [
110182 'payment_remote_id ' => $ payment ->getRemoteId (),
111183 ])->save ();
@@ -114,12 +186,11 @@ public function onCapture(WorkflowTransitionEvent $event) {
114186 /**
115187 * Creates a log when a payment is partially refunded.
116188 *
117- * @param \Drupal\state_machine \Event\WorkflowTransitionEvent $event
118- * The transition event.
189+ * @param \Drupal\commerce_payment \Event\PaymentEvent $event
190+ * The payment event.
119191 */
120- public function onPartiallyRefund (WorkflowTransitionEvent $ event ) {
121- /** @var \Drupal\commerce_payment\Entity\PaymentInterface $payment */
122- $ payment = $ event ->getEntity ();
192+ public function onPartialRefund (PaymentEvent $ event ) {
193+ $ payment = $ event ->getPayment ();
123194 $ this ->logStorage ->generate ($ payment , 'payment_partially_refunded ' , [
124195 'payment_remote_id ' => $ payment ->getRemoteId (),
125196 ])->save ();
@@ -128,12 +199,11 @@ public function onPartiallyRefund(WorkflowTransitionEvent $event) {
128199 /**
129200 * Creates a log when a payment is fully refunded.
130201 *
131- * @param \Drupal\state_machine \Event\WorkflowTransitionEvent $event
132- * The transition event.
202+ * @param \Drupal\commerce_payment \Event\PaymentEvent $event
203+ * The payment event.
133204 */
134- public function onRefund (WorkflowTransitionEvent $ event ) {
135- /** @var \Drupal\commerce_payment\Entity\PaymentInterface $payment */
136- $ payment = $ event ->getEntity ();
205+ public function onRefund (PaymentEvent $ event ) {
206+ $ payment = $ event ->getPayment ();
137207 $ this ->logStorage ->generate ($ payment , 'payment_refunded ' , [
138208 'payment_remote_id ' => $ payment ->getRemoteId (),
139209 ])->save ();
0 commit comments