-
Notifications
You must be signed in to change notification settings - Fork 9.4k
PayPal Payflow Pro performs delayed capture with incorrect parent transaction ID #30870
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
Comments
Hi @aaronsilber. Thank you for your report.
Please make sure that the issue is reproducible on the vanilla Magento instance following Steps to reproduce. To deploy vanilla Magento instance on our environment, please, add a comment to the issue:
For more details, please, review the Magento Contributor Assistant documentation. Please, add a comment to assign the issue:
🕙 You can find the schedule on the Magento Community Calendar page. 📞 The triage of issues happens in the queue order. If you want to speed up the delivery of your contribution, please join the Community Contributions Triage session to discuss the appropriate ticket. 🎥 You can find the recording of the previous Community Contributions Triage on the Magento Youtube Channel ✏️ Feel free to post questions/proposals/feedback related to the Community Contributions Triage process to the corresponding Slack Channel |
To fix this for our client, we created a Composer patch that partially reverts the modifications to the parent transaction IDs used in authorize and capture. This patch can be applied by creating a directory "patches", and extracting the attached file to patches/MAGENTO-TWO-30870.patch, and adding the following to composer.json:
I'm working on reformatting this as a PR and will attach it once it's ready. |
@magento give me 2.4-develop instance |
Hi @aaronsilber. Thank you for your request. I'm working on Magento instance for you. |
Hi @aaronsilber, here is your Magento Instance: https://2afae794f8408637e37923547f6d9a26-2-4-develop.instances.magento-community.engineering |
@magento I am working on this |
Hi @aaronsilber! 👋 |
@magento add to contributors team |
Hi @aaronsilber! 👋 |
@magento I am working on this |
Hi @engcom-Delta. Thank you for working on this issue.
|
✅ Confirmed by @sdzhepa Issue Available: @sdzhepa, You will be automatically unassigned. Contributors/Maintainers can claim this issue to continue. To reclaim and continue work, reassign the ticket to yourself. |
Hi @aaronsilber. Thank you for your report.
The fix will be available with the upcoming 2.4.3 release. |
Not fixed in 2.4.3-p1. When I capture a payment, a sales transaction is made. This doesn't close out the authorization and results in a double charge. |
Confirmed this patch fixes the issue on 2.4.3-p1. |
Shortly after updating to Magento 2.3.6, our client had a large volume of customers report they had been "charged twice." After investigating this, we found these customers had a lingering authorization (pending transaction) on their cards, in addition to a charge for the full amount of the order. The authorization remains until it expires, typically 30 days.
We found that changes to the Magento_Paypal module introduced in Magento 2.3.6 caused the incorrect parent transaction ID to be used when performing a delayed capture. Instead of using the order's authorization as the parent transaction ID (behavior prior to Magento 2.3.6), the $0.00 vault token authorization for the payment is used as the parent transaction ID.
This causes the authorization to remain open until it expires, and the transaction sent to Payflow is not associated to the original order authorization. Additionally, the transaction displays in Payflow as "Capture" instead of "Delayed Capture".
Merchants with "Payment Action" set to "Sale" are likely not impacted, but we have not tested this.
Preconditions (*)
Steps to reproduce (*)
Expected result (*)
Actual result (*)
Please provide Severity assessment for the Issue as Reporter. This information will help during Confirmation and Issue triage processes.
The text was updated successfully, but these errors were encountered: