Payment Workflows for CiviCRM » History » Version 1
Brienne Kordis, 01/16/2023 05:00 PM
1 | 1 | Brienne Kordis | # Payment Workflows for CiviCRM |
---|---|---|---|
2 | |||
3 | ### Recurring payment workflow (PayPal) |
||
4 | 1. POST request from user to CiviCRM (User submits form) |
||
5 | CiviCRM creates a pending contribution and recurring contribution record. |
||
6 | 2. POST request from CiviCRM to PayPal (Civi asks PayPal to authorize card). PayPal responds with success or failure. |
||
7 | CiviCRM responds to user's POST request with a thank-you page (or a PayPal error) |
||
8 | A few minutes later... |
||
9 | 3. POST request from PayPal to CiviCRM (informing Civi that recurring contribution was created on PayPal's side) |
||
10 | 4. POST request from PayPal to CiviCRM (informing Civi that contribution was successfully charged). |
||
11 | |||
12 | ### Recurring payment with interdiction (PayPal) |
||
13 | 1. POST request from user to CiviCRM (User submits form) |
||
14 | CiviCRM creates a pending contribution and recurring contribution record. |
||
15 | 2. POST request from CiviCRM to PayPal (Civi asks PayPal to authorize card). PayPal responds with success or failure. |
||
16 | CiviCRM responds to user's POST request with a thank-you page (or a PayPal error) |
||
17 | A few minutes later... |
||
18 | 3. POST request from PayPal to webhook.site (informing Civi that recurring contribution was created on PayPal's side) |
||
19 | 3a. POST request (curl, using webhook.site request) to Civi. |
||
20 | 4. POST request from PayPal to CiviCRM (informing Civi that contribution was successfully charged). |
||
21 | |||
22 | ### One-time payment (PayPal, Auth.net) |
||
23 | 1. POST request from user to CiviCRM (User submits form) |
||
24 | CiviCRM creates a pending contribution and recurring contribution record. |
||
25 | 2. POST request from CiviCRM to PayPal (Civi asks PayPal to authorize card). PayPal responds with success or failure. |
||
26 | CiviCRM responds to user's POST request with a thank-you page (or a PayPal error) |
||
27 | |||
28 | ### One-time payment (Stripe) |
||
29 | * POST request from user to Stripe (user submits form). Stripe responds in JavaScript with success/failure. (aka "pre-authorization") |
||
30 | * POST request from user to CiviCRM (triggered by the return of Stripe's request, and including the result of Stripe's request). Civi responds with thank-you page or an error. |