App
App copied to clipboard
[$500] Not seeing Pay with PayPal.me while sending money reported by @thesahindia
If you haven’t already, check out our contributing guidelines for onboarding and email [email protected] to request to join our Slack channel!
Action Performed:
- Login with account A
- Go to settings > Payments > Add payment method
- Click on PayPal.me > Add Paypal account
- Open another browser > Login with account B
- Click on fab menu > Send money > Add amount
- Select account A and proceed
- Verify that you aren't seeing the Pay with PayPal.me option
Expected Result:
You should see Pay with PayPal.me option
Actual Result:
Pay with PayPal.me option doesn't show up
Workaround:
unknown
Platform:
Where is this issue occurring?
- Web
- iOS
- Android
- Desktop App
- Mobile Web
Version Number: 1.2.21-4
Reproducible in staging?: y
Reproducible in production?: y
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos:
https://user-images.githubusercontent.com/43996225/198913924-35d19024-cdcf-4414-82b1-f80cf2fed8e8.mov
https://user-images.githubusercontent.com/43996225/198913931-320a2873-d6d4-4db0-9912-24219c49957d.mp4
Expensify/Expensify Issue URL:
Issue reported by: @thesahindia
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1667080931413899
Triggered auto assignment to @JmillsExpensify (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.
Issue is reproducible. Thanks for the clear testing steps.

Current assignee @JmillsExpensify is eligible for the External assigner, not assigning anyone new.
Triggered auto assignment to Contributor-plus team member for initial proposal review - @mananjadhav (External)
Triggered auto assignment to @marcochavezf (External), see https://stackoverflow.com/c/expensify/questions/7972 for more details.
I think this should be an external issue so applying the label. @marcochavezf mind confirming that my suspicions are correct? Looks like we've lost the option for this button, and could likely be related to on-going refactors in this part of the app.
Yeah, the Paypal data is saved locally in Onyx so the issue should be in the NewDot codebase. I also believe that could be related to the latest refactors.
Ok cool! cc @vitHoracek did we introduce a regression with PayIOU?
In the meantime, I think this is important to fix so I'm raised the starting price to $500. Upwork job is here: https://www.upwork.com/jobs/~013ae3656e861b31b5.
@JmillsExpensify we haven't merged anything App/Web for payIOU yet so it must be coming from some other changes.
Thanks for the confirmation!
Still waiting for proposals.
@JmillsExpensify
I am really excited for having come across your proposal. I will give this my utmost effort and want to get started right away. I have downloaded the source code and followed the instructions of the README file. All I got is a blank white screen after the page takes ages to load.
I would like some help running the code locally on my machine for the sake of saving time and doing some troubleshooting.
[web-server] ERROR in ./node_modules/@babel/runtime/regenerator/index.js 1:0 [web-server] Module parse failed: 'import' and 'export' may appear only with 'sourceType: module' (1:0) [web-server] File was processed with these loaders: [web-server] * ./node_modules/babel-loader/lib/index.js [web-server] You may need an additional loader to handle the result of these loaders. [web-server] > import _typeof from "@babel/runtime/helpers/typeof"; [web-server] | [web-server] | // TODO(Babel 8): Remove this file. [web-server] @ ./node_modules/@react-navigation/devtools/lib/module/useFlipper.js 3:0-61 56:47-71 58:17-41 [web-server] @ ./node_modules/@react-navigation/devtools/lib/module/index.js 8:15-49 [web-server] @ ./src/libs/Navigation/NavigationRoot.js 10:0-56 58:2-12 [web-server] @ ./src/Expensify.js 26:0-62 244:51-65 [web-server] @ ./src/App.js 9:0-36 37:38-47 [web-server] @ ./index.js 6:0-28 10:9-12
@drkcod3 Hello! Glad to see you around! For help related to running the App, it is definitely best to reach out in the Slack channel. If you are not member of the channel yet, please follow these guidelines: https://github.com/Expensify/App/blob/main/contributingGuides/CONTRIBUTING.md#asking-questions and also I recommend to familiarize yourself with that entire doc as it describes how to contribute to this repository.
Let us know if you need any more help here. I am sure that your issues will be resolved quickly in the Slack channel!
Bump. I haven't been invited to the slack channel to get help fixing basic babel issues so I can get to fixing this issue.
I can figure out the babel issues myself, but it would be quite helpful to have other developers guide me so I can waste my time fixing what is necessary
P.S @laurenreidexpensify takes ages to reply :)
Where I can see the backend requests requirements and documentation? It looks like the request to /api?command=OpenPaymentsPage doesn't include the receiver's email.
@mountiny From what I've been able to investigate it looks to me that API.write('AddPaypalMeAddress', ...) is not adding the PayPal address to the users PersonalDetails. The App tries to fetch the PayPal address from the PersonalDetails object but the value for the key payPalMeAddress is always coming up as empty string.
How can I see the API code and run my own local API?
If I hardcode the payPalMeAddress in PersonalDetails _.map function the button appears and redirects to the hardcoded PayPal address.
@marcochavezf @JmillsExpensify I think this is a duplicate of https://github.com/Expensify/App/issues/12291. I recommend we close this one out.
@kavimuru Can you confirm?
Both the issues are related payment methods refresh.
It's not a dupe. Are you seeing the Pay with PayPal option after refresh when following the steps in this issue?
Hmm, yeah I think this might be a dupe. Based on the reproduction steps in the linked issue, the paypal/payment option is not seen after a refresh.
Let me put this one on hold for https://github.com/Expensify/App/issues/12291, I think they are similar enough and proposal was accepted there, we can retest this after that PR is merged.
@mobilify I just tested the changes proposed in #12291 and I found that it does not affects this particular bug. It seems to fix the bug in #12291 correctly but not this one. The PayPal information for the Modal on #12291 comes from ONYXKEYS.COLLECTION.REPORT_IOUS (iouReport). In this Modal the PayPal information is fetched from ONYXKEYS.PERSONAL_DETAILS (personalDetails).
In #12291 the information was correctly added to Onyx, it was just a matter of how the component fetched that info when rendering. In this case the information is not there, even if you refresh it does not get fixed. And as I mentioned above:
@mountiny From what I've been able to investigate it looks to me that
API.write('AddPaypalMeAddress', ...)is not adding the PayPal address to the users PersonalDetails. The App tries to fetch the PayPal address from the PersonalDetails object but the value for the keypayPalMeAddressis always coming up as empty string. How can I see the API code and run my own local API? If I hardcode thepayPalMeAddressin PersonalDetails_.mapfunction the button appears and redirects to the hardcoded PayPal address.
if you hardcode the PayPal address into the personalDetails array, the PayPal option shows up as intended.
This to say, I don't think this two issues are related, applying the solution of the other issue doesn't seem to affect this one. I still believe my assessment is correct. I don't know how I could demonstrate the fix though because I cannot affect the implementation of API.write('AppPaypalMeAddress', ...) to make it add the PayPal address into the user's PersonalDetails.
@AndreasBBS Thanks fro the write up.
I will look into this internally once I get time for this to confirm what is going on with the API. A quick look I did just now shows we should be adding the paypal me address to the personal details so there must be some gremlins. Gonna update the issue here later.
Great write-up @AndreasBBS. Thank you! I like @vitHoracek's plan, let's investigate the API layer and then come back to align on the appropriate fix (might be in more than one repo).
Will try to look into this today
Testing locally I think this needs to be internal. We have changed how the paypal address is saved and I guess something does not line up with where/how the data is saved and then it is not retrieved correctly.
A Contributor Manager will be assigned to issue payment via Upwork if we deploy an associated Pull Request to production. Per Contributing.md.
Removing the hold. @marcochavezf would you have some time/ willingness to look into this next week?
Thanks for circling back on this one @vitHoracek. @marcochavezf let me know if next week isn't realistic and I can try to find someone else to look into it.
Sure, I'm going to give it a shot next week