Page MenuHomePhabricator

Donation amount in Civi does not match the donation amount received at dLocal
Closed, ResolvedPublic

Description

Donor in Zendesk ticket #1350747 / CID 43793551 reached out after receiving their donation receipt to let us know the amount that is shown as donated on the receipt is incorrect.

The donation receipt says INR 25.00 and in Civi it also says INR 25.00 if you look at the transaction id in Civi it is 191773530.1.

screenshot 1.png (1×1 px, 127 KB)

However, if you look up the same transaction ID in dLocal, 191773530.1, it says the donation amount is INR 101.00 not INR 25.00. Thus the amount donated in dLocal doesn't match the amount donated in Civi.

screenshot 2.png (252×2 px, 60 KB)

As you can see in the image above when looking at dLocal under the donor's email address it appears that there were two separate donation attempts of INR 101.00 (approved) and INR 51.00 (rejected).

So far, this is the first instance of this issue we've come across but will flag if we come across any others. Could we look into the cause of the mismatch and if it is possible to correct the donor's civi record so that we may send them a corrected receipt?

Event Timeline

@EMartin @RKumar_WMF - do we have an update on this one? We haven't yet responded to the donor other than to say we're looking into it and it's been a week since we engaged.

Thanks!

DLocal confirmed there is no issue reported on their end.

David Toluwalase John
7:08 PM (1 hour ago)
to me, Love, Sebastian, Evelyn, Michael

Hi Rakhi,

I reviewed this transaction with our team and we confirmed that the payment for the transaction id 191773530.1 was correctly received for INR 101.00.

In addition, regarding the payment for transaction id 191773577.1, we have not received the payment for INR 51.00.

Our team confirmed that there is no error from our end. As such I believe that this may be an issue from your end.

Kind regards,

David John | Snr. Customer Success Associate

XenoRyet triaged this task as Medium priority.Sep 19 2023, 6:05 PM
XenoRyet subscribed.

Let's take a look and see if we can figure out if this is a one-off or a bigger problem.

I may have been able to reproduce this bug locally and it seems to be caused by session stickiness and the donor starting another payment session (possibly from a different email) before completing the first payment.

To reproduce:

  • Open a Dlocal UPI payment page (link) and begin the payment session by clicking on the UPI after which you'd be redirected to the UPI sandbox page. Do not complete the payment just yet.
  • On a new tab, open another Dlocal UPI page with a different amount (link) but do not click on the UPI button. Just stay on the page.
  • Go back to the tab with the running payment session and now complete the payment and get redirected to the thank you page.
  • Notice that the thank you url would have an amount parameter different from the amount paid with.

A fix for this would be to either set a flag to indicate a payment session in progress which would be used in generating a new session token and a new invoice_id.

I am trying to replicate the issue but when i click on the link given, I am getting error:

This site can’t be reachedlocalhost refused to connect.
Try:

Checking the connection
Checking the proxy and the firewall
ERR_CONNECTION_REFUSED

Apologies @RKumar_WMF, that was an internal test link for the engineers on the team. Here are the live links that would possibly match the issue:

I'm working on fixing this as soon as possible.

Change 964015 had a related patch set uploaded (by Damilare Adedoyin; author: Damilare Adedoyin):

[mediawiki/extensions/DonationInterface@master] Donation amount in Civi does not match the donation amount received at dLocal

https://gerrit.wikimedia.org/r/964015

Another solution is to pass the amount and other parameters to identify the payment into the return url.

I may have been able to reproduce this bug locally and it seems to be caused by session stickiness and the donor starting another payment session (possibly from a different email) before completing the first payment.

To reproduce:

  • Open a Dlocal UPI payment page (link) and begin the payment session by clicking on the UPI after which you'd be redirected to the UPI sandbox page. Do not complete the payment just yet.
  • On a new tab, open another Dlocal UPI page with a different amount (link) but do not click on the UPI button. Just stay on the page.
  • Go back to the tab with the running payment session and now complete the payment and get redirected to the thank you page.
  • Notice that the thank you url would have an amount parameter different from the amount paid with.

A fix for this would be to either set a flag to indicate a payment session in progress which would be used in generating a new session token and a new invoice_id.

Change 964015 merged by jenkins-bot:

[mediawiki/extensions/DonationInterface@master] Donation amount in Civi does not match the donation amount received at dLocal

https://gerrit.wikimedia.org/r/964015

XenoRyet set Final Story Points to 2.