@@ -187,11 +187,64 @@ flowchart LR
187
187
188
188
## Enrollment
189
189
190
+ In this final phase, the user registers their contactless payment card with a concession group configured within the
191
+ payment processor (Littlepay).
192
+
193
+ ** _ Cal-ITP Benefits never processes, transmits, nor stores the user's payment card details._ **
194
+
195
+ !!! example "Entrypoint"
196
+
197
+ [`benefits/enrollment/views.py`][enrollment-views]
198
+
199
+ !!! example "Supporting packages"
200
+
201
+ [`cal-itp/littlepay`][littlepay]
202
+
203
+ ``` mermaid
204
+ sequenceDiagram
205
+ autonumber
206
+ %% Enrollment phase
207
+ actor user as User
208
+ participant benefits as Benefits app
209
+ participant littlepay as Littlepay
210
+
211
+ user->>benefits: starts enrollment phase
212
+ activate user
213
+ benefits-->>user: display enrollment index
214
+ user->>littlepay: GET tokenization lib (from JS)
215
+ littlepay-->>user: tokenization lib .js
216
+ user->>benefits: GET card tokenization access token (from JS)
217
+ deactivate user
218
+ activate benefits
219
+ benefits->>littlepay: GET API access token
220
+ littlepay-->>benefits: access token
221
+ benefits->>littlepay: GET card tokenization access token
222
+ littlepay-->>benefits: access token
223
+ benefits-->>user: access token
224
+ deactivate benefits
225
+ activate user
226
+ user->>benefits: click to initiate payment card collection
227
+ benefits-->>user: display Littlepay overlay
228
+ user->>littlepay: provides debit or credit card details
229
+ littlepay-->>user: card token
230
+ user->>benefits: POST back card token
231
+ deactivate user
232
+ activate benefits
233
+ benefits->>littlepay: GET API access token
234
+ littlepay-->>benefits: access token
235
+ benefits->>littlepay: GET funding source from card token
236
+ littlepay-->>benefits: funding source
237
+ benefits->>littlepay: enroll funding source in group
238
+ deactivate benefits
239
+ ```
240
+
190
241
[ core-models ] : https://github.com/cal-itp/benefits/blob/dev/benefits/core/models.py
191
242
[ core-session ] : https://github.com/cal-itp/benefits/blob/dev/benefits/core/session.py
192
243
[ core-views ] : https://github.com/cal-itp/benefits/blob/dev/benefits/core/views.py
193
244
[ eligibility-verify ] : https://github.com/cal-itp/benefits/blob/dev/benefits/eligibility/verify.py
194
245
[ eligibility-views ] : https://github.com/cal-itp/benefits/blob/dev/benefits/eligibility/views.py
246
+ [ enrollment-views ] : https://github.com/cal-itp/benefits/blob/dev/benefits/enrollment/views.py
247
+ [ littlepay ] : https://github.com/cal-itp/littlepay
195
248
[ oauth-client ] : https://github.com/cal-itp/benefits/blob/dev/benefits/oauth/client.py
196
249
[ oauth-redirects ] : https://github.com/cal-itp/benefits/blob/dev/benefits/oauth/redirects.py
197
250
[ oauth-views ] : https://github.com/cal-itp/benefits/blob/dev/benefits/oauth/views.py
0 commit comments