Skip to content

Commit 3dbf26f

Browse files
authored
Merge pull request #153 from edly-io/manan/EDLY-TIAGA-7099
Added program name to description in stripe checkout
2 parents 48f3c99 + ce8ef5c commit 3dbf26f

File tree

1 file changed

+31
-3
lines changed
  • ecommerce/extensions/payment/processors

1 file changed

+31
-3
lines changed

Diff for: ecommerce/extensions/payment/processors/stripe.py

+31-3
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@
2222
BaseClientSidePaymentProcessor,
2323
HandledProcessorResponse
2424
)
25+
from ecommerce.extensions.payment.utils import (
26+
get_basket_program_uuid,
27+
)
28+
from ecommerce.programs.utils import get_program
2529

2630
logger = logging.getLogger(__name__)
2731

@@ -149,15 +153,26 @@ def get_transaction_parameters(self, basket, request=None, use_client_side_check
149153
if product.course:
150154
regex = '\\:(.*?)\\+'
151155
course_org = re.findall(regex, product.course.id)[0]
156+
157+
program_uuid = get_basket_program_uuid(basket)
158+
program = None
159+
160+
if program_uuid:
161+
program = get_program(program_uuid, basket.site.siteconfiguration)
152162

153-
description = '{order_number} - {organization}: {title}'.format(
163+
description_prefix = 'Order#: {order_number}, Instance: {organization}'.format(
154164
order_number=order_number,
155-
organization=course_org if course_org else basket.site.partner.name,
156-
title=product.title
165+
organization=course_org if course_org else basket.site.partner.name
157166
)
158167

159168
line_items = []
169+
product_titles = []
160170
for line in basket.all_lines():
171+
description = '{prefix}: {title}'.format(
172+
prefix=description_prefix,
173+
title=line.product.title
174+
)
175+
product_titles.append(line.product.title)
161176
line_items.append({
162177
'price_data': {
163178
'currency': basket.currency.lower(),
@@ -169,6 +184,16 @@ def get_transaction_parameters(self, basket, request=None, use_client_side_check
169184
},
170185
'quantity': line.quantity,
171186
})
187+
188+
payment_intent_description = '{prefix}{program}, Course: {titles}'.format(
189+
prefix=description_prefix,
190+
program=', Program: ' + program.get('title') if program else '',
191+
titles=', Course: '.join(product_titles)
192+
)
193+
194+
MAX_DESCRIPTION_LENGTH = 997
195+
if len(payment_intent_description) > MAX_DESCRIPTION_LENGTH:
196+
payment_intent_description = payment_intent_description[:MAX_DESCRIPTION_LENGTH] + '...'
172197

173198
try:
174199
session = stripe.checkout.Session.create(
@@ -181,6 +206,9 @@ def get_transaction_parameters(self, basket, request=None, use_client_side_check
181206
),
182207
billing_address_collection="required",
183208
cancel_url=self.cancel_url,
209+
payment_intent_data={
210+
'description': payment_intent_description
211+
},
184212
metadata={
185213
'basket_id': basket.id,
186214
'order_number': order_number

0 commit comments

Comments
 (0)