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

[Identity] Support the 'closed' field in submit endpoint #6958

Merged

Conversation

ccen-stripe
Copy link
Contributor

@ccen-stripe ccen-stripe commented Jun 30, 2023

Summary

Introduced a new closed boolean in submit API endpoint, after submitting

  • When submitted and closed are true -> navigate to success page
  • When submitted=true and closed=false, need to fallback, check missings and fallback accordingly - currently this only happens when phone type verification fallback to document

iOS change: stripe/stripe-ios#2700

Motivation

Support phoneV

Testing

  • Added tests
  • Modified tests
  • Manually verified

Screenshots

Before After
before screenshot after screenshot

Changelog

@ccen-stripe ccen-stripe requested review from a team as code owners June 30, 2023 22:57
@github-actions
Copy link
Contributor

Risky Change

This is considered a risky change because it adjusts the sample app build.gradle, please review carefully.
We've seen issues in the past which resulted in failed builds for merchants. Please make sure the build.gradle change is intended.

By adding the label accept-risky-change to this PR, I acknowledge that I'm changing an example app and have verified that the SDK remains in a shippable state.

@ccen-stripe
Copy link
Contributor Author

cc @stripe/stripe-identity-observers

@ccen-stripe ccen-stripe changed the base branch from master to ccen/IDPROD-5537/phoneVerificationBase June 30, 2023 22:57
@github-actions
Copy link
Contributor

github-actions bot commented Jun 30, 2023

Diffuse output:

OLD: identity-example-release-base.apk (signature: V1, V2)
NEW: identity-example-release-pr.apk (signature: V1, V2)

          │            compressed            │           uncompressed           
          ├───────────┬───────────┬──────────┼───────────┬───────────┬──────────
 APK      │ old       │ new       │ diff     │ old       │ new       │ diff     
──────────┼───────────┼───────────┼──────────┼───────────┼───────────┼──────────
      dex │   1.9 MiB │   1.9 MiB │   +901 B │   3.9 MiB │   3.9 MiB │   +2 KiB 
     arsc │   1.3 MiB │   1.3 MiB │      0 B │   1.3 MiB │   1.3 MiB │      0 B 
 manifest │   2.2 KiB │   2.2 KiB │      0 B │   7.9 KiB │   7.9 KiB │      0 B 
      res │ 338.2 KiB │ 338.2 KiB │      0 B │ 467.3 KiB │ 467.3 KiB │      0 B 
   native │   6.2 MiB │   6.2 MiB │      0 B │  15.8 MiB │  15.8 MiB │      0 B 
    asset │  67.3 KiB │  66.2 KiB │ -1.1 KiB │  87.3 KiB │  86.2 KiB │ -1.1 KiB 
    other │ 110.4 KiB │ 110.4 KiB │     +4 B │ 251.1 KiB │ 251.1 KiB │      0 B 
──────────┼───────────┼───────────┼──────────┼───────────┼───────────┼──────────
    total │   9.9 MiB │   9.9 MiB │   -217 B │  21.8 MiB │  21.8 MiB │   +882 B 

 DEX     │ old   │ new   │ diff           
─────────┼───────┼───────┼────────────────
   files │     1 │     1 │  0             
 strings │ 19729 │ 19731 │ +2 (+10 -8)    
   types │  6094 │  6095 │ +1 (+3 -2)     
 classes │  4970 │  4971 │ +1 (+1 -0)     
 methods │ 30250 │ 30256 │ +6 (+226 -220) 
  fields │ 16887 │ 16896 │ +9 (+135 -126) 

 ARSC    │ old  │ new  │ diff 
─────────┼──────┼──────┼──────
 configs │  258 │  258 │  0   
 entries │ 5138 │ 5138 │  0
APK
     compressed      │     uncompressed     │                                
──────────┬──────────┼───────────┬──────────┤                                
 size     │ diff     │ size      │ diff     │ path                           
──────────┼──────────┼───────────┼──────────┼────────────────────────────────
  4.5 KiB │ -1.1 KiB │   4.4 KiB │ -1.1 KiB │ ∆ assets/dexopt/baseline.prof  
  1.9 MiB │   +901 B │   3.9 MiB │   +2 KiB │ ∆ classes.dex                  
 30.8 KiB │     +5 B │ 108.8 KiB │      0 B │ ∆ META-INF/MANIFEST.MF         
 47.6 KiB │     -2 B │ 108.9 KiB │      0 B │ ∆ META-INF/CERT.SF             
    683 B │     -1 B │     551 B │     -1 B │ ∆ assets/dexopt/baseline.profm 
  1.2 KiB │     +1 B │   1.2 KiB │      0 B │ ∆ META-INF/CERT.RSA            
──────────┼──────────┼───────────┼──────────┼────────────────────────────────
    2 MiB │   -217 B │   4.2 MiB │   +882 B │ (total)
DEX
STRINGS:

   old   │ new   │ diff        
  ───────┼───────┼─────────────
   19729 │ 19731 │ +2 (+10 -8) 
  + , closed=
  + Lh7/r3;
  + VILLLLZZ
  + VIZZZZLZZZZZZ
  + VZZZZLZZZZZZ
  + [Lh7/h3;
  + [Lh7/w2;
  + closed
  + {phone_number}
  + ~~R8{backend:dex,compilation-mode:release,has-checksums:false,min-api:21,pg-map-id:13e1a60,r8-mode:full,version:8.0.46}
  
  - &phone_number&
  - Sending CannotVerify receives ready to submit
  - VILLLLZ
  - VIZZZZLZZZZ
  - VZZZZLZZZZ
  - [Lh7/g3;
  - [Lh7/v2;
  - ~~R8{backend:dex,compilation-mode:release,has-checksums:false,min-api:21,pg-map-id:3dd82cc,r8-mode:full,version:8.0.46}
  

TYPES:

   old  │ new  │ diff       
  ──────┼──────┼────────────
   6094 │ 6095 │ +1 (+3 -2) 
  + Lh7/r3;
  + [Lh7/h3;
  + [Lh7/w2;
  
  - [Lh7/g3;
  - [Lh7/v2;
  

METHODS:

   old   │ new   │ diff           
  ───────┼───────┼────────────────
   30250 │ 30256 │ +6 (+226 -220) 
  + androidx.fragment.app.o0 b(y, w2, w)
  + androidx.fragment.app.p d() → w2
  + androidx.fragment.app.w d() → w2
  + f7.c <init>(int, boolean, boolean, boolean, boolean, Boolean, boolean, boolean, boolean, boolean, boolean, boolean)
  + f7.c <init>(boolean, boolean, boolean, boolean, Boolean, boolean, boolean, boolean, boolean, boolean, boolean)
  + f7.e1 <init>(List)
  + f7.v0 <init>(int, String, String, b1, u0, boolean, boolean)
  + h2.f j() → w2
  + h7.a3 <init>(p0, d)
  + h7.a3 Q(Object, Object) → Object
  + h7.a3 c(Object, d) → d
  + h7.a3 g(Object) → Object
  + h7.c3 <clinit>()
  + h7.c3 <init>()
  + h7.c3 W(Object) → Object
  + h7.d3 <init>(p0, r, p2, a1, d)
  + h7.d3 Q(Object, Object) → Object
  + h7.d3 c(Object, d) → d
  + h7.d3 g(Object) → Object
  + h7.e3 <init>(z, a1, a1, p0, r, p2, a1)
  + h7.e3 k() → Object
  + h7.f3 <init>(p0, f, r, Context, p2)
  + h7.f3 P(Object, Object, Object) → Object
  + h7.g3 <init>()
  + h7.g3 c() → int
  + h7.g3 e() → q0
  + h7.g3 g() → String
  + h7.g3 h(String) → p2
  + h7.h3 <clinit>()
  + h7.h3 <init>(String, int)
  + h7.h3 valueOf(String) → h3
  + h7.h3 values() → h3[]
  + h7.i3 <init>(a, c, int)
  + h7.i3 a()
  + h7.i3 k() → Object
  + h7.j3 <init>(n1, boolean, a, c, int, boolean, int)
  + h7.j3 <init>(String, boolean, boolean, String, a, int)
  + h7.j3 a(i, int)
  + h7.m3 <init>(p0, r, h, String, d)
  + h7.m3 Q(Object, Object) → Object
  + h7.m3 c(Object, d) → d
  + h7.m3 g(Object) → Object
  + h7.n3 <init>(p0, Context, int)
  + h7.n3 W(Object) → Object
  + h7.n3 a(h3)
  + h7.o3 <init>(p0, r, String, d)
  + h7.o3 Q(Object, Object) → Object
  + h7.o3 c(Object, d) → d
  + h7.o3 g(Object) → Object
  + h7.p2 <init>(p0, r, d)
  + h7.p2 Q(Object, Object) → Object
  + h7.p2 c(Object, d) → d
  + h7.p3 <init>(a1, a1, int)
  + h7.p3 a() → o1
  + h7.p3 k() → Object
  + h7.q2 <init>(z, p0, r, d)
  + h7.q2 W(Object) → Object
  + h7.q3 <init>(p0, String, n1, r, h, int, int, int, boolean, boolean, n1, Context, z)
  + h7.q3 P(Object, Object, Object) → Object
  + h7.r2 <init>(r, v0, p0, Context, z, d)
  + h7.r3 <init>(r, p0, h, String, int, int, n1, n1, boolean, boolean, int)
  + h7.r3 Q(Object, Object) → Object
  + h7.s2 <init>(c1, l, p0, r, Context, v0, z, d)
  + h7.t2 <init>(c, p2, d)
  + h7.t2 Q(Object, Object) → Object
  + h7.t2 c(Object, d) → d
  + h7.t2 g(Object) → Object
  + h7.u2 <clinit>()
  + h7.u2 <init>()
  + h7.u2 g() → String
  + h7.u2 h(String) → p2
  + h7.v2 <init>(p0, k, String, d)
  + h7.v2 Q(Object, Object) → Object
  + h7.v2 c(Object, d) → d
  + h7.v2 g(Object) → Object
  + h7.w2 <clinit>()
  + h7.w2 <init>()
  + h7.w2 <init>(int)
  + h7.w2 A(m) → boolean
  + h7.w2 A0(h, Throwable)
  + h7.w2 B(m) → boolean
  + h7.w2 B0(w) → e0
  + h7.w2 C(m) → boolean
  + h7.w2 C0(float[], float[]) → boolean
  + h7.w2 D(m) → boolean
  + h7.w2 D0(a1, boolean, e1, int) → k0
  + h7.w2 E(e, d0)
  + h7.w2 E0(a0, float, float) → boolean
  + h7.w2 F(b0, e0, c)
  + h7.w2 F0(String, String) → boolean
  + h7.w2 G(Throwable, Throwable)
  + h7.w2 G0(m) → boolean
  + h7.w2 H(float, float, float, l, h0, d) → Object
  + h7.w2 H0(c) → q0
  + h7.w2 I(m, i, long, c, d) → Object
  + h7.w2 I0(Object) → List
  + h7.w2 J(l0, float, e0, i) → f0
  + h7.w2 J0(Object[]) → List
  + h7.w2 K(l0, Number, Number, o1, e0, i) → f0
  + h7.w2 K0(Size, float) → Size
  + h7.w2 L(Object, Object) → boolean
  + h7.w2 L0(Object[]) → ArrayList
  + h7.w2 M(Object[]) → ArrayList
  + h7.w2 M0(int) → View
  + h7.w2 N(String, l, f[], c) → g
  + h7.w2 N0(int)
  + h7.w2 O(e[]) → Bundle
  +
...✂

@ccen-stripe ccen-stripe force-pushed the ccen/supportCannotVerify branch from 918204c to 05ef236 Compare July 18, 2023 05:53
@ccen-stripe ccen-stripe merged commit a59c11f into ccen/IDPROD-5537/phoneVerificationBase Jul 24, 2023
@ccen-stripe ccen-stripe deleted the ccen/supportCannotVerify branch July 24, 2023 17:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
accept-risky-change accept-risky-change
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants