diff --git a/ecommerce/extensions/payment/processors/webhooks.py b/ecommerce/extensions/payment/processors/webhooks.py index dfb638c5da8..05086466a57 100644 --- a/ecommerce/extensions/payment/processors/webhooks.py +++ b/ecommerce/extensions/payment/processors/webhooks.py @@ -72,6 +72,9 @@ def handle_webhooks_payment(self, request, payment_intent, payment_method_type): Upon receipt of the payment_intent.succeeded event from Stripe, create an order, create a billing address, fulfill order, and save payment processor data. """ + # Adding the request site needed for getting the partner.short_code from siteconfiguration + self.site = request.site + # Get basket associated to the Payment Intent payment_intent_id = payment_intent['id'] order_number = payment_intent['description'] @@ -98,7 +101,7 @@ def handle_webhooks_payment(self, request, payment_intent, payment_method_type): try: self.record_processor_response(payment_intent, transaction_id=payment_intent_id, basket=basket) logger.info( - '[Dynamic Payment Methods] Successfully recorded Stripe payment intent [%s] ' + '[Dynamic Payment Methods] Successfully recorded Stripe response for payment intent [%s] ' 'for basket [%d] and order number [%s].', payment_intent_id, basket.id, @@ -120,7 +123,7 @@ def handle_webhooks_payment(self, request, payment_intent, payment_method_type): self.record_payment(basket, handled_processor_response) properties.update({'total': handled_processor_response.total, 'success': True, }) finally: - # TODO: Differentiate event from regular payments? + properties.update({'payment_method': payment_method_type}) track_segment_event(basket.site, basket.owner, 'Payment Processor Response', properties) # Create Billing Address diff --git a/ecommerce/extensions/payment/tests/processors/test_webhooks.py b/ecommerce/extensions/payment/tests/processors/test_webhooks.py index 246c42ef3fe..3203bc82350 100644 --- a/ecommerce/extensions/payment/tests/processors/test_webhooks.py +++ b/ecommerce/extensions/payment/tests/processors/test_webhooks.py @@ -161,7 +161,7 @@ def test_handle_webhooks_payment(self, mock_track, mock_retrieve, mock_handle_po }, } self.processor_class(self.site).handle_webhooks_payment( - self.request, succeeded_payment_intent, 'afterpay_clearpay' + self.request, succeeded_payment_intent, 'affirm' ) properties = { 'basket_id': self.basket.id, @@ -169,6 +169,7 @@ def test_handle_webhooks_payment(self, mock_track, mock_retrieve, mock_handle_po 'stripe_enabled': True, 'total': self.basket.total_incl_tax, 'success': True, + 'payment_method': succeeded_payment_intent['charges']['data'][0]['payment_method_details']['type'], } mock_track.assert_called_once_with( self.basket.site, self.basket.owner, 'Payment Processor Response', properties