Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Send email when the invoice processed #1534

Merged
merged 4 commits into from May 14, 2024
Merged

Send email when the invoice processed #1534

merged 4 commits into from May 14, 2024

Conversation

enescakir
Copy link
Member

Improve invoice charging function

We manually charge invoices. I've resolved some issues we encountered during the charging process.

Firstly, I switched the logging method from 'puts' to 'Clog'.

We attempted to charge each payment method listed in the billing information sequentially. Sometimes, the Stripe Ruby SDK throws an error when a payment fails. In such cases, we need to catch the error and proceed to charge the next payment method.

If we successfully charge an invoice, there's no need to continue trying other payment methods, so we break the loop.

If all payment methods fail, we leave the invoice unpaid.

Add cc parameter to the email sending function

We need to cc the support email when sending a failed payment email to the customer. This way, the support team can follow up with the customer if necessary.

Send an email when the invoice is successfully charged

We email the customer once the invoice is successfully processed.

We plan to include the invoice as a PDF attachment in future emails. However, generating a PDF on the backend is complex, so we'll add this feature in the next update.

Send an email when the invoice is failed to charge

We automate the process of sending emails when an invoice fails to charge, including error details from the Stripe API.

We also add the support email as a CC, allowing the entire team to follow up with the customer if needed.

model/invoice.rb Outdated Show resolved Hide resolved
model/invoice.rb Outdated Show resolved Hide resolved
model/invoice.rb Outdated Show resolved Hide resolved
model/invoice.rb Outdated Show resolved Hide resolved
Copy link
Member

@byucesoy byucesoy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot for separate commits. It made reviewing significantly easier.

model/invoice.rb Show resolved Hide resolved
model/invoice.rb Outdated Show resolved Hide resolved
We manually charge invoices. I've resolved some issues we encountered
during the charging process.

Firstly, I switched the logging method from 'puts' to 'Clog'.

We attempted to charge each payment method listed in the billing
information sequentially. Sometimes, the Stripe Ruby SDK throws an error
when a payment fails. In such cases, we need to catch the error and
proceed to charge the next payment method.

If we successfully charge an invoice, there's no need to continue trying
other payment methods, so we break the loop.

If all payment methods fail, we leave the invoice unpaid.
We need to cc the support email when sending a failed payment email to
the customer. This way, the support team can follow up with the customer
if necessary.
We email the customer once the invoice is successfully processed.

We plan to include the invoice as a PDF attachment in future emails.
However, generating a PDF on the backend is complex, so we'll add this
feature in the next update.
We automate the process of sending emails when an invoice fails to
charge, including error details from the Stripe API.

We also add the support email as a CC, allowing the entire team to
follow up with the customer if needed.
@enescakir enescakir merged commit 313f190 into main May 14, 2024
6 checks passed
@enescakir enescakir deleted the invoice-notif branch May 14, 2024 15:31
@github-actions github-actions bot locked and limited conversation to collaborators May 14, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants