Must-haves
- Settings item near the top with "Donate" option
- An option to pay via Apple Pay should be presented when tapping this
- Tapping "Donate with Apple Pay" should launch the iOS Payment Authorization view controller/action sheet
- The Apple Pay option or any branding should not be visible if the user doesn't have Apple Pay or is restricted for compliance reasons.
- Tapping "Other payment method" should launch the existing link used in the app into the donate.wikimedia.org
Technical notes
- The donation flow should be presentable from any context.
- For now, we don't need to keep track of successful donations or keep any local information about donation history. In the future, we may want to record a donation that has occurred to prevent additional asks from being shown, but for this version, no record of donation is required.
- This feature must work well with Dynamic Type and Voice Over.
Open questions
- Do we need to country limit this appearance? Currently, we rely on the donate.wikimedia.org site to determine if/how a user can donate. If we do this all natively, can we rely on the OS and App Store/Payment Provider Config to prevent donations from disallowed locales? (https://developer.apple.com/documentation/passkit/apple_pay/complying_with_regional_regulations)
Designs (Figma)
Below are variants of the "Donate with Apple Pay" mocks that can be found in this Figma file.
Contributors can access the "Donate with Apple Pay" action through Settings in the Explore tab’s top right corner.
Settings entry point
1. Settings entry | 2. Donate item | 3. Donate sheet | 4. Success toast |
Article entry point
Banner design | Reminder toast | Already donated toast |
- "Donate now" takes users to a native (Variant A) or in-app web form (Variant B). Which one will be decided based on technical feasibility within the project’s timeline.
- After a successful donation, the banner is not shown again for the rest of the campaign.
- "Maybe later"
- Shows the banner again the next day.
- "Maybe later" is not shown when the %currentTime plus %maybeLaterTime equals the campaign's end date.
- The “Close” (top right x) and “I already donated” options both dismiss the banner for the rest of the campaign. Already donated shows a brief "Thank you" toast (see third image)
Variant A: Native form
1. Donate sheet | 2. Native form | 3. Error | 4. Selection | 5. Pay the fee | 6. Email | 7. Donate CTA | 8. Success toast |
- "Donate now" takes users to a native payment form. This is the recommended variant.
- Donate sheet
- Shown when users are "ready to pay" with Apple Pay on their device.
- If Apple Pay has not been set up on a user’s device before, they’re taken directly to the in-app web form (see Variant B) after tapping "Donate now (Donate sheet is not shown).
- Choosing "Other payment method" takes users to the in-app web form (see Variant B)
- Note: We’re showing the action sheet with the options since it’s technically challenging/unclear if amounts from the native can be passed on the web form.
- Links below "Donate with Apple Pay"
Variant B: In-app web form
1. Banner | 2. Web form | 3. Details | 4. Recurring | 5. Thank you |
- "Donate now" takes users to a web form.
- Note: If available on the device, the web form also features an "Apple Pay option.
- The "Thank you" page features a prominent button at the bottom to take users back to the article.
Testing Notes
This can be tested starting in Wikipedia TestFlight 7.4.3 (2809) build.
Testing tips:
All new donor experience work (in-app web view, new campaign modals with maybe later, multilingual campaign support, Apple Pay native donation) are set up to become available in the app only once the Netherlands or Italy Oct/Nov 2023 campaigns become valid. To test native Apple Pay, your device needs to be set up like this:
- Device iOS Settings > Language & Region > Region needs to be set to either the Netherlands or Italy
- Device date & time needs to be set on or after the campaign start date (change device date to 10/17)
- After fresh install, you must background and foreground the app, then pull to refresh on the Explore feed to trigger a force refresh of the campaign data.
- To be provided the option to donate via Apple Pay (native donate form), you must have a valid card set up in Apple Wallet.
- IMPORTANT: Production charges are rate-limited to 4 transactions per 4 hours.