Commit Graph

216 Commits

Author SHA1 Message Date
ramont-stripe c5923d6eca
Allow combining multiple modules when generating docs (#451)
* Allow generating docs from combined modules

* Delete unused script

* Use a temp directory to avoid polluting the repo

* Document the new key

* Document function

* Inject module name

Fix DocSet generation.

* Upgrade to jazzy 0.14.1

Ignores declarations annotated as `@_spi`.

* Increment cache keys
2021-10-29 20:21:52 -04:00
David Estes 8ec1be32d9 Fixes for Xcode 12.2 2021-10-18 15:26:31 -07:00
Cameron 98e4e9e964
Adds new localizations and updates screenshot generation (#322)
* Adds new localizations
Adds new screenshot generating UI tests for PaymentSheet Example
Updates screenshot generating script to use new shared variables and screenshot PaymentSheet Example

* Fixed malay.

* Adds Android-parity localizations

* Randomize order

* Localize Scan Card

* Re-add accessibilityIdentifiers

* Can scroll to cells

* Fix crash

* Fixes bad while loop condition and cleaner constraint management for presentation

* Toggle apm off for test

* Disable returning test case

* Fix missing accessibilityIdentifier

* Fix bad merge
2021-10-18 11:12:33 -07:00
Mel 561885e82c
IDPROD-2454: DateFieldElement for DOB input (#396)
Created a new `DateFieldElement` for date inputs and added a `dateOfBirth` factory method for Identity. This view works very similarly to our `DropdownFieldElement` except a date picker is displayed instead of a UIPicker and no chevron image is shown. Optionally, a defaultDate can be set on this element to pre-populate it with a date or it can be left blank until the user taps into the field and selects a date.

Specific changes include:
* Abstracted `DropdownFieldView` to take any UIView as its picker (e.g. UIDatePicker or UIPicker) and renamed it to `PickerFieldView`
* Created new `DateFieldElement` whose view is a `PickerFieldView`
* Added checks to `DropdownFieldElement` to ensure the defaultIndex is valid so we don't get an index out of bounds error
* Added DOB factory method to `IdentityElementsFactory`
* Added an `autosizeHeight` helper to `StripeCoreTestingUtils` to help layout views before taking snapshots
2021-10-11 17:18:40 -07:00
Mel 66dd632a6e
IDPROD-2527: lint for duplicate localized strings (#378)
Lint for localized strings that are duplicated across modules.
2021-10-06 14:04:37 -07:00
Mel b614010ef7
IDPROD-2264: Update scripts for modules.yaml (#314)
Updates a number of our scripts to use `modules.yaml` for all module-related configurations rather than modifying constants contained in each script.

- Migrates `export_builds.sh` -> `export_builds.rb` and uses modules.yaml to configure `scheme` and `framework_name`
- Updates localization scripts to use modules.yaml's `localization_dir` property
- Updates `pod_tools.rb` to use `pod_push_order` from modules.yaml
- Fixed mistake in `pod_tools.rb` usage text.
2021-08-12 14:37:57 -07:00
Mel cad8637508
IDPROD-2280: fix docs symlinks and <img/> tags (#321)
- symlinks to asset directories (css, img, js) now use relative paths instead of absolute
- use absolute URLs for images and links embedded in the readme using `<img/>` or `<a>` tags
2021-08-06 14:44:49 -07:00
Mel cb3dac01a8
Migrate localized strings to StripeIdentity (#320)
- Migrate "close" to `StripeCore` so it can be shared between `Stripe` and `StripeIdentity`
- Fixed bug in `upload_localized_strings_to_lokalise.sh` that was not properly migrating strings from one module to another
- Ran `upload_localized_strings_to_lokalise ` and `download_localized_strings_from_lokalise` to migrate translated strings from `Stripe` to `StripeIdentity`
- Include localized string files in `StripeCore.podspec` and `StripeIdentity.podspec`
2021-08-04 15:52:14 -07:00
Mel cc6e1a6b2e IDPROD-2141: Add StripeIdentity README & configure docs (#310)
- Added `StripeIdentity/README.md` to include details about the Identity SDK
- Kept the main `README.md` mostly as-is except...
    - Directed to Identity docs for areas that differ between the SDKs (like min iOS version, required frameworks, etc)
    - Updated required frameworks to include `StripeCore`
    - Fixed test instructions (dupes #307, but should deconflict okay when merging back into `private`)
    - Updated links to release tag to use relative URLs (see note below)
    - Fixed `<!–te–>` from displaying underneath TOC on docs site (like [here](https://stripe.dev/stripe-ios/docs/index.html#table-of-contents))
- Updated `build_documentation.rb` to...
    - Use module-specific README when generating docs
    - Fix relative links in README files to absolute URLs using the tagged github URL path (see note below)
- [cleanup] deleted `ui-examples.png` since there seems to be no reference to it
- Added `readme-images/` to store images displayed in README / markdown files
- Updated `README.md` to use sentence case for all headers in accordance with our [docs styleguide](https://site-admin.stripe.com/docs/style-guide/all#heading-capitalization)
2021-08-04 10:27:47 -07:00
Mel 702e8df394 IDPROD-2142 part2: generate docs index.html page (#302)
Now generating a `docs/index.html` page that links to the documentation for all of the modules in the repo that have documentation enabled (`Stripe` & `StripeIdentity`). The index page reuses the same html template as the Jazzy theme we use to generate our docs. The descriptions that display for each module are populated by the summary in their podspec file. With the next deploy, this page will be visible at https://stripe.dev/stripe-ios.
2021-08-04 10:27:47 -07:00
Mel 5bc433b038 IDPROD-2142 part 1: Update docs scripts for multiple modules (#300)
Updated our `build_documentation` script to iterate through all modules which we want to build docs for and create a separate docs directory. 
- `Stripe` module will continue to build its docs to the `docs/docs` folder so we don't invalidate any pre-existing documentation links (there's [a lot of references](https://livegrep.corp.stripe.com/search/stripe?q=stripe-ios%2Fdocs&fold_case=auto&regex=false&context=true)).
- `StripeIdentity` will generate its docs to `docs/stripe-identity`
- Any future SDK which we want to generate docs for, can use the same pattern of `docs/{{module-name}}`
2021-08-04 10:27:47 -07:00
Mel de74180478 IDPROD-1942 part3: Migrate source & tests to StripeIdentity module (#294)
- Migrated Identity source from `Stripe` -> `StripeIdentity` module
- Updated `IdentityVerification Example` app to import `StripeIdentity` instead of `Stripe`
- Migrated the following shared dependencies to `StripeCore`:
    - `UIFont+Stripe.swift`
    - `UIActivityIndicatorView+Stripe.swift`
- Enabled snapshot tests in `StripeIdentityTests`
- Migrated relevant localized strings (`./ci_scripts/check_for_new_localized_strings.sh`)
- Added `StripeIdentity` to `PODSPECS` in `pod_tools.rb` so it will be published with the next deploy
2021-08-04 10:27:47 -07:00
Mel 768c6b45f6 IDPROD-1942 part2: Add dependencies & localization to StripeIdentity (#286)
- Added dependency `StripeIdentity` -> `StripeCore`
- Enabled Localization in `StripeIdentity`
2021-08-04 10:27:47 -07:00
Mel a76fed8361 IDPROD-1942 part1: Create empty StripeIdentity project (#279)
Follows `iOS SDK Runbook: Adding a new module`
2021-08-04 10:27:47 -07:00
Mel 63f3d3a67f Fixes needed after merging identity-beta (#289)
- Migrate STPDeviceUtils to StripeCore
- Add StripeCore imports
- Include StripeCoreTestUtils in StripeTests
- Publicly expose MockAnalyticsClient vars & init
- Move MockAnalyticsClient to StripeCoreTestUtils target (was incorrectly in StripeCoreTests)
- Fix test.rb
2021-08-04 10:27:47 -07:00
Mel 336be4a0e3 Add analytics to IdentityVerificationSheet (#155)
This change adds analytics to the IDV sheet. Specifically, we're logging the following events:

- `stripeios.idprod.verification_sheet.presented` - the sheet is presented to the end-user
- `stripeios.idprod.verification_sheet.closed` - the sheet is closed by the end-user. Also contains a `session_result` to indicate whether the user successfully completed the IDV flow or closed the sheet to cancel out of the flow.
- `stripeios.idprod.verification_sheet.failed` - the sheet failed to open. Also contains an `error_dictionary` containing the error code, domain, and userInfo dictionary for the error that caused the sheet to fail to open.
2021-08-04 10:27:47 -07:00
Mel bd8e58a5e0
MOBILESDK-326 & MOBILESDK-326: Add pod_tools.rb script (#292)
Created a new `pod_tools.rb` script which has the following commands:
- `push`: Pushes all podspecs to `trunk` in order by dependencies.
- `add-all-owners POD`: Adds all the owners of the `Stripe` pod as owners of `POD`.
- `add-owner OWNER-EMAIL`: Adds the registered user specified with `OWNER-EMAIL` as an owner of all pods in this repo. _(Used for onboarding)_
- `remove-owner OWNER-EMAIL`: Removes the user specified with `OWNER-EMAIL` from being owner of all pods in this repo. _(Used for offboarding)_
2021-07-15 16:20:17 -07:00
Mel d33ae30ada
MOBILESDK-266 part2: Migrate unexpected error message (#281)
- Migrated `NSError.stp_unexpectedErrorMessage()` from `Stripe` -> `StripeCore`
- Went through Localization process
- Fixed test snapshots that contained updated localization for zh-Hans
2021-07-15 11:37:59 -07:00
Mel 161a2f7886
Update export_builds script to zip all frameworks together (#291)
- Add StripeCore to export_builds.sh
- Now zipping all xcframeworks (Stripe, Stripe3DS2, and StripeCore) into one `Stripe.xcframework.zip` file
2021-07-14 19:11:10 -07:00
Mel babdfdae22
MOBILESDK-266: multi-module localization (#280)
Adds the ability to put localized strings in `StripeCore` and sets up infrastructure for any new module to contain localized strings. Now each module will have...
- Its own version of `STPLocalizedString`
- Its own set of `Resources/Localizations/*.lproj/Localizable.strings` files
2021-07-13 15:03:29 -07:00
Mel b926804cde
Remove SPI protocol abstraction (#283)
- Remove abstraction for SPI-public protocols and instead tell Jazzy to ignore them using `:nodoc:` notation.
- Added comment notes linking to https://github.com/realm/jazzy/issues/1262
2021-07-13 14:40:26 -07:00
Mel 8ce9d92af8
MOBILESDK-265: Move analytics to StripeCore (#274)
- Migrated `STPAnalyticsClient` & dependent classes into `StripeCore`
- Exposed internally available analytics code with to spi-public using the `STP` namespace so it could be used from other Stripe modules
- Migrated `STPAPIClient.sharedUrlSessionConfiguration` -> `StripeAPIConfiguration.sharedUrlSessionConfiguration` so it can be shared across modules
- Dependency injected the public key from `STPAPIClient` into `STPAnalyticsClient` via a new `PublishableKeyProvider` protocol
- Created wrappers for protocols declared SPI-public inside `StripeCore` to avoid displaying SPI-public conformance in our docs
- Updated `build_documentation.sh` to clean the pod cache for all Stripe pods
2021-07-08 13:25:07 -07:00
Mel 45ee1ac390
MOBILESDK-318: Add StripeCore dependency to Stripe (#273)
- Add a dependency on `StripeCore` for the StripeiOS target, Carthage, SPM, and Cocoapods
- Update `StripeCore.podspec` to use a tag instead of a branch
- Shared `StripeCore.xcscheme` so Carthage builds StripeCore
- Modified `build_documentation.sh` to pass a temporary local podspec repo so it can find `StripeCore`
2021-07-01 13:46:14 -07:00
Mel d6cf9fad79
MOBILESDK-260 part2: Create empty StripeCore project (#264)
- Created a new `StripeCore` project (with `Placeholder.swift` file)
- Added `StripeCore.podspec` and new `StripeCore` target in `Packages.swift`
- Updated `check_version.rb` and `update_version.sh` to check & update versions in all `*.podspec` files
- Added `check_podspecs_for_branches.sh` to use during deploy process
2021-06-29 20:07:08 -07:00
Mel ffd1a023e7
MOBILESDK-260 part1: Cleanup build configurations so they can be shared (#263)
- Moved `BuildConfigurations` out of `Stripe` folder and into root directory
- Deleted unused xcconfig files (`LocalizationTester*.xcconfig` and `StripeiOSResources.xcconfig`)
- Migrated `StripeiOS`-specific build settings out of shared xcconfig files and onto the project.
- Added `clean_project_build_settings.sh` to ensure `project.pbxproj` files don't overwrite xcconfig settings (more below)
- Removed build settings from the StripeiOS target that were overriding xcconfigs (using `clean_project_build_settings.sh`)
2021-06-29 18:09:02 -07:00
Mel 3a4cb58b28
MOBILESDK-267: Configure all version strings from VERSION file (#224)
This change updates our release process to update fewer version and enables us to more easily share the version string across multiple frameworks when we split the SDK. We will no longer need to manually edit the version strings for:
- `Info.plist`
- `Stripe.podspec`
- `STPAPIClient.swift`

This change:
1. Adds a `Version.xcconfig` file that controls `StripeiOS` project & build version. This will eventually be shared across multiple frameworks.
2. Adds an `update_version.sh` script that will update the version strings in `Version.xcconfig`, `Stripe.podspec`, and `StripeAPIConfiguration+Version.swift` from the `VERSION` file.
3. Migrates hardcoded version string from `STPAPIClient.STPSDKVersion` into `StripeAPIConfiguration+Version.swift`. This file:
    - Is autogenerated from `VERSION`
    - Will be moved to `StripeCore` as part of MOBILESDK-265
2021-06-24 16:26:18 -07:00
jaimepark-stripe 1c5c128990
Add Clearpay logo to AfterpayPriceBreakdownView when locale is UK (#248)
* Add clearpay logo for gb

* add project.pbxproj for new files

* change logo size and test ref images

* add snapshot test to skip-snapshot-test list

* added comma
2021-06-16 17:48:17 -07:00
davidme-stripe 50f7b6138b
Delete validate_zip.sh and the manual installation test (#233)
* Delete validate_zip.sh

We don't use it.

* Remove manual installation test
2021-06-09 11:46:14 -07:00
Cameron 11a6e2ffaa
Don't download en-us translations (#222) 2021-05-19 11:26:18 -07:00
davidme-stripe b877abcf71
Merge pull request #194 from stripe-ios/davidme/notify-success-and-failure
Notify E2E tests on success and failure
2021-05-06 13:04:59 -07:00
Cameron 8aa791826f
Adds script to check for invalid formatting in localized strings (#211) 2021-05-06 10:37:14 -07:00
Cameron a321a5fe64
Don't link to version with v prefix (#210)
Remove typo in STPPaymentCardTextField docstring
2021-04-30 14:51:15 -07:00
David Estes 77a027bcda Notify on success and failure 2021-04-16 15:56:33 -07:00
David Estes cc07fd8fa5 Send URL correctly 2021-04-05 17:36:33 -07:00
David Estes 36d62a533f Update scripts 2021-04-05 17:04:40 -07:00
Mel 0922e2b286
Move each example app into its own directory
Updated the directory structure of our `Example/` folder such that each example app project + supporting files is contained in its own directory (e.g. `Example/UI Examples/UI Examples.xcodeproj`, `Example/UI Examples/UI Examples/*.swift`).

All example project README files are kept in the example's root directory (e.g. `Example/Basic Integration/README.md`). This means that we don't have to update the relative paths in any of our README files.

Additionally:
- Relocated `UIColorColor+Stripe.swift` into the Basic Integration project files folder since it was previously orphaned in a weird location.
- Relocated `Basic Integration.xcworkspace` into `Example/Basic Integration/` (it was previously in the root directory, which was also confusing fastlane a little)
- Fixed `Basic Integration.xcworkspace` and `UI Examples.xcworkspace` so they compile now (they weren't including the `Stripe` and/or `Stripe3DS2` projects).
2021-03-23 15:53:40 -07:00
David Estes 3884cb9951 Refactor CI 2021-03-11 17:37:31 -08:00
Yuki a07276083a
Merge origin/mc (#135)
* Squashed commit of the following:

commit 4482647bc76cc9827a66238e5885507a812150f1
Author: Yuki <yuki@stripe.com>
Date:   Thu Feb 25 17:09:02 2021 -0800

    [origin/mc] Add Alipay (#129)

    * Add Alipay

    * Add :nodoc:...

commit ab270754e9d843b12bb823411b6becd423f9655d
Merge: 9366ab5a b11111d7
Author: Yuki <yuki@stripe.com>
Date:   Tue Feb 23 14:58:09 2021 -0800

    Merge pull request #128 from stripe-ios/yuki/mc-merge-2

    [origin/mc] merge private

commit 9366ab5ad075a46f5559d5ed6fadec1f7927e96e
Author: Cameron <36750494+csabol-stripe@users.noreply.github.com>
Date:   Tue Feb 23 11:12:17 2021 -0800

    Adds ability to remove saved payment methods (#125)

    * Adds ability to remove saved payment methods

    * Color update

    * Refactor suggestions from review

    * Better reload

commit b11111d74f43ca3dc469d7b546ccfe22e60c3908
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Mon Feb 22 17:07:56 2021 -0800

    Update PaymentSheet with ApplePay changes

commit f17660592bd7622ce2cfc053895617387bdb8b42
Merge: 6043ae8d 73306f38
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Thu Feb 18 15:39:26 2021 -0800

    Merge remote-tracking branch 'origin/private' into yuki/mc-merge-2

commit 6043ae8d2ecea159dc52aba02e0d8d35b99ef24a
Merge: b42929a6 12570b63
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Thu Feb 18 15:36:09 2021 -0800

    Merge remote-tracking branch 'origin/yuki/mc-merge' into mc

commit b42929a6749d4054f82f9d581120c08b3e6a0bf6
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Thu Feb 18 15:36:01 2021 -0800

    Revert "[origin/mc] Merge private  (#119)"

    This reverts commit 8f6e043260e2e8eb522d96c5a38273f1291f2b85.

commit 8f6e043260e2e8eb522d96c5a38273f1291f2b85
Author: Yuki <yuki@stripe.com>
Date:   Thu Feb 18 14:55:23 2021 -0800

    [origin/mc] Merge private  (#119)

    * Disable card scanning until I get more feedback

    * Add a few convenience accessors to make the SDK 21 transition easier

    * Update config test

    * Change GrabPay to synchronous

    * Fix Carthage and Swift Package Manager (#17)

    The dynamic .xcframework can't be imported by Carthage, and requires that manual users embed Stripe3DS2.xcframework separately. Fix this by using the static Stripe3DS2.xcframework to create a combined Stripe.xcframework, like we distribute in the existing Objective-C version.

    * Start 21.0.0

    * Update version numbers 21.0.0

    * Update docs

    * Fix a compiler warning on Catalyst

    * Move LocalizationTester to a separate xcodeproj to work around a Carthage bug

    * Update package configuration

    * Adding UPI integration for iOS (#13)

    * Adding UPI integration

    * project.pbxproj changes

    * project.pbxproj changes

    * fix linting tests

    * making vpa non-optional

    * change Upi to UPI

    * fix name in comments

    Co-authored-by: David Estes <davidestes@stripe.com>

    * Fix public initializers (#22)

    * Fix public initializers

    * Add two more missing publics

    * Add a few more missing publics

    * Add docstrings

    * Revert "Adding UPI integration for iOS (#13)" (#24)

    This reverts commit 1b1b4ad7e6.

    * Update version, README, CHANGELOG, and docs

    * Update Package.swift

    * Expose cardNumber from STPPaymentCardTextField (#27)

    * Fix STPPaymentHandler (#29)

    * Remove extraneous modulemap (#28)

    * Fix marlin return url for Alipay

    * Adding UPI integration for iOS (#26)

    * Adding UPI integration

    * project.pbxproj changes

    * project.pbxproj changes

    * fix linting tests

    * making vpa non-optional

    * change Upi to UPI

    * fix name in comments

    Co-authored-by: David Estes <davidestes@stripe.com>

    * Attempt to fix Cocoapod spec (#30)

    * Attempt to fix Cocoapod spec

    * These shouldn't be scoped to iOS only

    * Release 21.1.0

    * Release 21.1.0

    * Release 21.1.0

    * Update Package.swift

    * Add PRIVACY.md (#43)

    * Add netbanking integration for iOS (#34)

    * adding netbanking integration

    * add netbanking params test

    * revert contents.xcworkspacedata

    * merge fix

    * linting fix

    * fix copy paste error in function name

    * name case change

    * fix casing in test case

    * Re-add breaks into text field that were dropped during switification (#51)

    * Adds attach & detach methods to CustomerContext that take PaymentMeth… (#52)

    * Adds attach & detach methods to CustomerContext that take PaymentMethod ids instead of the entire object

    https://github.com/stripe/stripe-ios/issues/1729

    * Add tests

    * Add docstrings

    * Update Stripe/STPCustomerContext.swift

    Co-authored-by: davidme-stripe <52758633+davidme-stripe@users.noreply.github.com>

    Co-authored-by: davidme-stripe <52758633+davidme-stripe@users.noreply.github.com>

    * Fix directoryServerKeyID in 3DS2 request (#54)

    We weren't filling this out correctly after the Swift conversion.

    * Release 3DS2 framework source code (#62)

    Stripe3DS2 is now open source under the MIT license.

    * Switch from Asset Catalogs to 3x PNGs (#58)

    * Switch from asset catalogs to 3x PNGs

    * Don't query the service for non-UnionPay BINs (#63)

    ## Summary
    Add a check to `retrieveBINRanges` to make sure users of STPBINRange can't unintentionally fetch metadata for non-UnionPay BINs.
    While we're dealing with BINs, fix a compiler issue with `binRanges.map(\.brand)`. (Some users are reporting a compile error when Xcode can't infer the type from the key path: That doesn't make any sense to me, but this is the only place we use key-path expressions, so we might as well get rid of it.)

    ## Motivation
    We were mistakenly querying the service in some situations with non-UnionPay BINs.

    ## Testing
    Tested with Basic Integration using a 19-digit UnionPay test card.

    * Begin 21.2.0

    * 21.2.0

    * Use Podspec to build docs

    * Use Podspec to build docs

    * Add more image tests (#55)

    * added AfterpayClearpay

    * Added tests and AfterpayExampleVC

    * Check localized bundle for card scanner description (#76)

    It's possible to define your NSCameraUsageDescription in InfoPlist.strings instead of Info.plist. If you do this, we block the card scanner because we think you haven't defined an NSCameraUsageDescription. (We check this because accessing the camera permissions API without it would cause a crash.)

    * Fix Card Scanning setting after Objective-C conversion

    After the conversion from Objective-C, we were still checking if configuration?.cardScanningEnabled == nil. nil and false aren't equal in Swift.

    * fix numberOfRows in table, pass supported_payment_methods from client to example backend for beta payment methods like Afterpay

    * ran localized strings script

    * Added Afterpay case to _isProcessingIntentSuccess

    * add docstring

    * Optimize some tests (#89)

    Tried a few things to speed up our CI. It's 35% less expensive to run, and we can use this workspace-caching stuff to add more complex integration tests in the future.

    * Fix payment card text field resizing

    * Add additionalDocument for verification (#94)

    * Fix missing translations for language dialects (#92)

    The old code didn't handle region-specific variations: If an app supported `fr-CH`, we'd compare `fr-CH` with `fr`, notice that they were different, and fall back to the app's main bundle. This would cause us to always show the unlocalized English key instead, as the string wouldn't be found.

    But always reading the main bundle first means a user could accidentally override our strings in an unexpected way: For example, by replacing "Check" in a paper check payment with a word that means "✔️".

    To work around this, we'll use the old behavior combined with glaures-ioki's change: If the languages don't match, we should check the main bundle for the string. If we don't find it there, we fall back to the Stripe bundle.

    I also considered just checking the first two letters of the language code, but it's possible a user would want to override our implementation of a two-letter language prefix (for example, if we only supported `pt`, but a user required `pt-br`).

    * Fix handling of nil region code (#91)

    * Fix STPTheme with navigation bar (#93)

    We were updating the navigation bar appearance when the navigationController was nil. We'll update it after the view appears too, to make sure the theme takes effect. This was a pull request from rbenna.

    While I was in this code, I fixed a bug where the Edit/Done button in the list of cards didn't always use the font from the theme.

    * Update CHANGELOG for 21.2.1 (#97)

    * updated to 21.2.1 in readme and changelog

    * update to 21.2.1 in podspec, plist, STPAPIClient and VERSION

    * ran build_documentation script

    * Update cert chain for 3DS2 test (#104)

    * Remove carthage hacks

    * Remove carthage hacks

    * Clean up project

    * Fix Carthage

    * Fix CI, carthage

    * brew upgrade carthage

    * add carthage to prep environment step

    * Remove extra script step for tests, it never really gave the correct info

    * Don't mark empty metadata responses as errors (#106)

    * Don't mark empty metadata responses as errors

    * Only one request per prefix per session

    * Stop overreporting missing metadata

    * SwiftUI Custom Integration

    * Update apple pay paymentRequest convenience method docstring (#108)

    * Tests

    * Allow 13.6

    * Removes unwanted weak declarations in STPPaymentOptionsViewController (#110)

    * Removes unwanted weak declarations in STPPaymentOptionsViewController

    * Adds country code to fix failing STPApplePayContextFunctionalTests

    * Run on iOS 14

    * Run on latest

    * Uncommit accidental cartfile update

    * Base copied params on stored params

    * Fix isEqual to include more data

    * Add SetupIntent support

    * Fix SetupIntent example

    * Disable WeChatPay tests (#113)

    * Add improvements to CI app

    * Remove unnecessarily added files

    * Update CI related files to origin/private

    * Re-add PaymentSheet specifics?

    * Also update stripe3ds2-support/ci_scripts to origin/private

    * Also update Tests/installation_tests/carthage to origin/private

    * Update Localizable.strings

    * Fix STPPaymentMethodEnums

    * Fix missing assets on iOS 11, 12

    * Remove extraneous *.orig files

    Co-authored-by: David Estes <davidestes@stripe.com>
    Co-authored-by: davidme-stripe <52758633+davidme-stripe@users.noreply.github.com>
    Co-authored-by: Cameron Sabol <csabol@stripe.com>
    Co-authored-by: Cameron <36750494+csabol-stripe@users.noreply.github.com>
    Co-authored-by: anirudh-stripe <60690025+anirudh-stripe@users.noreply.github.com>
    Co-authored-by: Ali Riaz <aliriaz@stripe.com>
    Co-authored-by: aliriaz-stripe <42750433+aliriaz-stripe@users.noreply.github.com>
    Co-authored-by: Mel <78050250+mludowise-stripe@users.noreply.github.com>

commit 12570b6336d2c70129109cf903b08d9bba1fe491
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Thu Feb 18 14:19:59 2021 -0800

    Remove extraneous *.orig files

commit a8b9978c1977f5fda52fe87d42033418620ae7dc
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Tue Feb 16 18:48:06 2021 -0800

    Fix missing assets on iOS 11, 12

commit 22760ab897b82744edebffa0bbdb51d820cfac24
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Tue Feb 16 15:54:39 2021 -0800

    Fix STPPaymentMethodEnums

commit 5162ec316c4398ce032236957fb228735bcc05c7
Merge: 74e30eef e9f607b1
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Tue Feb 16 13:55:54 2021 -0800

    Merge branch 'mc' into yuki/mc-merge

commit e9f607b132d3df1be4f2d7ce6cac59b6b720b628
Author: Cameron <36750494+csabol-stripe@users.noreply.github.com>
Date:   Tue Feb 16 13:28:53 2021 -0800

    Don't mark empty metadata responses as errors (#121)

    * ctrl+i

    * Merge

commit b8f88422f5d48fbc20dba0b482bceaacf0590eed
Author: Mel <78050250+mludowise-stripe@users.noreply.github.com>
Date:   Tue Feb 16 11:10:20 2021 -0800

    iDEAL payments for Mobile Checkout (#109)

    Added the iDEAL payment method to mobile checkouts. Note that this change does not address specifying billing information when paying with iDEAL – this will be added in a subsequent PR.

commit 804b367005a13b15e6c0d18036acd1364a09c9c5
Author: Mel <78050250+mludowise-stripe@users.noreply.github.com>
Date:   Thu Feb 11 11:26:43 2021 -0800

    Disable WeChatPay tests (#113)

commit 74e30eefa4619a607cb4f6ad4fc508a1a6c9efd3
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Mon Feb 15 12:40:42 2021 -0800

    Update Localizable.strings

commit f7b6ddf9733e3669b87c9b7ad23a9d20911f8ba8
Merge: ad1ec00a 644c7cef
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Mon Feb 15 11:22:45 2021 -0800

    Merge remote-tracking branch 'origin/private' into yuki/mc-merge-ci_scripts

commit ad1ec00a87aec9614b18fc7bf5f8470145f31bab
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Fri Feb 12 14:40:12 2021 -0800

    Also update Tests/installation_tests/carthage to origin/private

commit cf5cb37e83333659546c514e5e70dd99d35a125a
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Fri Feb 12 14:37:30 2021 -0800

    Also update stripe3ds2-support/ci_scripts to origin/private

commit 682ac556584c87d08d353ae02f07a67f4634b6c2
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Fri Feb 12 14:26:14 2021 -0800

    Re-add PaymentSheet specifics?

commit 129e81539531773b0daa4ce019858fb5c46ddf48
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Fri Feb 12 14:16:41 2021 -0800

    Update CI related files to origin/private

commit 0ad2822806cb82b519083b0b1fb362d624f388fb
Author: Yuki <yuki@stripe.com>
Date:   Fri Feb 5 09:58:58 2021 -0800

    [origin/mc] Add support for multiple payment method types  (#103)

    * Rename setErrorIfNecessary

    * Get rid of safeAreaLayoutGuide usage in child VCs

    * PaymentMethod carousel

    * Toggle 'Or pay using..' text under Apple Pay button

    * Toggle 'Add a card' / 'Add a payment method' title

    * Swap the new and old pm detail views

    * Prep sheet to handle multiple PM types

    * Refactor paymentMethodTypes

    * Fix tests

    * More fixes

    * Fix documentation

    * Update cert chain for 3DS2 test (#104)

    (cherry picked from commit 6d256ca463)

    * delete extraneous border color setting

commit 58998ebb035763b808532cd93b8fa16016815649
Merge: e527bc75 cd6053b4
Author: davidme-stripe <52758633+davidme-stripe@users.noreply.github.com>
Date:   Thu Feb 4 09:24:59 2021 -0800

    Merge pull request #105 from stripe-ios/davidme/mc-pk

    Send publishable key with events

commit e527bc75c66b4b14be466c2b788ff7c5708f4fb5
Author: Yuki <yuki@stripe.com>
Date:   Wed Feb 3 16:31:01 2021 -0800

    Update cert chain for 3DS2 test (#104)

    (cherry picked from commit 6d256ca463)

commit cd6053b4c59d34090b93e748d8a22caff2979a3f
Author: David Estes <davidestes@stripe.com>
Date:   Wed Feb 3 16:31:47 2021 -0800

    Send publishable key in events

commit 3c37b41b4589cafa75e484bfc504ee07faa6e315
Merge: 934db8ee e8b61e57
Author: kush-stripe <75282116+kush-stripe@users.noreply.github.com>
Date:   Tue Feb 2 19:02:12 2021 -0500

    Merge pull request #102 from stripe-ios/kush/dash-moto

    Mobile dashboard SCA exemption

commit e8b61e57cffb0f7329b42d6b72cdaa796f1a82a6
Author: Kush Agrawal <kush@stripe.com>
Date:   Tue Feb 2 13:32:18 2021 -0800

    Remove SCA comment about mobile

commit e96b808abd8f21b53f4a1c3e979996c2182b0e39
Author: Kush Agrawal <kush@stripe.com>
Date:   Mon Feb 1 20:11:29 2021 -0800

    Moto exemption

commit 934db8ee573bbcd5bfd6414a1b2ac4b76a9a35a0
Merge: 7114cfe3 b1f1cb68
Author: davidme-stripe <52758633+davidme-stripe@users.noreply.github.com>
Date:   Fri Jan 29 15:33:32 2021 -0800

    Merge pull request #100 from stripe-ios/davidme/updated-confirmation

    Expose ViewModifier APIs publicly in SwiftUI

commit b1f1cb684eedee35a3eb03bdcb6ee74eac00a3bf
Author: David Estes <davidestes@stripe.com>
Date:   Fri Jan 29 14:45:30 2021 -0800

    change oncompletion again

commit f21b98a1b57061c72a920b2908f03ff32eabb880
Author: David Estes <davidestes@stripe.com>
Date:   Fri Jan 29 14:29:50 2021 -0800

    onPaymentCompletion

commit b0b15ff52a98e9179b596bc2db60fb24cad7d81f
Author: David Estes <davidestes@stripe.com>
Date:   Fri Jan 29 14:27:33 2021 -0800

    Update based on feedback

commit bbcad2319361ae152b4113b79d9c56fa363be126
Author: David Estes <davidestes@stripe.com>
Date:   Fri Jan 29 13:56:26 2021 -0800

    Fix comment

commit 5542ea1e9ac37f463c28b664c91f0783787e176f
Author: David Estes <davidestes@stripe.com>
Date:   Fri Jan 29 13:52:07 2021 -0800

    Expose ViewModifier API, update examples

commit 7114cfe32319ae8e2b314d57121951c6fddc145b
Author: davidme-stripe <52758633+davidme-stripe@users.noreply.github.com>
Date:   Thu Jan 28 09:09:20 2021 -0800

    Fix podspec xcassets (#95)

commit 324f4331e2b62f6c016ca688a7bab71d0c3e8eaa
Author: Cameron <36750494+csabol-stripe@users.noreply.github.com>
Date:   Wed Jan 27 12:30:47 2021 -0800

    Fixes flying card icon when loading metadata (#90)

commit b42550b15a6920d2cb1a7666b7d2a012ac18daa4
Author: Yuki <yuki@stripe.com>
Date:   Tue Jan 26 13:23:54 2021 -0800

    [origin/mc] Bugfixes (#88)

    * Fix home indicator dismiss animation

    * Fix playground label color

    * Fix card form not updating delegate when country changes

    * Auto-prefix expiry month values that start with 2...9 with a 0

commit 9e682cef24debd5fff475752141d71668576f2da
Author: Cameron <36750494+csabol-stripe@users.noreply.github.com>
Date:   Fri Jan 22 17:56:35 2021 -0800

    Adds localized MC strings (#87)

    * Adds localized MC strings

    * Update screenshot for zh-Hans

    * whitespace fix

commit f3808dae63784571b32de35ff87a749a77a4051e
Author: Yuki <yuki@stripe.com>
Date:   Fri Jan 22 16:14:06 2021 -0800

    Make checkbox button tappable target include the label (#86)

commit bd98bf095578a0f2deea1b3b52566ddd18c28c2e
Author: Cameron <36750494+csabol-stripe@users.noreply.github.com>
Date:   Fri Jan 22 13:59:26 2021 -0800

    Embeds 3DS2 challenge flow in PaymentSheet (#85)

    * Embeds 3DS2 challenge flow in PaymentSheet

    * SceneDelegate >> AppDelegate apparently

commit e883ec69ba2f63eab56957e3584c6da0b030b6f2
Author: Cameron <36750494+csabol-stripe@users.noreply.github.com>
Date:   Fri Jan 22 10:26:48 2021 -0800

    Displays API errors in form view when possible (#77)

    * Displays API errors in form view when possible

    * Tests

commit 62edfa65a5e52916bae8d10affe61a0af726a484
Author: Yuki <yuki@stripe.com>
Date:   Fri Jan 22 09:58:05 2021 -0800

    [origin/mc] Custom flow bugfixes (#82)

    * Fix PaymentSheetFlowController paymentOption non-nil even when we know it errored

    * Fix custom flow button flashing

commit 18b531c2a3860fe8bff489d618b452d5092e54bd
Author: davidme-stripe <52758633+davidme-stripe@users.noreply.github.com>
Date:   Fri Jan 22 09:41:24 2021 -0800

    Add UI Tests to PaymentSheet Examples (#83)

    * Add PaymentSheet UI Tests

commit cf0558e27d85b1ec577c23e58a9f35fdbe9f2185
Author: Yuki <yuki@stripe.com>
Date:   Fri Jan 22 07:48:16 2021 -0800

    [origin/mc] Fix autolayout feedback loop  (#84)

    * Fix autolayout feedback loop, modal constraints

    * Fix #available

commit 09182c0cd27016f122b9cf5000a5d4c6f84ff259
Author: davidme-stripe <52758633+davidme-stripe@users.noreply.github.com>
Date:   Thu Jan 21 15:59:46 2021 -0800

    Hide the keyboard while scanning (#81)

commit 58e7abcc5096f8c94f75f8b14c36d59e278ea2a0
Author: Cameron <36750494+csabol-stripe@users.noreply.github.com>
Date:   Thu Jan 21 14:26:24 2021 -0800

    Adds error icons to STPInputTextField (#67)

    Also fixes sizing issues with STPFloatingPlaceholderTextField and RTL issues with STPStackViewWithSeparator.

commit 754305192709ee7b24c4e089e41269ec91c83a16
Author: davidme-stripe <52758633+davidme-stripe@users.noreply.github.com>
Date:   Thu Jan 21 09:07:37 2021 -0800

    SwiftUI Support (#73)

    This adds SwiftUI support to MC.

    We add three new SwiftUI Views: `ConfirmButton`, `FlowController.PaymentOptionsButton`, and `FlowController.ConfirmPaymentButton`.

    `ConfirmButton` takes a PaymentSheet, a completion block, and a content block. It behaves the same way as a SwiftUI `Button`, so you can add your own content (`Text()`, `Image()`, etc.) and apply styling as needed. The intent is that a user will create their own Model object and store the PaymentResult in a `@Published` object to observe in their View.

    `FlowController.PaymentOptionsButton`, and `FlowController.ConfirmPaymentButton` are similar, but for the corresponding functions of `FlowController`.

    Under the hood, these are using a new `.paymentSheet()` extension to View, which uses a ViewModifier to add a `PaymentSheetPresenter` and an empty UIViewController to the background of the attached view.  It observes the state of `$isPresented`, and appears when true. This is loosely based on the strategy in https://github.com/stleamist/BetterSafariView, and is similar to how the built-in `.sheet()` API works. We won't make those public for now: I think the `Button`s might be enough for most users and I want to reduce the API surface as much as possible, but we can open them up later if needed.

commit 155e0096d9717c190130eab667dd00495a9239e0
Author: Cameron <36750494+csabol-stripe@users.noreply.github.com>
Date:   Wed Jan 20 13:46:48 2021 -0800

    Adds shadow to PaymentSheet forms (#71)

    Updates CTA button shadow to match

commit eb7741c312a00bee861e2fe05c4e821b1cf1447f
Author: Cameron <36750494+csabol-stripe@users.noreply.github.com>
Date:   Wed Jan 20 13:44:51 2021 -0800

    Update postal code validation when country code changes (#78)

commit b58c3c036c442bf8a5bc3ad35815af717f1c7cc4
Author: davidme-stripe <52758633+davidme-stripe@users.noreply.github.com>
Date:   Tue Jan 19 15:58:02 2021 -0800

    Improve placeholder text field animations (#75)

    Use a spring (but with ~no bounce) for placeholder text fields. The damping ratio / frequency response values were tuned by jarvis.
    Make the animation interruptible, fixing an issue where a label could get stuck when quickly switching between fields.

commit 47ef174ca97623b6dc06205951254e3dac253e79
Author: Cameron <36750494+csabol-stripe@users.noreply.github.com>
Date:   Tue Jan 19 10:40:04 2021 -0800

    Update text color based on validation state on user interactability change (#74)

commit 6ae55b01054b68e3ed08ca4815587bb819b6d401
Author: Yuki <yuki@stripe.com>
Date:   Thu Jan 14 10:53:36 2021 -0800

    [origin/mc] Polish round 4 (#72)

    * Disable add button if not saving after tapped

    * Tweak loading height

    * Put the navigation bar on top of the content, so shadow always draws

    * Add publishable key to analytics

    * Fix Add your payment information copy

    * Dont have header underlap content when content expands

    * Remove drag handle

    * Update localizable.strings

commit 3e5ab770ace448b5e94952f36e98cb9e600631f0
Author: Yuki <yuki@stripe.com>
Date:   Wed Jan 13 15:49:51 2021 -0800

    [origin/mc] Improve MC height animations (#69)

    * Improve dynamic height animations by refactoring PanModal to use autolayout

    * Fix jumpiness

    * Animate add card button removal/addition

    * Rework animation to use spring

commit d0fd255e2e4d5625c0ab7284f1c6a3c64b38ca3a
Author: Yuki <yuki@stripe.com>
Date:   Tue Jan 12 15:59:56 2021 -0800

    Updated copy to latest state, ready for localization (#70)

commit 87ea2c83798a1e25a323339b89dc72a4604972cc
Author: Yuki <yuki@stripe.com>
Date:   Mon Jan 11 18:04:31 2021 -0800

    Update card form error copy and multiple error logic to match Checkout. (#66)

    * Update card form error copy and multiple error logic to match Checkout.

    * Update card scanning copy too

    * Fix tests

    * Update snapshot test

commit e8b07db432b0c8015e995c9eb3604259025f87fd
Merge: f3724aef f4018188
Author: vineet-stripe <62961342+vineet-stripe@users.noreply.github.com>
Date:   Mon Jan 11 20:07:26 2021 -0500

    Merge pull request #68 from stripe-ios/vineet/optional-partnerid

    Make STPAppInfo partnerId optional

commit f401818820519dc4fdcae8b1965d43317972a084
Author: Vineet Shah <vineet@stripe.com>
Date:   Mon Jan 11 19:44:45 2021 -0500

    Make STPAppInfo partnerId optional

commit f3724aefa8fdcdbed6311257c4b53adf339c2a54
Author: Cameron <36750494+csabol-stripe@users.noreply.github.com>
Date:   Mon Jan 11 10:47:07 2021 -0800

    Merges in latest from private branch to get 3DS2 (#65)

    * Disable card scanning until I get more feedback

    * Add a few convenience accessors to make the SDK 21 transition easier

    * Update config test

    * Change GrabPay to synchronous

    * Fix Carthage and Swift Package Manager (#17)

    The dynamic .xcframework can't be imported by Carthage, and requires that manual users embed Stripe3DS2.xcframework separately. Fix this by using the static Stripe3DS2.xcframework to create a combined Stripe.xcframework, like we distribute in the existing Objective-C version.

    * Start 21.0.0

    * Update version numbers 21.0.0

    * Update docs

    * Fix a compiler warning on Catalyst

    * Move LocalizationTester to a separate xcodeproj to work around a Carthage bug

    * Update package configuration

    * Adding UPI integration for iOS (#13)

    * Adding UPI integration

    * project.pbxproj changes

    * project.pbxproj changes

    * fix linting tests

    * making vpa non-optional

    * change Upi to UPI

    * fix name in comments

    Co-authored-by: David Estes <davidestes@stripe.com>

    * Fix public initializers (#22)

    * Fix public initializers

    * Add two more missing publics

    * Add a few more missing publics

    * Add docstrings

    * Revert "Adding UPI integration for iOS (#13)" (#24)

    This reverts commit 1b1b4ad7e6.

    * Update version, README, CHANGELOG, and docs

    * Update Package.swift

    * Expose cardNumber from STPPaymentCardTextField (#27)

    * Fix STPPaymentHandler (#29)

    * Remove extraneous modulemap (#28)

    * Fix marlin return url for Alipay

    * Adding UPI integration for iOS (#26)

    * Adding UPI integration

    * project.pbxproj changes

    * project.pbxproj changes

    * fix linting tests

    * making vpa non-optional

    * change Upi to UPI

    * fix name in comments

    Co-authored-by: David Estes <davidestes@stripe.com>

    * Attempt to fix Cocoapod spec (#30)

    * Attempt to fix Cocoapod spec

    * These shouldn't be scoped to iOS only

    * Release 21.1.0

    * Release 21.1.0

    * Release 21.1.0

    * Update Package.swift

    * Add PRIVACY.md (#43)

    * Add netbanking integration for iOS (#34)

    * adding netbanking integration

    * add netbanking params test

    * revert contents.xcworkspacedata

    * merge fix

    * linting fix

    * fix copy paste error in function name

    * name case change

    * fix casing in test case

    * Re-add breaks into text field that were dropped during switification (#51)

    * Adds attach & detach methods to CustomerContext that take PaymentMeth… (#52)

    * Adds attach & detach methods to CustomerContext that take PaymentMethod ids instead of the entire object

    https://github.com/stripe/stripe-ios/issues/1729

    * Add tests

    * Add docstrings

    * Update Stripe/STPCustomerContext.swift

    Co-authored-by: davidme-stripe <52758633+davidme-stripe@users.noreply.github.com>

    Co-authored-by: davidme-stripe <52758633+davidme-stripe@users.noreply.github.com>

    * Fix directoryServerKeyID in 3DS2 request (#54)

    We weren't filling this out correctly after the Swift conversion.

    * Release 3DS2 framework source code (#62)

    Stripe3DS2 is now open source under the MIT license.

    * Switch from Asset Catalogs to 3x PNGs (#58)

    * Switch from asset catalogs to 3x PNGs

    * Don't query the service for non-UnionPay BINs (#63)

    ## Summary
    Add a check to `retrieveBINRanges` to make sure users of STPBINRange can't unintentionally fetch metadata for non-UnionPay BINs.
    While we're dealing with BINs, fix a compiler issue with `binRanges.map(\.brand)`. (Some users are reporting a compile error when Xcode can't infer the type from the key path: That doesn't make any sense to me, but this is the only place we use key-path expressions, so we might as well get rid of it.)

    ## Motivation
    We were mistakenly querying the service in some situations with non-UnionPay BINs.

    ## Testing
    Tested with Basic Integration using a 19-digit UnionPay test card.

    * Begin 21.2.0

    * 21.2.0

    * Use Podspec to build docs

    * Use Podspec to build docs

    * Fix example app 3DS2 linking. Re-add PaymentSheet xcassets

    * Podspec syntax fix

    * macCatalystApplicationExtension availability to fix jazzy

    * Update reference images for @3x pngs

    * Fix bin matching for empty strings

    Co-authored-by: David Estes <davidestes@stripe.com>
    Co-authored-by: Yuki Tokuhiro <yuki@stripe.com>
    Co-authored-by: davidme-stripe <52758633+davidme-stripe@users.noreply.github.com>
    Co-authored-by: anirudh-stripe <60690025+anirudh-stripe@users.noreply.github.com>

commit 87df6abd08eac1e828103645d50514a22ba7037e
Author: Yuki <yuki@stripe.com>
Date:   Tue Jan 5 10:35:33 2021 -0800

    [origin/mc] More polish items, fix tests (#60)

    * Disable nav bar button shadow in dark mode

    * Add shadow to green checkmark circle

    * Center the chevron in nav bar button

    * Fix Card expiry test

    * Update Stripe/SheetNavigationBar.swift

    Co-authored-by: Cameron <36750494+csabol-stripe@users.noreply.github.com>

    Co-authored-by: Cameron <36750494+csabol-stripe@users.noreply.github.com>

commit d230cd03f65cb97330864b057dfef99d3e2d359e
Merge: caf2c35e 79434041
Author: vineet-stripe <62961342+vineet-stripe@users.noreply.github.com>
Date:   Tue Jan 5 13:09:23 2021 -0500

    Merge pull request #61 from stripe-ios/vineet/user-key-testmode

    Use environment variable to enable testmode for user key authentication

commit 7943404105ed88da3e0e4d2104850245efc30afa
Author: Vineet Shah <vineet@stripe.com>
Date:   Tue Jan 5 12:50:32 2021 -0500

    Use environment variable to enable testmode for user key authentication

commit caf2c35ea21b21127caf10af74faeec2b11d0376
Merge: b24200a7 68106e19
Author: vineet-stripe <62961342+vineet-stripe@users.noreply.github.com>
Date:   Tue Jan 5 12:31:44 2021 -0500

    Merge pull request #59 from stripe-ios/vineet/dash-payment-acceptance

    Add user key (uk_) authentication support to PaymentSheet

commit 68106e19d2dd12de3ab462ed12b1d874b8e3459e
Author: Vineet Shah <vineet@stripe.com>
Date:   Mon Jan 4 20:27:02 2021 -0500

    Extract user key boolean

commit 3a1e34a9fb9f7b54ac6b50e42fbf547a0b8e8e13
Author: Vineet Shah <vineet@stripe.com>
Date:   Mon Jan 4 17:12:44 2021 -0500

    Change payment intent retrieval endpoint when authenticating with a user key

commit d448bdd5054982ac998586cac7b0567b6fe53bb6
Author: Vineet Shah <vineet@stripe.com>
Date:   Mon Jan 4 14:25:50 2021 -0500

    Create payment method separately when authenticating with a user key

commit c6ecf0a72bca7b4eeb566cf5d6c8fe7b87831a4b
Author: Vineet Shah <vineet@stripe.com>
Date:   Mon Jan 4 10:40:45 2021 -0500

    Set Stripe-Livemode header when authenticating with a user key

commit b24200a7ffc52bc0d30aff1b9e5a80e15bd55779
Author: Yuki <yuki@stripe.com>
Date:   Mon Dec 21 12:58:38 2020 -0800

    Fix margins (#56)

commit f9de872f90af3f54753cbc0d64090b8246a62761
Author: Yuki <yuki@stripe.com>
Date:   Thu Dec 17 15:12:18 2020 -0800

    Fix card scan button hanging main thread on device (#53)

    * Fix card scanning view hanging main thread on device (at least iOS 14.2)

    * Second attempt

commit 792f1fbfb72b5af79bd9f77357a700f97e2053a5
Author: davidme-stripe <52758633+davidme-stripe@users.noreply.github.com>
Date:   Tue Dec 15 15:55:46 2020 -0800

    Update version number for MC (#49)

commit a474d3908bd29f13c48b65822a7a918592ba56ea
Author: Yuki <yuki@stripe.com>
Date:   Tue Dec 15 15:12:36 2020 -0800

    [origin/mc] Update example apps to point to glitch, fix typo (#47)

    * * Update example apps to point back to glitch
    * billingAddressCollectionLevel

    * Fix a missed billingCollectionLevel change

commit f6427cb0833b44d93737ee174e8a9eafcff4c352
Author: Yuki <yuki@stripe.com>
Date:   Tue Dec 15 13:51:05 2020 -0800

    [origin/mc] Analytics (#45)

    * Add basic analytics

    * PR feedback

    * Update with  STPAnalyticsProtocol

commit 38136860448d132acb4fb5d059a06939055d93d8
Author: davidme-stripe <52758633+davidme-stripe@users.noreply.github.com>
Date:   Tue Dec 15 13:10:22 2020 -0800

    Make analytics not rely on Swift type names (#46)

    * Make analytics not rely on Swift type names

commit ad2729dc4ad4bba861751bec5488d7aea019f8e2
Author: Cameron <36750494+csabol-stripe@users.noreply.github.com>
Date:   Tue Dec 15 12:44:07 2020 -0800

    Adds validation errors to card form (#40)

    * Adds validation errors to card form

    * New strings

    * Updates snapshot tests

    * Missing docstrings

    * Dogfooding polish (#44)

    * Cleanup

    * Disabled state

    * Fixes padding

    * Clean up spacing

    * Checkbox

    * Cleaner

    * Fixes bouncing for hardware keyboard in simulator

    * Better border

    * Removes name from billing address. Updates billing address copy

    * No mask border

    * Fixes content compression/hugging for save this card

    * Adds new strings

    * Update snapshot tests

    * Updated icons

    * Shippable images

    * Update strings file

commit 58139ae3346ce0e16def9c1e2ac4d21d2b2c74a7
Author: davidme-stripe <52758633+davidme-stripe@users.noreply.github.com>
Date:   Tue Dec 15 11:01:40 2020 -0800

    Improve MC Accessibility (#41)

    * Fix accessibility on MC

commit 03235caa4659b09ee19c409ce86b7d2a69953962
Merge: a4f5b472 7752ca85
Author: Yuki <yuki@stripe.com>
Date:   Tue Dec 15 09:45:31 2020 -0800

    Merge pull request #42 from stripe-ios/yuki/mc-bugfixes-2

    [origin/mc] Bugfixes 2/n

commit 7752ca85fa7c5a254535739b74d358d7b5dfb23a
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Tue Dec 15 09:31:03 2020 -0800

    simplify addition to STPError

commit 1b50743bfb527ee672cf7ac5d79af8ab05cd1dee
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Mon Dec 14 21:38:26 2020 -0800

    Update bottom margins

commit 56934e594d091dd1e757d6aad76b2b7f3db1962b
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Mon Dec 14 21:26:54 2020 -0800

    Always shadow the confirm button, halve opacity

commit ce45f9b913f62a5b839eb369daf6bf3c39e4e2de
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Mon Dec 14 21:22:23 2020 -0800

    Hack around completing too soon after 3ds1 completes

commit 1641bc22e6c5988d37e922925ff13efc8e5aa7ab
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Mon Dec 14 21:11:29 2020 -0800

    Move spinner to the left a bit

commit 0d477d7a205a586497b4c31befb2d00073172c78
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Mon Dec 14 20:32:06 2020 -0800

    Put some safety rails in test playground to avoid assertion failures

commit 9067e450cce971727e005b6fe33b8d8a1b5c86f3
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Mon Dec 14 20:19:12 2020 -0800

    increase delay between success and dismissal

commit 5b2b870fd605aa712fe33afeca15b574d99d1edf
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Mon Dec 14 19:48:02 2020 -0800

    Fix not calling completion block!

commit d4f52e5e5f1f2b8f2ddfd64b0c6bac6ba90eed05
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Mon Dec 14 19:43:54 2020 -0800

    Fix ConfirmButton being disabled - didMoveToWindow is called a bunch

commit 9e532a9b42a545965370be305e4ef0df9ff9f7a8
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Mon Dec 14 15:57:14 2020 -0800

    Fix NSError localizedDescription related test failures

commit 3aeb4574ab537dbd380add37f281e7432d512fdd
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Mon Dec 14 14:57:56 2020 -0800

    Fixups

commit d1c074c55ad3c29eebd6387ca515e9392fd88dc2
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Mon Dec 14 11:16:02 2020 -0800

    SheetStyle -> UserInterfaceStyle

commit bd4a10936d5275188ba6c2493934dba73658689d
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Sun Dec 13 21:36:41 2020 -0800

    Update example apps, fix Apple Pay line item

commit 10a74ca8d42f264e4419822a8d32633d6a164990
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Fri Dec 11 16:09:58 2020 -0800

    Update saved PM cell, logo size

commit 4cad4548df4474f90eeb2a13dcc84302d9b8316d
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Fri Dec 11 13:46:50 2020 -0800

    Or pay with card

commit 6c9e2bb8cd2b5d2232bffe2e6849975fb9749929
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Fri Dec 11 02:21:13 2020 -0800

    Actually populate lastError. Renamed it to mostRecentError for clarity.
    Refactored out of PaymentResult - it doesn't apply to Custom, we never use it internally. It makes more sense as a property of PaymentSheet!

commit 2245947355b33e3dce2c7f9299c4c65aa23206eb
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Thu Dec 10 20:35:18 2020 -0800

    Move LoadingViewController, fix up tap anywhere handling

commit d7171b2259a62189e4da4cebb10f87eaad8a551d
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Thu Dec 10 15:22:58 2020 -0800

    Handle 401 No valid API Key errors better

commit f80505cac34d195b9e4b5b91af626a5a4ac361df
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Thu Dec 10 15:16:41 2020 -0800

    Fail fast if PaymentIntent is in an unexpected state

commit 0192d684edfc022924bf68cccaf5b77817860fa2
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Thu Dec 10 15:15:07 2020 -0800

    Fix STPApplePayContext allowing confirmation of an already-succeeded PaymentIntent

commit b53ecd7082158e1aa562c6dc310c00e4031053f1
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Thu Dec 10 12:13:20 2020 -0800

    Handle unrecoverable errors, refactor out PaymentSheet+Helpers, move PaymentSheetConfiguration to its own file

commit c68735f764992364f4a17c754d0c31ce75f133ab
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Wed Dec 9 16:40:06 2020 -0800

    Fix swipe-to-dismiss not calling completion block

commit 3a29010364e5f8b8066349dcce14a6575a7e52fb
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Wed Dec 9 16:30:25 2020 -0800

    Fix ConfirmButton not appearing as ApplePay initially when it should

commit 69052f44d428fd31ffc19db01d0aef2279d8703f
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Wed Dec 9 16:24:15 2020 -0800

    Pass keyboard touch events

commit a4f5b4723c1d67a4e7d9432c23aeae4cd1900fd2
Author: davidme-stripe <52758633+davidme-stripe@users.noreply.github.com>
Date:   Wed Dec 9 10:50:12 2020 -0800

    MC: Card Scanning (#35)

    * Card scanning

    * Clean up card scanning

    * Privatized

    * Hide placeholder view too

    * fix bugs

    * Remove commented code

    * Switch back to fill alignment - not sure why it was set to leading, but that breaks the change animation when we unhide the scanner

    * Update STPAddCardViewController.swift

    Reset legacy Scan Card string to uppercase

    * Rea-add Stripe33DS2

    * Move min version back to 12.0

    * Fix tests

commit 75aa59b845f99149e9ee64b1fa62b0cb24e16b61
Merge: d5ef1c80 57677009
Author: Yuki <yuki@stripe.com>
Date:   Wed Dec 9 09:47:16 2020 -0800

    Merge pull request #39 from stripe-ios/yuki/mc-bugfixes-1

    [origin/mc] Bug fixes 1/n

commit 57677009ed4d6593b4f932552706479cc0defa9d
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Wed Dec 9 09:26:23 2020 -0800

    Reduce ConfirmButton title size slightly

commit 10beb88b53b2dcef9c6b09ad7d6dcab173797844
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Tue Dec 8 21:54:12 2020 -0800

    Pass merchantDisplayName down to card text field for display

commit 575bb2c65faa8a4b47da8fd63552c0993d41c58f
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Tue Dec 8 19:30:06 2020 -0800

    Change string to Add card

commit 336538fa1d2a4beebd7d58822aaf98d6d6b8db3b
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Tue Dec 8 19:16:15 2020 -0800

    Close MC Inline upon selection of Apple Pay or saved PM

commit d3db03344059c398a7fb1adb454862ae4cc6ec79
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Tue Dec 8 17:41:51 2020 -0800

    Re-add iOS 12 support to example project, because why not

commit f22037ea306ceb176eb7b80eda9476808c8c2ba8
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Tue Dec 8 17:39:09 2020 -0800

    Handle multiple add PM actions - don't assume ConfirmButton only animates once, reset the Add PM view after adding succeeds

commit 14cea889ed90ead942368fc32b79071381f4e922
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Tue Dec 8 15:35:04 2020 -0800

    Refactor choosePaymentOptionViewController delegate to only  create+attach PMs

commit e4a1cbbb99ce8f22b7a9b60c3923579f7e36f389
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Tue Dec 8 15:19:16 2020 -0800

    Rename PaymentSheetManualFlow file

commit c4b70f3640b89c13cf006d0e87ad8f00cfbe26fc
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Tue Dec 8 15:12:11 2020 -0800

    Clean up some TODOs

commit 91e62149f2473ee273e1389fe61f8aa5d9935383
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Tue Dec 8 14:53:00 2020 -0800

    Fix webview pushing instead of presenting

commit d5ef1c809a1808c59c75c65a11672e75ee888698
Author: Cameron <36750494+csabol-stripe@users.noreply.github.com>
Date:   Tue Dec 8 16:44:51 2020 -0800

    Adds SheetStyle configuration option for iOS 13 and later (#38)

    * Adds SheetStyle configuration option for iOS 13 and later
    CTA button uses inherited tintColor

    * Update Stripe/PaymentSheet.swift

    Co-authored-by: Yuki <yuki@stripe.com>

    * Adds missing strings to strings file

    Co-authored-by: Yuki <yuki@stripe.com>

commit bcdfd9315aaeeecef66acc81bd51c3710997d4e3
Author: Yuki <yuki@stripe.com>
Date:   Tue Dec 8 12:21:15 2020 -0800

    [origin/mc] Polish (#37)

    * Polish and fixes

    - Style Navigation bar
    - Update header label depending on context
    - Saved payment method cells
    - Buy Button
    - Dont show Apple Pay sheet above Payment Sheet
    - Add Card assets
    - Icons
    - Defaulting behavior
    - Dont show PM Type carousel if only theres one choice
    - Processing disables everything behavior
    - Fix example for ios 12 - https://bugs.swift.org/browse/SR-11969
    - Increase nav button tap size, add highlighted animation to confirm button, add a minimum delay, use a big stackview
    - Refactor PaymentOption.new to contain a shouldSave bool - Rename merchantDisplayName - Animation duration constants - Animate error label
    - Nav bar, scrolling, fix saved cell selection, loading height
    - Delete this later! Apple Pay cert
    - Transition only the content btwn header and button
    - Comments, fixes, renaming, adding conveniences, example project

    * Update Stripe/SheetNavigationBar.swift

    Co-authored-by: Cameron <36750494+csabol-stripe@users.noreply.github.com>

    * Errors

    * Fix renaming PaymentModal -> PaymentSheet in example

    * Remove thanks

    * More fixes

    * Call completion in guard

    Co-authored-by: Cameron <36750494+csabol-stripe@users.noreply.github.com>

commit 6ec1f6fb49ce37f80a063525907b61c788ccc1f3
Author: Cameron <36750494+csabol-stripe@users.noreply.github.com>
Date:   Fri Dec 4 14:10:09 2020 -0800

    Adds multi-section support to STPFormView (#16)

    * Adds multi-section support to STPFormView
    Updates some colors and fonts to spec

    * Add new strings. CI fix

    * Adds placeholders for missing docstrings

    * Adds country selector to mc card form (#20)

    * Adds country selector to mc card form

    * Updates card form snapshot tests with correct title label sizing

    * Missing docstrings

    * Adds snapshot test

    * Disable snapshot on legacy

    * Adds full billing details to MC (#31)

    * Adding full billing

    * Working

    * Remove email and phone for now

    * Snapshot tests

    * Comment cleanup

    * docstring

    * Adds billing settings to sample app

    * Disable snapshot tests on legacy

    (cherry picked from commit 4d3448bbfc4db131c3c4f1e9372a174440c0ea3e)

commit 8dd97fb93d34777e7b47978be1da3a065bf5b2b8
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Tue Nov 17 17:05:38 2020 -0800

    PR feedback, add licenses

commit 00c3460a575f1f5e9f3b4c8d8857de42fef3818f
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Fri Nov 13 17:09:34 2020 -0800

    PaymentSheet

commit 95bb9f9ac20dfc1d11e3ae7cadca9385797bd955
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Fri Nov 13 17:07:22 2020 -0800

    Add PanModal

commit 1d5de76763369875091ba4eeecc0bf37527e8264
Author: Yuki Tokuhiro <yuki@stripe.com>
Date:   Fri Nov 13 17:02:09 2020 -0800

    Card form

* Remove incorrect public modifier in internal ConfirmButton

* Add STPAnalyticsProtocol conformance to STPApplePayContext
2021-03-01 15:12:20 -08:00
davidme-stripe e498f4488f
Add E2E test (#122) 2021-02-23 15:45:07 -08:00
David Estes add18ff400 Merge remote-tracking branch 'origin/private' into davidme/custom-swiftui-w-tests 2021-02-10 15:23:34 -08:00
David Estes 3c0d07e63b Run on latest 2021-02-09 13:22:06 -08:00
David Estes d9eaf16b80 Run on iOS 14 2021-02-09 11:59:50 -08:00
David Estes b4511d4327 Tests 2021-02-08 15:23:25 -08:00
David Estes 13187963c9 Remove carthage hacks 2021-02-04 15:58:40 -08:00
David Estes 92d27eea11 Remove carthage hacks 2021-02-04 15:57:49 -08:00
davidme-stripe f60b009a87
Optimize some tests (#89)
Tried a few things to speed up our CI. It's 35% less expensive to run, and we can use this workspace-caching stuff to add more complex integration tests in the future.
2021-01-27 12:40:29 -08:00
David Estes a0c0935a89 Use Podspec to build docs 2021-01-06 14:45:31 -08:00
David Estes bcc363887b Use Podspec to build docs 2021-01-06 14:34:09 -08:00
davidme-stripe a964f638cd
Release 3DS2 framework source code (#62)
Stripe3DS2 is now open source under the MIT license.
2021-01-05 16:50:08 -08:00
davidme-stripe 8adc9236b4
Fix Carthage and Swift Package Manager (#17)
The dynamic .xcframework can't be imported by Carthage, and requires that manual users embed Stripe3DS2.xcframework separately. Fix this by using the static Stripe3DS2.xcframework to create a combined Stripe.xcframework, like we distribute in the existing Objective-C version.
2020-11-18 14:40:50 -08:00