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

Paypal Pro currency issue #7977

Open
HongMarketingInc opened this issue Dec 28, 2016 · 64 comments
Open

Paypal Pro currency issue #7977

HongMarketingInc opened this issue Dec 28, 2016 · 64 comments
Labels
Area: Payments bug report Component: Payment Issue: Confirmed Gate 3 Passed. Manual verification of the issue completed. Issue is confirmed Priority: P2 A defect with this priority could have functionality issues which are not to expectations. Progress: ready for dev Reproduced on 2.2.x The issue has been reproduced on latest 2.2 release Reproduced on 2.3.x The issue has been reproduced on latest 2.3 release Reproduced on 2.4.x The issue has been reproduced on latest 2.4-develop branch

Comments

@HongMarketingInc
Copy link

Preconditions

  1. Magento CE 2.1.2
  2. Setup two websites, each one has its own Paypal Pro account.
  3. Setup base currency as CAD for each website
  4. Product currency is CAD

Steps to reproduce

  1. Go to the 1st website (main website), place an order (CAD $10.00) by using Paypal Pro payment, both Magento and Paypal show the amount in CAD
  2. Go to the 2nd website, place an order (CAD $10.00) by using Paypal Pro payment, Magento shows CAD10.00, but Paypal actually charge the customer USD $10.00.

Expected result

  1. The customer should be charged in CAD on the 2nd website

Actual result

  1. The customer is charged in USD on the 2nd website
@alena-marchenko
Copy link

Hi @HongMarketingInc

Have you used different Paypal Pro accounts for websites?
PayPal can show USD instead of CAD when Paypal Pro account does not support Canadian Dollars. In this case you will need to contact PayPal support for enabling Canadian Dollars support for account.

@HongMarketingInc
Copy link
Author

Yes, each website has its own paypal pro account. Each account's primary currency is CAD.

I can confirm that the client is charged by USD.

@KalebHosie
Copy link

KalebHosie commented Feb 6, 2017

I'm having the same issue, except it's charging in USD for all websites. I called PayPal and they said it's an issue with the API call.

I ran the debug in my PayPal settings and I have confirmed that when I use PayPal Express checkout, the API call specifies the CAD currency and the end result is that it works correctly. On the other hand, when I use Website Payments Pro, it doesn't doesn't specify any currency at all during the API call and the customer is charged in USD.

Could this be the issue?

@gooki
Copy link

gooki commented Feb 9, 2017

Referenced in 1c7f70d

app/code/Magento/Paypal/Test/Unit/Model/Payflow/TransparentTest.php
Line 169: + ->willReturn('USD');

Maybe if we (Canadian Sellers) change that line to read CAD, the correct currency will be sent?

@KalebHosie
Copy link

KalebHosie commented Feb 9, 2017

@gooki That's good thinking but sadly I already tried that with no luck.

@KalebHosie
Copy link

There has been a lot of communication on this subject using issue #6929 and there is a lot of missing information on this thread.

To provide an update for anyone new that can help us or is experiencing the same issue, here is a summary.

  • When using PayPal Website Payments Pro, it always charges in USD and not the default currency we chose (in this case, CAD $)

  • The API call for PayPal Website Payments Pro & PayFlow Pro is not sending the currency to PayPal which leaves me assuming that PayPal defaults to charging in USD.

  • Magento 2.1.4 was released on February 7 2017 which says it resolves the following issue however according to our tests, nothing has changed:

PayPal Payflow Pro now uses the currency you’ve specified in your store settings. Previously, Magento converted the total price into U.S. dollars, no matter which currency was specified in the store

Ultimately, we need to find a way to charge credit cards on our websites in our own currency.

All help is greatly appreciated!

@gooki
Copy link

gooki commented Feb 11, 2017

@supanatral +1
Plus zero amount being sent (or is a consequence of the wrong currency being posted)

@KalebHosie
Copy link

@HongMarketingInc did you resolve this?

@gooki the API call does a $0 charge and to see if the credit card is approved, it will do a second API call with the final amount. This seems overly redundant to me but it does work.

@KalebHosie
Copy link

@gooki I've posted an ad on Upwork to hire a developer to fix this issue. I hope to report back with the coding changes required.

@gooki
Copy link

gooki commented Feb 12, 2017

@supanatral great let me know how much it will be or a link to the ad, I can share the cost if necessary

@KalebHosie
Copy link

@gooki you are a gentleman and a scholar! No worries though :)

I just finished hiring the developer about 1hr ago who will start working on the issue in about 12 hours from now. I've asked him to report his finding and big fix on Github so the entire community can benefit.

@gooki
Copy link

gooki commented Feb 13, 2017

@supanatral sweet, can't wait

@gooki
Copy link

gooki commented Feb 18, 2017

@supanatral Any news on this buddy?

@KalebHosie
Copy link

KalebHosie commented Feb 19, 2017

No update on the developers side. Hope to have an update soon on that.

I tried setting up a new v2.1.4 dev test site with sample data and tried it out without the use of 3rd party plugins. I changed the currency to CAD and setup PayPal. In the end, the API call didn't call for the CAD currency and it was still billed in USD.

@KalebHosie
Copy link

I just discovered another thread regarding this issue and it appears that the person found a temporary work around #7719

I don't have time to test it because I'm about to run out

@KalebHosie
Copy link

@gooki
I have tested it and i seems like @H3dz findings were correct.

If you add "$request->setCurrency('CAD'); // Hardcoded to CAD" to line 627, it appears to fix the problem.

Of course, this is not an ideal solution but it should work at least

@hubaig
Copy link

hubaig commented Feb 22, 2017

Hi,

That fix did change my currency to CAD but I still get an error and in my payflow logs see that it is authorising with $0.00 amount.

Any ideas why it would do that?

@KalebHosie
Copy link

@hubaig great to hear it worked. I tried finding a better solution but so far I've been unable to.

Magento authorizes $0 to make sure the credit card is valid. Once it gets a confirmation it's valid, it sends the full amount of the order. There's no doubt that it's overly redundant but it works so I cannot complain

@hubaig
Copy link

hubaig commented Feb 22, 2017

@supanatral I am actually trying to make a sale not an authorizaiton.

My Payment Action: is set to Sale in Magento. Not sure why it is authorizing instead of a sale. Any ideas?

@HongMarketingInc
Copy link
Author

@supanatral

Has your programmer fixed it?

@KalebHosie
Copy link

@hubaig My payment is set to sale as well. It appears to authorize $0 and when it gets approved, it charges the full amount.

As I said, there's no doubt this is incredibly redundant and very much unnecessary but at least it works.

My programmer hasn't seemed to figure out the fix as of yet :S

@hubaig
Copy link

hubaig commented Feb 22, 2017

Mine never ends up creating a sale. Just gives up at authorization.

@KalebHosie
Copy link

@hubaig Strange! Does your front end supporting both PayPal express checkout AND PayPal website payments pro? I'm not looking at the config interface but are you sure that both payment methods (express and payments pro) are set to "sale"?

Sorry if my reply is overly basic.

@hubaig
Copy link

hubaig commented Feb 22, 2017

yes they both are set to sale. I am updating to 2.1.5 as it just came out. Lets see if it fixes anything.

@ghost ghost added Reproduced on 2.2.x The issue has been reproduced on latest 2.2 release Reproduced on 2.3.x The issue has been reproduced on latest 2.3 release labels Sep 7, 2018
@ghost
Copy link

ghost commented Sep 7, 2018

Hi @HongMarketingInc , thank you for your report.
We've acknowledged the issue and added to our backlog.

@ghost ghost removed their assignment Sep 7, 2018
@amanuni
Copy link

amanuni commented Sep 7, 2018

Thank you @engcom-backlog-nazar for labeling this issue looking forward for the fix soon.

@mariamghalleb
Copy link

Any updates please?

@Grumag
Copy link

Grumag commented Dec 9, 2018

Tested in version 2.3.0, issue hasn't been fixed.

@ghost ghost removed Issue: Clear Description Gate 2 Passed. Manual verification of the issue description passed Issue: Format is valid Gate 1 Passed. Automatic verification of issue format passed Issue: Ready for Work Gate 4. Acknowledged. Issue is added to backlog and ready for development labels Oct 20, 2020
@sdzhepa sdzhepa added the Priority: P2 A defect with this priority could have functionality issues which are not to expectations. label Nov 4, 2020
@engcom-November engcom-November added Area: Payments Reproduced on 2.4.x The issue has been reproduced on latest 2.4-develop branch Issue: Confirmed Gate 3 Passed. Manual verification of the issue completed. Issue is confirmed and removed Issue: Confirmed Gate 3 Passed. Manual verification of the issue completed. Issue is confirmed labels Aug 25, 2021
@github-jira-sync-bot
Copy link

✅ Jira issue https://jira.corp.magento.com/browse/AC-992 is successfully created for this GitHub issue.

@m2-assistant
Copy link

m2-assistant bot commented Aug 25, 2021

✅ Confirmed by @engcom-November. Thank you for verifying the issue.
Issue Available: @engcom-November, You will be automatically unassigned. Contributors/Maintainers can claim this issue to continue. To reclaim and continue work, reassign the ticket to yourself.

@engcom-Hotel engcom-Hotel moved this to Ready for Development in High Priority Backlog Aug 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: Payments bug report Component: Payment Issue: Confirmed Gate 3 Passed. Manual verification of the issue completed. Issue is confirmed Priority: P2 A defect with this priority could have functionality issues which are not to expectations. Progress: ready for dev Reproduced on 2.2.x The issue has been reproduced on latest 2.2 release Reproduced on 2.3.x The issue has been reproduced on latest 2.3 release Reproduced on 2.4.x The issue has been reproduced on latest 2.4-develop branch
Projects
Status: Ready for Development
Development

No branches or pull requests