Page MenuHomePhabricator

[SPIKE] Investigate implementation native GPay in Android
Closed, ResolvedPublic

Description

Background
This is the task to explore and document the steps for adding native support for GPay into the Android Wikipedia App in partnership with fr-tech.

The task

  • Explore and document implementation steps for native GPay
  • Confirm if similar in-app donation flow that was used for ApplePay T288285 can be used for Android (to inform designs)
    • Looking at the Apple Pay designs, ours can be virtually identical. Except instead of the Apple Pay popup sheet, it will be Google Pay. This is the only component that is "out of our control", i.e. we will hand over control to it, then get back a success token or failure.
  • Look into google account set-up process

Steps identified:

  • Submit screenshots of how the integration will look, from start to finish of the transaction and submit to google for approval
  • Gain production access to the GPay API, and the gateway that will produce tokens to give to the Fundraising endpoint, which proxies to Adyen etc.

Event Timeline

  • Look into google account set-up process

I don't believe any new accounts will be needed. There is already a merchant account operated by FR-tech that we will use.

  • Explore and document implementation steps for native GPay

The steps are as follows:

  • Design and build the user interface for initiating and completing the transaction, while using a sandbox "test" environment provided by Google Pay, without yet needing to communicate with our backend API.
    • If necessary, we can try making sample payment requests to a backend staging environment that FR-tech can set up. This testing can be in parallel with development of the user interface.
  • Take screenshots of each step of the completed workflow and submit them for approval.
  • Once approved, we can switch from the "test" environment to the production GPay environment.
  • The end result of a GPay transaction is a token that we will forward to FR-tech's existing payments backend, which will complete the transaction.
    • At this stage we will do final testing to see how our backend handles this token, and see if any tweaks need to be made.

A few documentation links:
https://developers.google.com/pay/api/android/guides/tutorial
https://developers.google.com/pay/api/android/guides/setup
https://developer.android.com/codelabs/pay-android-checkout

  • Design and build the user interface for initiating and completing the transaction, while using a sandbox "test" environment provided by Google Pay, without yet needing to communicate with our backend API.
    • If necessary, we can try making sample payment requests to a backend staging environment that FR-tech can set up. This testing can be in parallel with development of the user interface.
  • Take screenshots of each step of the completed workflow and submit them for approval.
  • Once approved, we can switch from the "test" environment to the production GPay environment.
  • The end result of a GPay transaction is a token that we will forward to FR-tech's existing payments backend, which will complete the transaction.
    • At this stage we will do final testing to see how our backend handles this token, and see if any tweaks need to be made.