Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Enable ACH via Stripe Vaulting flows #1056

Merged
merged 44 commits into from
Dec 17, 2024
Merged
Show file tree
Hide file tree
Changes from 43 commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
5332e09
Update CardButton to match Styles
NQuinn27 Nov 21, 2024
5258f49
Update styles in list view
NQuinn27 Nov 21, 2024
f1923c7
Remove mandate steps from vaulting flow
NQuinn27 Nov 21, 2024
b23b41a
add package.resolved to gitignore
NQuinn27 Dec 4, 2024
3f19c20
Use codable correctly for client session mgmt
jnewc Oct 22, 2024
c04fb19
Fix conflicts
jnewc Oct 22, 2024
2797366
Fix conflicts
jnewc Oct 16, 2024
915a4ad
More cleanup for new workflow flag removal
jnewc Oct 16, 2024
1c9d57a
More cleanup for new workflow flag removal
jnewc Oct 16, 2024
30dcd85
Fix conflicts
jnewc Oct 16, 2024
242cdd7
Fix error in api key header update logic
jnewc Oct 16, 2024
018798b
Fix conflicts
jnewc Oct 16, 2024
03375c9
Revert "Fix conflicts"
NQuinn27 Dec 4, 2024
3b75456
Fix conflicts
jnewc Oct 16, 2024
83a2974
Add controls back in for dismissal
NQuinn27 Dec 4, 2024
d19690b
Dont sent cvv for non card payment methods
NQuinn27 Dec 4, 2024
cebcf02
Reformat
NQuinn27 Dec 4, 2024
b3923b8
Cleanup networking
NQuinn27 Dec 4, 2024
0b164aa
Enable paying with Vaulted ACH Token on Drop-in
NQuinn27 Dec 4, 2024
f2dfb4c
Extend metadata with deviceInfo
NQuinn27 Dec 4, 2024
709768a
Fix mocks
NQuinn27 Dec 4, 2024
46e1f98
Fix dark mode issues
NQuinn27 Dec 6, 2024
f1ad7b7
Remove duplicated code
NQuinn27 Dec 6, 2024
5bdb88e
Update tests
NQuinn27 Dec 6, 2024
76e8e6a
Fix missing file
NQuinn27 Dec 6, 2024
2476012
Merge branch 'master' into nq/update_ach_vaulting
NQuinn27 Dec 6, 2024
4462c17
Add secrets to CI Build
NQuinn27 Dec 11, 2024
bdb4ecf
Secrets in correct directory
NQuinn27 Dec 11, 2024
ab63aa2
Add accessibility ID and ensure payment data is passed to results con…
NQuinn27 Dec 11, 2024
dd6a283
UI Test fixes
NQuinn27 Dec 13, 2024
9e4d9f2
Merge branch 'master' into nq/update_ach_vaulting
NQuinn27 Dec 13, 2024
688baad
Add ACH Manager Category and Spinner on ACH Continue
NQuinn27 Dec 13, 2024
5d610c9
More cleanup for new workflow flag removal
jnewc Oct 16, 2024
161c1af
Fix conflicts
jnewc Oct 16, 2024
ec057c6
Revert "Fix conflicts"
NQuinn27 Dec 4, 2024
551f91a
Fix conflicts
jnewc Oct 16, 2024
8b805c1
Add closing tag
NQuinn27 Dec 16, 2024
8087dc6
Fix main.storyboard
NQuinn27 Dec 16, 2024
576d405
Merge branch 'master' into nq/update_ach_vaulting
NQuinn27 Dec 16, 2024
4a60f7c
Add apple pay stack view lost in merge
NQuinn27 Dec 16, 2024
ebd2a27
Fix copy
NQuinn27 Dec 16, 2024
e8d73bf
Refactor complete endpoint to inject body
NQuinn27 Dec 17, 2024
932483c
Fix result screeen
NQuinn27 Dec 17, 2024
e4e1ad5
Fix failing test
NQuinn27 Dec 17, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .github/actions/appetize-build/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@ inputs:
pr-number:
description: PR number
required: true
stripe-publishable-key:
description: 'Stripe publishable key'
required: true
outputs:
appetize-url:
description: Appetize URL
Expand Down Expand Up @@ -80,6 +83,10 @@ runs:
- name: Install SMB
shell: bash
run: npm install --save slack-message-builder
- name: Create secrets.defaults.properties
shell: bash
run: |
echo "STRIPE_PUBLISHABLE_KEY=${{ inputs.stripe-publishable-key }}" > Debug\ App/secrets.defaults.properties
- name: Test, Build, and Distribute app to Appetize 🚀
shell: bash
run: |
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/build-test-upload.yml
Original file line number Diff line number Diff line change
Expand Up @@ -251,6 +251,7 @@ jobs:
slack-channel: ${{ secrets.SLACK_MOBILE_SDK_CHANNEL }}
slack-reporter-token: ${{ secrets.SLACK_REPORTER_BOT_TOKEN }}
github-run-id: ${{ github.run_id }}
stripe-publishable-key: ${{ secrets.STRIPE_PUBLISHABLE_KEY }}
- uses: peter-evans/find-comment@3eae4d37986fb5a8592848f6a574fdf654e61f9e #v3.1.0
if: ${{ success() }}
id: find_comment
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/ui-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ jobs:
slack-channel: ${{ secrets.SLACK_MOBILE_SDK_CHANNEL }}
slack-reporter-token: ${{ secrets.SLACK_REPORTER_BOT_TOKEN }}
github-run-id: ${{ github.run_id }}
stripe-publishable-key: ${{ secrets.STRIPE_PUBLISHABLE_KEY }}
build-and-upload-to-firebase-and-browserstack:
runs-on: macos-13
timeout-minutes: 20
Expand Down Expand Up @@ -96,6 +97,11 @@ jobs:
env:
FIREBASE_CREDENTIALS: ${{ secrets.FIREBASE_CREDENTIALS }}

- name: Create secrets.defaults.properties
shell: bash
run: |
echo "STRIPE_PUBLISHABLE_KEY=${{ secrets.STRIPE_PUBLISHABLE_KEY }}" > Debug\ App/secrets.defaults.properties

- name: Distribute internally on Firebase and upload to Browserstack 🚀
run: |
bundle exec fastlane qa_release
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ playground.xcworkspace

.build/
Package.swift.orig

Package.resolved
# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
Expand Down
Empty file added .vscode/launch.json
Empty file.
2 changes: 0 additions & 2 deletions Debug App/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,6 @@
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
<key>UIUserInterfaceStyle</key>
<string>Light</string>
<key>com.apple.developer.nfc.readersession.formats</key>
<array>
<string>TAG</string>
Expand Down
6 changes: 4 additions & 2 deletions Debug App/Primer.io Debug App SPM.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
E11F475D2B06C5A40091C31F /* BanksListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E11F47592B06C5A40091C31F /* BanksListView.swift */; };
E11F475E2B06C5A40091C31F /* BanksListModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E11F475A2B06C5A40091C31F /* BanksListModel.swift */; };
E11F475F2B06C5A40091C31F /* ImageViewWithUrl.swift in Sources */ = {isa = PBXBuildFile; fileRef = E11F475B2B06C5A40091C31F /* ImageViewWithUrl.swift */; };
E1AB44D02AFE139600639DC5 /* URL+NetworkHeaders.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1AB44CF2AFE139600639DC5 /* URL+NetworkHeaders.swift */; };
F00C65F82ACC67FA00187028 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAC5687FF32E8661F1A00CE5 /* AppDelegate.swift */; };
F00C65F92ACC67FA00187028 /* Data+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1594BC5C96ECC3F46C811B2F /* Data+Extensions.swift */; };
F00C65FA2ACC67FA00187028 /* Range+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9128566126AA7F571FFECA3A /* Range+Extensions.swift */; };
Expand Down Expand Up @@ -62,6 +61,7 @@
F08F63E02BA0BE83006EF9A9 /* SessionConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = F08F63DF2BA0BE83006EF9A9 /* SessionConfiguration.swift */; };
F08F63E32BA0BEAD006EF9A9 /* AppetizeConfigProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = F08F63E12BA0BEAD006EF9A9 /* AppetizeConfigProvider.swift */; };
F08F63E42BA0BEAD006EF9A9 /* MetadataParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = F08F63E22BA0BEAD006EF9A9 /* MetadataParser.swift */; };
F09978842D0326860058E4B5 /* Metadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = F09978832D0326860058E4B5 /* Metadata.swift */; };
/* End PBXBuildFile section */

/* Begin PBXCopyFilesBuildPhase section */
Expand Down Expand Up @@ -158,6 +158,7 @@
F08F63DF2BA0BE83006EF9A9 /* SessionConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SessionConfiguration.swift; sourceTree = "<group>"; };
F08F63E12BA0BEAD006EF9A9 /* AppetizeConfigProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppetizeConfigProvider.swift; sourceTree = "<group>"; };
F08F63E22BA0BEAD006EF9A9 /* MetadataParser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MetadataParser.swift; sourceTree = "<group>"; };
F09978832D0326860058E4B5 /* Metadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Metadata.swift; path = Sources/Model/Metadata.swift; sourceTree = "<group>"; };
F816A2444633C4336A7CB071 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Main.strings; sourceTree = "<group>"; };
F9023841AFCE8E3205CB713A /* String+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Extensions.swift"; sourceTree = "<group>"; };
FB1F71737862EF5D0F4FE5AB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
Expand Down Expand Up @@ -243,6 +244,7 @@
1C9799A622D0CCDBBF94925B = {
isa = PBXGroup;
children = (
F09978832D0326860058E4B5 /* Metadata.swift */,
F04510DE2ACD4EA500A0A48C /* primer-sdk-ios */,
FBDF3F8B5F93A0EC28048640 /* Project */,
DF30711EB149C64C364BB79A /* Products */,
Expand Down Expand Up @@ -493,6 +495,7 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
F09978842D0326860058E4B5 /* Metadata.swift in Sources */,
8723ADE42B8E0FAB00A5FE23 /* MerchantHeadlessKlarnaInitializationView.swift in Sources */,
F08F63E42BA0BEAD006EF9A9 /* MetadataParser.swift in Sources */,
044F805D2C6B4F9800E9F878 /* MerchantHeadlessStripeAchFieldsViewModel.swift in Sources */,
Expand All @@ -515,7 +518,6 @@
8723ADDD2B8E0F5100A5FE23 /* MerchantHelpers.swift in Sources */,
F00C66022ACC67FA00187028 /* TestScenario.swift in Sources */,
F00C66032ACC67FA00187028 /* TransactionResponse.swift in Sources */,
E1AB44D02AFE139600639DC5 /* URL+NetworkHeaders.swift in Sources */,
E11F475D2B06C5A40091C31F /* BanksListView.swift in Sources */,
F00C66052ACC67FA00187028 /* Networking.swift in Sources */,
F00C66062ACC67FA00187028 /* MerchantDropInUIViewController.swift in Sources */,
Expand Down
8 changes: 4 additions & 4 deletions Debug App/Primer.io Debug App.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -57,13 +57,13 @@
DE53DA2D0AD108306C92E198 /* UIViewController+API.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1FD8065D40A2D691F643F3B /* UIViewController+API.swift */; };
E11F47542B06C5030091C31F /* BanksListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E11F47502B06C5030091C31F /* BanksListView.swift */; };
E11F47562B06C5030091C31F /* ImageViewWithUrl.swift in Sources */ = {isa = PBXBuildFile; fileRef = E11F47522B06C5030091C31F /* ImageViewWithUrl.swift */; };
E1A2971F2B021ABA005ADA51 /* URL+NetworkHeaders.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1AB44D12AFE13AF00639DC5 /* URL+NetworkHeaders.swift */; };
EA7FAA4F8476BD3711D628CB /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B18D7E7738BF86467B0F1465 /* Images.xcassets */; };
F02F496FD20B5291C044F62C /* MerchantResultViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00E3C8FE62D22147335F2455 /* MerchantResultViewController.swift */; };
F03699592AC2E63700E4179D /* BuildFile in Sources */ = {isa = PBXBuildFile; };
F08F63D82B9B5A7C006EF9A9 /* SessionConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = F08F63D72B9B5A7C006EF9A9 /* SessionConfiguration.swift */; };
F08F63DA2B9B5BC5006EF9A9 /* AppetizeConfigProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = F08F63D92B9B5BC5006EF9A9 /* AppetizeConfigProvider.swift */; };
F08F63DC2B9F27B0006EF9A9 /* MetadataParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = F08F63DB2B9F27B0006EF9A9 /* MetadataParser.swift */; };
F09978822D00B7620058E4B5 /* Metadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = F09978812D00B7620058E4B5 /* Metadata.swift */; };
F0C2147F6FA26527BE55549A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = FC701AFD94F96F0F1D108D1A /* LaunchScreen.xib */; };
FD5ADBCFA70DB606339F3AF2 /* TransactionResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 70D3D6CF0F006A06B7CEC71B /* TransactionResponse.swift */; };
/* End PBXBuildFile section */
Expand Down Expand Up @@ -200,14 +200,14 @@
E11F47512B06C5030091C31F /* BanksListModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BanksListModel.swift; sourceTree = "<group>"; };
E11F47522B06C5030091C31F /* ImageViewWithUrl.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageViewWithUrl.swift; sourceTree = "<group>"; };
E129D66F2B162022004694F9 /* MerchantHeadlessCheckoutBankViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MerchantHeadlessCheckoutBankViewController.swift; sourceTree = "<group>"; };
E1AB44D12AFE13AF00639DC5 /* URL+NetworkHeaders.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "URL+NetworkHeaders.swift"; sourceTree = "<group>"; };
E1C3EF0BA039C0A50EDE13A5 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Main.strings; sourceTree = "<group>"; };
E3F4FB59DFC387F26CA944EB /* Pods_Debug_App.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Debug_App.framework; sourceTree = BUILT_PRODUCTS_DIR; };
E7640DB186F9638C2F556F77 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Main.strings; sourceTree = "<group>"; };
E8DE1E4FB055B60582977315 /* Networking.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Networking.swift; sourceTree = "<group>"; };
F08F63D72B9B5A7C006EF9A9 /* SessionConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionConfiguration.swift; sourceTree = "<group>"; };
F08F63D92B9B5BC5006EF9A9 /* AppetizeConfigProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppetizeConfigProvider.swift; sourceTree = "<group>"; };
F08F63DB2B9F27B0006EF9A9 /* MetadataParser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MetadataParser.swift; sourceTree = "<group>"; };
F09978812D00B7620058E4B5 /* Metadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Metadata.swift; sourceTree = "<group>"; };
F816A2444633C4336A7CB071 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Main.strings; sourceTree = "<group>"; };
F9023841AFCE8E3205CB713A /* String+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Extensions.swift"; sourceTree = "<group>"; };
FB1F71737862EF5D0F4FE5AB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
Expand Down Expand Up @@ -374,7 +374,6 @@
isa = PBXGroup;
children = (
E8DE1E4FB055B60582977315 /* Networking.swift */,
E1AB44D12AFE13AF00639DC5 /* URL+NetworkHeaders.swift */,
);
path = Network;
sourceTree = "<group>";
Expand Down Expand Up @@ -418,6 +417,7 @@
A6AEF11B151368BF993C3EA9 /* TestScenario.swift */,
70D3D6CF0F006A06B7CEC71B /* TransactionResponse.swift */,
F08F63D72B9B5A7C006EF9A9 /* SessionConfiguration.swift */,
F09978812D00B7620058E4B5 /* Metadata.swift */,
);
path = Model;
sourceTree = "<group>";
Expand Down Expand Up @@ -693,11 +693,11 @@
AAE3B30B64B6822A20987FCA /* CreateClientToken.swift in Sources */,
F08F63D82B9B5A7C006EF9A9 /* SessionConfiguration.swift in Sources */,
87FC1ACB2BE5194100C9F474 /* MerchantHeadlessStripeAchFieldsViewModel.swift in Sources */,
F09978822D00B7620058E4B5 /* Metadata.swift in Sources */,
04F323652BD40A0E00F5927C /* MerchantHeadlessCheckoutBankViewController.swift in Sources */,
876141082B8346650058CA8C /* MerchantHeadlessKlarnaInitializationView.swift in Sources */,
C75A11E6AEEFC2B7A29BBC04 /* TestScenario.swift in Sources */,
F08F63DC2B9F27B0006EF9A9 /* MetadataParser.swift in Sources */,
E1A2971F2B021ABA005ADA51 /* URL+NetworkHeaders.swift in Sources */,
FD5ADBCFA70DB606339F3AF2 /* TransactionResponse.swift in Sources */,
876140D52B63F7DB0058CA8C /* MerchantHeadlessCheckoutKlarnaViewController.swift in Sources */,
049A055E2B4BF057002CEEBA /* MerchantHeadlessVaultManagerViewController.swift in Sources */,
Expand Down
Loading
Loading