@@ -107,20 +107,27 @@ def invoice_payment_failed(self, invoice: stripe.Invoice) -> None:
107
107
card = (
108
108
payment_intent .payment_method .card
109
109
if payment_intent .payment_method
110
- and not isinstance (payment_intent .payment_method , str )
110
+ and hasattr (payment_intent .payment_method , 'card' )
111
+ else None
112
+ )
113
+ us_bank_account = (
114
+ payment_intent .payment_method .us_bank_account
115
+ if payment_intent .payment_method
116
+ and hasattr (payment_intent .payment_method , 'us_bank_account' )
111
117
else None
112
118
)
113
119
template_vars = {
114
120
"amount" : invoice .total / 100 ,
115
- "last_four" : card .last4 if card else None ,
116
121
"cta_link" : invoice .hosted_invoice_url ,
117
122
"date" : datetime .now ().strftime ("%B %-d, %Y" ),
118
123
# card params
119
124
"is_credit_card" : True if card else False ,
120
125
"card_type" : card .brand if card else None ,
126
+ "last_four" : card .last4 if card else None ,
121
127
# us bank params
122
- "is_us_bank" : True if payment_intent .payment_method and hasattr (payment_intent .payment_method , 'us_bank_account' ) else False ,
123
- "bank_name" : payment_intent .payment_method .us_bank_account .bank_name if payment_intent .payment_method and hasattr (payment_intent .payment_method , 'us_bank_account' ) else None ,
128
+ "is_us_bank" : True if us_bank_account else False ,
129
+ "bank_name" : us_bank_account .bank_name if us_bank_account else None ,
130
+ "bank_last_four" : us_bank_account .last4 if us_bank_account else None ,
124
131
}
125
132
126
133
for admin in admins :
0 commit comments