2021-10-01 21:48:18 +00:00
|
|
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="781px" preserveAspectRatio="none" style="width:668px;height:781px;background:#FFFFFF;" version="1.1" viewBox="0 0 668 781" width="668px" zoomAndPan="magnify"><defs><filter height="300%" id="f15kx617gahtg6" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#FFFFFF" filter="url(#f15kx617gahtg6)" height="208.1289" style="stroke:#000000;stroke-width:2.0;" width="644" x="10" y="193.4199"/><rect fill="#FFFFFF" height="73.5762" style="stroke:none;stroke-width:1.0;" width="644" x="10" y="327.9727"/><rect fill="#FFFFFF" filter="url(#f15kx617gahtg6)" height="77.9316" style="stroke:#000000;stroke-width:2.0;" width="448.5" x="10" y="500.8594"/><rect fill="#FFFFFF" height="31.3105" style="stroke:none;stroke-width:1.0;" width="448.5" x="10" y="547.4805"/><line style="stroke:#A80036;stroke-width:1.0;" x1="49" x2="49" y1="88.4883" y2="408.5488"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:1.0,4.0;" x1="49" x2="49" y1="408.5488" y2="436.5488"/><line style="stroke:#A80036;stroke-width:1.0;" x1="49" x2="49" y1="436.5488" y2="465.8594"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:1.0,4.0;" x1="49" x2="49" y1="465.8594" y2="493.8594"/><line style="stroke:#A80036;stroke-width:1.0;" x1="49" x2="49" y1="493.8594" y2="696.7227"/><line style="stroke:#A80036;stroke-width:1.0;" x1="223" x2="223" y1="88.4883" y2="408.5488"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:1.0,4.0;" x1="223" x2="223" y1="408.5488" y2="436.5488"/><line style="stroke:#A80036;stroke-width:1.0;" x1="223" x2="223" y1="436.5488" y2="465.8594"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:1.0,4.0;" x1="223" x2="223" y1="465.8594" y2="493.8594"/><line style="stroke:#A80036;stroke-width:1.0;" x1="223" x2="223" y1="493.8594" y2="696.7227"/><line style="stroke:#A80036;stroke-width:1.0;" x1="382.5" x2="382.5" y1="88.4883" y2="408.5488"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:1.0,4.0;" x1="382.5" x2="382.5" y1="408.5488" y2="436.5488"/><line style="stroke:#A80036;stroke-width:1.0;" x1="382.5" x2="382.5" y1="436.5488" y2="465.8594"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:1.0,4.0;" x1="382.5" x2="382.5" y1="465.8594" y2="493.8594"/><line style="stroke:#A80036;stroke-width:1.0;" x1="382.5" x2="382.5" y1="493.8594" y2="696.7227"/><line style="stroke:#A80036;stroke-width:1.0;" x1="611" x2="611" y1="88.4883" y2="408.5488"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:1.0,4.0;" x1="611" x2="611" y1="408.5488" y2="436.5488"/><line style="stroke:#A80036;stroke-width:1.0;" x1="611" x2="611" y1="436.5488" y2="465.8594"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:1.0,4.0;" x1="611" x2="611" y1="465.8594" y2="493.8594"/><line style="stroke:#A80036;stroke-width:1.0;" x1="611" x2="611" y1="493.8594" y2="696.7227"/><rect fill="#FEFECE" filter="url(#f15kx617gahtg6)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="54" x="20" y="53"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="40" x="27" y="73.5352">Stripe</text><rect fill="#FEFECE" filter="url(#f15kx617gahtg6)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="54" x="20" y="695.7227"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="40" x="27" y="716.2578">Stripe</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="40" x="200" y="85.5352">Client</text><ellipse cx="223" cy="15" fill="#FEFECE" filter="url(#f15kx617gahtg6)" rx="8"
|
2021-09-01 20:57:39 +00:00
|
|
|
@startuml
|
|
|
|
participant Stripe
|
|
|
|
actor Client
|
|
|
|
participant "stripe-payments" as Backend
|
|
|
|
database Tracking
|
|
|
|
|
|
|
|
Client -> Stripe : Create payment method
|
|
|
|
Client -> Backend: Initiate purchase
|
|
|
|
Backend -> Tracking : <font color="blue">Store incomplete purchase</font>
|
|
|
|
alt Non-recurring
|
|
|
|
Backend -> Stripe : Create invoice item
|
|
|
|
Backend -> Stripe : Create invoice
|
|
|
|
Backend -> Stripe : Pay invoice
|
|
|
|
Backend -> Tracking : <font color="blue">Store completed payment</font>
|
|
|
|
else Recurring
|
|
|
|
Backend -> Stripe : Create subscription
|
|
|
|
Backend -> Tracking : <font color="blue">Store active subscription</font>
|
|
|
|
end
|
|
|
|
...
|
|
|
|
Stripe - -> Backend : Subscription activated
|
|
|
|
...
|
|
|
|
alt
|
|
|
|
Stripe - -> Backend : customer.subscription.updated (no longer active)
|
|
|
|
else
|
|
|
|
Stripe - -> Backend : subscription_schedule.canceled
|
|
|
|
end
|
|
|
|
Backend -> Tracking : <font color="green">Store event</font>
|
|
|
|
Backend -> Backend : Trigger unsubscribe actions
|
|
|
|
Backend -> Tracking : <font color="blue">Mark subscription as terminated</font>
|
|
|
|
@enduml
|
|
|
|
|
2021-10-01 21:48:18 +00:00
|
|
|
PlantUML version 1.2021.10(Mon Aug 30 09:43:48 EDT 2021)
|
2021-09-01 20:57:39 +00:00
|
|
|
(GPL source distribution)
|
|
|
|
Java Runtime: Java(TM) SE Runtime Environment
|
|
|
|
JVM: Java HotSpot(TM) 64-Bit Server VM
|
|
|
|
Default Encoding: UTF-8
|
|
|
|
Language: en
|
|
|
|
Country: US
|
|
|
|
--></g></svg>
|