App icon indicating copy to clipboard operation
App copied to clipboard

[$500] Not seeing Pay with PayPal.me while sending money reported by @thesahindia

Open kavimuru opened this issue 3 years ago • 30 comments

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:

  1. Login with account A
  2. Go to settings > Payments > Add payment method
  3. Click on PayPal.me > Add Paypal account
  4. Open another browser > Login with account B
  5. Click on fab menu > Send money > Add amount
  6. Select account A and proceed
  7. 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

View all open jobs on GitHub

kavimuru avatar Oct 31 '22 01:10 kavimuru

Triggered auto assignment to @JmillsExpensify (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

melvin-bot[bot] avatar Oct 31 '22 01:10 melvin-bot[bot]

Issue is reproducible. Thanks for the clear testing steps.

Screenshot 2022-11-01 at 09 10 41

JmillsExpensify avatar Nov 01 '22 15:11 JmillsExpensify

Current assignee @JmillsExpensify is eligible for the External assigner, not assigning anyone new.

melvin-bot[bot] avatar Nov 01 '22 15:11 melvin-bot[bot]

Triggered auto assignment to Contributor-plus team member for initial proposal review - @mananjadhav (External)

melvin-bot[bot] avatar Nov 01 '22 15:11 melvin-bot[bot]

Triggered auto assignment to @marcochavezf (External), see https://stackoverflow.com/c/expensify/questions/7972 for more details.

melvin-bot[bot] avatar Nov 01 '22 15:11 melvin-bot[bot]

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.

JmillsExpensify avatar Nov 01 '22 15:11 JmillsExpensify

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.

marcochavezf avatar Nov 01 '22 17:11 marcochavezf

Ok cool! cc @vitHoracek did we introduce a regression with PayIOU?

JmillsExpensify avatar Nov 01 '22 17:11 JmillsExpensify

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 avatar Nov 01 '22 17:11 JmillsExpensify

@JmillsExpensify we haven't merged anything App/Web for payIOU yet so it must be coming from some other changes.

mountiny avatar Nov 01 '22 20:11 mountiny

Thanks for the confirmation!

JmillsExpensify avatar Nov 01 '22 23:11 JmillsExpensify

Still waiting for proposals.

JmillsExpensify avatar Nov 03 '22 03:11 JmillsExpensify

@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 avatar Nov 03 '22 07:11 drkcod3

@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!

mountiny avatar Nov 03 '22 09:11 mountiny

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 :)

drkcod3 avatar Nov 05 '22 12:11 drkcod3

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.

ronhillel avatar Nov 05 '22 21:11 ronhillel

@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.

AndreasBBS avatar Nov 06 '22 18:11 AndreasBBS

@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.

mananjadhav avatar Nov 07 '22 06:11 mananjadhav

It's not a dupe. Are you seeing the Pay with PayPal option after refresh when following the steps in this issue?

thesahindia avatar Nov 07 '22 07:11 thesahindia

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.

JmillsExpensify avatar Nov 08 '22 05:11 JmillsExpensify

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.

mountiny avatar Nov 08 '22 11:11 mountiny

@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 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.

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 avatar Nov 08 '22 14:11 AndreasBBS

@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.

mountiny avatar Nov 08 '22 16:11 mountiny

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).

JmillsExpensify avatar Nov 08 '22 17:11 JmillsExpensify

Will try to look into this today

mountiny avatar Nov 11 '22 09:11 mountiny

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.

mountiny avatar Nov 11 '22 16:11 mountiny

A Contributor Manager will be assigned to issue payment via Upwork if we deploy an associated Pull Request to production. Per Contributing.md.

melvin-bot[bot] avatar Nov 11 '22 16:11 melvin-bot[bot]

Removing the hold. @marcochavezf would you have some time/ willingness to look into this next week?

mountiny avatar Nov 11 '22 16:11 mountiny

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.

JmillsExpensify avatar Nov 11 '22 19:11 JmillsExpensify

Sure, I'm going to give it a shot next week

marcochavezf avatar Nov 12 '22 01:11 marcochavezf