Page MenuHomePhabricator

Apple Pay: Donate form API calls
Closed, ResolvedPublic

Description

Before presenting the option to navigate to the Apple Pay donate form, we need to fetch the apps donation form config and payment networks to confirm we have what we need to complete a payment.

Since we need config and payment networks information before they reach the donation form, initial thoughts are to fetch this in the same area where we fetch campaign information. We can move this placement once the path to the native Apple Pay donate form isn't dependent on a currently running campaign.

Donate Config:

Payment Networks: (T344860)

Submit Payment: (T344774)

  • Params: api_key, amount, currency (USD, CAD, etc), country, language, recurring (1 for yes, 0 or null for no), country, language, payment_token, email, first_name, last_name, full_name, street_address, city, state_province, country, postal_code, opt_in (agreed to emails, 0 or 1), pay_the_fee (agreed to pay transaction fee, 0 or 1)

More technical information can be found at:
https://docs.google.com/document/d/1fXdHRknr8gz5Pou8PHFujIpb8Im06rDWdW04liFH42s/edit
https://docs.google.com/document/d/1CNbIe8p47Woq5MHU7mJwUw3xokEZKt3-FhqY53ogpew/edit

Event Timeline

Expecting the current volume of the calls for Payment Networks endpoint to be in the 2-8 req/s range to start. This should be ok from the fr-tech side.

Tsevener renamed this task from Apple Pay: Fetch and cache payment networks and config to Apple Pay: Fetch payment networks and config.Sep 8 2023, 8:51 PM
Tsevener updated the task description. (Show Details)

PR: https://github.com/wikimedia/wikipedia-ios/pull/4619

Marking as hold as it's stacked onto the monorepo PR, plus I expect slight changes once the payment networks endpoint is available.

Tsevener renamed this task from Apple Pay: Fetch payment networks and config to Apple Pay: Donate form API calls.Sep 22 2023, 9:29 PM
Tsevener updated the task description. (Show Details)

Moving to Ready for Release - the other tickets will be enough to QA this functionality.