2
2
3
3
namespace Drupal \commerce_log \EventSubscriber ;
4
4
5
+ use Drupal \commerce_payment \Entity \PaymentInterface ;
6
+ use Drupal \commerce_payment \Event \PaymentEvent ;
7
+ use Drupal \commerce_payment \Event \PaymentEvents ;
5
8
use Drupal \Core \Entity \EntityTypeManagerInterface ;
6
9
use Drupal \state_machine \Event \WorkflowTransitionEvent ;
7
10
use Symfony \Component \EventDispatcher \EventSubscriberInterface ;
@@ -30,13 +33,18 @@ public function __construct(EntityTypeManagerInterface $entity_type_manager) {
30
33
*/
31
34
public static function getSubscribedEvents () {
32
35
$ 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 ],
40
48
];
41
49
return $ events ;
42
50
}
@@ -47,9 +55,64 @@ public static function getSubscribedEvents() {
47
55
* @param \Drupal\state_machine\Event\WorkflowTransitionEvent $event
48
56
* The transition event.
49
57
*/
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 ();
53
116
$ this ->logStorage ->generate ($ payment , 'payment_authorized ' , [
54
117
'payment_remote_id ' => $ payment ->getRemoteId (),
55
118
])->save ();
@@ -58,12 +121,11 @@ public function onAuthorize(WorkflowTransitionEvent $event) {
58
121
/**
59
122
* Creates a log when a payment is voided.
60
123
*
61
- * @param \Drupal\state_machine \Event\WorkflowTransitionEvent $event
62
- * The transition event.
124
+ * @param \Drupal\commerce_payment \Event\PaymentEvent $event
125
+ * The payment event.
63
126
*/
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 ();
67
129
$ this ->logStorage ->generate ($ payment , 'payment_voided ' , [
68
130
'payment_remote_id ' => $ payment ->getRemoteId (),
69
131
])->save ();
@@ -72,12 +134,11 @@ public function onVoid(WorkflowTransitionEvent $event) {
72
134
/**
73
135
* Creates a log when a payment is expired.
74
136
*
75
- * @param \Drupal\state_machine \Event\WorkflowTransitionEvent $event
76
- * The transition event.
137
+ * @param \Drupal\commerce_payment \Event\PaymentEvent $event
138
+ * The payment event.
77
139
*/
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 ();
81
142
$ this ->logStorage ->generate ($ payment , 'payment_expired ' , [
82
143
'payment_remote_id ' => $ payment ->getRemoteId (),
83
144
])->save ();
@@ -86,26 +147,37 @@ public function onExpire(WorkflowTransitionEvent $event) {
86
147
/**
87
148
* Creates a log when a payment is authorized and captured.
88
149
*
89
- * @param \Drupal\state_machine \Event\WorkflowTransitionEvent $event
90
- * The transition event.
150
+ * @param \Drupal\commerce_payment \Event\PaymentEvent $event
151
+ * The payment event.
91
152
*/
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 ();
95
155
$ this ->logStorage ->generate ($ payment , 'payment_authorized_captured ' , [
96
156
'payment_remote_id ' => $ payment ->getRemoteId (),
97
157
])->save ();
98
158
}
99
159
100
160
/**
101
- * Creates a log when a payment is captured.
161
+ * Creates a log when a payment is partially captured.
102
162
*
103
- * @param \Drupal\state_machine \Event\WorkflowTransitionEvent $event
104
- * The transition event.
163
+ * @param \Drupal\commerce_payment \Event\PaymentEvent $event
164
+ * The payment event.
105
165
*/
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 ();
109
181
$ this ->logStorage ->generate ($ payment , 'payment_captured ' , [
110
182
'payment_remote_id ' => $ payment ->getRemoteId (),
111
183
])->save ();
@@ -114,12 +186,11 @@ public function onCapture(WorkflowTransitionEvent $event) {
114
186
/**
115
187
* Creates a log when a payment is partially refunded.
116
188
*
117
- * @param \Drupal\state_machine \Event\WorkflowTransitionEvent $event
118
- * The transition event.
189
+ * @param \Drupal\commerce_payment \Event\PaymentEvent $event
190
+ * The payment event.
119
191
*/
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 ();
123
194
$ this ->logStorage ->generate ($ payment , 'payment_partially_refunded ' , [
124
195
'payment_remote_id ' => $ payment ->getRemoteId (),
125
196
])->save ();
@@ -128,12 +199,11 @@ public function onPartiallyRefund(WorkflowTransitionEvent $event) {
128
199
/**
129
200
* Creates a log when a payment is fully refunded.
130
201
*
131
- * @param \Drupal\state_machine \Event\WorkflowTransitionEvent $event
132
- * The transition event.
202
+ * @param \Drupal\commerce_payment \Event\PaymentEvent $event
203
+ * The payment event.
133
204
*/
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 ();
137
207
$ this ->logStorage ->generate ($ payment , 'payment_refunded ' , [
138
208
'payment_remote_id ' => $ payment ->getRemoteId (),
139
209
])->save ();
0 commit comments