37 lines
13 KiB
XML
37 lines
13 KiB
XML
|
<?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="692px" preserveAspectRatio="none" style="width:626px;height:692px;" version="1.1" viewBox="0 0 626 692" width="626px" zoomAndPan="magnify"><defs><filter height="300%" id="fozv35fmdzu27" 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(#fozv35fmdzu27)" height="281.75" style="stroke:#000000;stroke-width:2.0;" width="602" x="10" y="309.3516"/><rect fill="#FFFFFF" filter="url(#fozv35fmdzu27)" height="118.2422" style="stroke:#000000;stroke-width:2.0;" width="319.5" x="282.5" y="392.2832"/><rect fill="#FFFFFF" height="73.5762" style="stroke:none;stroke-width:1.0;" width="602" x="10" y="517.5254"/><line style="stroke:#A80036;stroke-width:1.0;" x1="49" x2="49" y1="88.4883" y2="274.3516"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:1.0,4.0;" x1="49" x2="49" y1="274.3516" y2="302.3516"/><line style="stroke:#A80036;stroke-width:1.0;" x1="49" x2="49" y1="302.3516" y2="608.1016"/><line style="stroke:#A80036;stroke-width:1.0;" x1="194" x2="194" y1="88.4883" y2="274.3516"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:1.0,4.0;" x1="194" x2="194" y1="274.3516" y2="302.3516"/><line style="stroke:#A80036;stroke-width:1.0;" x1="194" x2="194" y1="302.3516" y2="608.1016"/><line style="stroke:#A80036;stroke-width:1.0;" x1="357.5" x2="357.5" y1="88.4883" y2="274.3516"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:1.0,4.0;" x1="357.5" x2="357.5" y1="274.3516" y2="302.3516"/><line style="stroke:#A80036;stroke-width:1.0;" x1="357.5" x2="357.5" y1="302.3516" y2="608.1016"/><line style="stroke:#A80036;stroke-width:1.0;" x1="559" x2="559" y1="88.4883" y2="274.3516"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:1.0,4.0;" x1="559" x2="559" y1="274.3516" y2="302.3516"/><line style="stroke:#A80036;stroke-width:1.0;" x1="559" x2="559" y1="302.3516" y2="608.1016"/><rect fill="#FEFECE" filter="url(#fozv35fmdzu27)" 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(#fozv35fmdzu27)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="54" x="20" y="607.1016"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="40" x="27" y="627.6367">Stripe</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="40" x="171" y="85.5352">Client</text><ellipse cx="194" cy="15" fill="#FEFECE" filter="url(#fozv35fmdzu27)" rx="8" ry="8" style="stroke:#A80036;stroke-width:2.0;"/><path d="M194,23 L194,50 M181,31 L207,31 M194,50 L181,65 M194,50 L207,65 " fill="none" filter="url(#fozv35fmdzu27)" style="stroke:#A80036;stroke-width:2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="40" x="171" y="620.6367">Client</text><ellipse cx="194" cy="633.5898" fill="#FEFECE" filter="url(#fozv35fmdzu27)" rx="8" ry="8" style="stroke:#A80036;stroke-width:2.0;"/><path d="M194,641.5898 L194,668.5898 M181,649.5898 L207,649.5898 M194,668.5898 L181,683.5898 M194,668.5898 L207,683.5898 " fill="none" filter="url(#fozv35fmdzu27)" style="stroke:#A80036;stroke-width:2.0;"/><rect fill="#FEFECE" filter="url(#fozv35fmdzu27)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="127" x="292.5" y="53"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="113" x="299.5" y="73.5352">stripe-payments</text><rect fill="#FEFECE" filter
|
||
|
@startuml
|
||
|
participant Stripe
|
||
|
actor Client
|
||
|
participant "stripe-payments" as Backend
|
||
|
database Tracking
|
||
|
|
||
|
Client -> Backend: Initiate purchase
|
||
|
Backend -> Tracking : <font color="blue">Store incomplete purchase</font>
|
||
|
Backend -> Stripe : Create payment intent
|
||
|
Backend -> Tracking : <font color="blue">Store incomplete payment</font>
|
||
|
Backend -> Client : Return payment intent
|
||
|
Client -> Stripe : Complete purchase
|
||
|
...
|
||
|
alt Success
|
||
|
Stripe - - -> Backend : payment_intent.succeeded
|
||
|
Backend -> Tracking : <font color="green">Store event</font>
|
||
|
alt Event not previously handled
|
||
|
Backend -> Tracking : <font color="blue">Mark payment as succeeded</font>
|
||
|
Backend -> Backend : Fulfill purchase
|
||
|
Backend -> Tracking : <font color="blue">Mark purchase as fulfilled</font>
|
||
|
end
|
||
|
else Failure
|
||
|
Stripe - -> Backend : payment_intent.payment_failed
|
||
|
Backend -> Tracking : <font color="green">Store event</font>
|
||
|
end
|
||
|
|
||
|
@enduml
|
||
|
|
||
|
PlantUML version 1.2021.00(Sun Jan 10 05:25:05 EST 2021)
|
||
|
(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>
|