34 lines
9.9 KiB
XML
34 lines
9.9 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="552px" preserveAspectRatio="none" style="width:787px;height:552px;" version="1.1" viewBox="0 0 787 552" width="787px" zoomAndPan="magnify"><defs><filter height="300%" id="fd3iap5hihivr" 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="#DDDDDD" height="540.7031" style="stroke:#A80036;stroke-width:1.0;" width="85" x="618.5" y="6"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="53" x="634.5" y="18.5684">Internal</text><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="27" x2="27" y1="88.4883" y2="460.2148"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="120" x2="120" y1="88.4883" y2="460.2148"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="480" x2="480" y1="88.4883" y2="460.2148"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="660.5" x2="660.5" y1="88.4883" y2="460.2148"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="748" x2="748" y1="88.4883" y2="460.2148"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="38" x="5" y="85.5352">Buyer</text><ellipse cx="27" cy="15" fill="#FEFECE" filter="url(#fd3iap5hihivr)" rx="8" ry="8" style="stroke:#A80036;stroke-width:2.0;"/><path d="M27,23 L27,50 M14,31 L40,31 M27,50 L14,65 M27,50 L40,65 " fill="none" filter="url(#fd3iap5hihivr)" style="stroke:#A80036;stroke-width:2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="38" x="5" y="472.75">Buyer</text><ellipse cx="27" cy="485.7031" fill="#FEFECE" filter="url(#fd3iap5hihivr)" rx="8" ry="8" style="stroke:#A80036;stroke-width:2.0;"/><path d="M27,493.7031 L27,520.7031 M14,501.7031 L40,501.7031 M27,520.7031 L14,535.7031 M27,520.7031 L40,535.7031 " fill="none" filter="url(#fd3iap5hihivr)" style="stroke:#A80036;stroke-width:2.0;"/><rect fill="#FEFECE" filter="url(#fd3iap5hihivr)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="106" x="65" y="53"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="92" x="72" y="73.5352">Landing Page</text><rect fill="#FEFECE" filter="url(#fd3iap5hihivr)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="106" x="65" y="459.2148"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="92" x="72" y="479.75">Landing Page</text><rect fill="#FEFECE" filter="url(#fd3iap5hihivr)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="250" x="353" y="53"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="236" x="360" y="73.5352">Stripe Payments (Unauthenticated)</text><rect fill="#FEFECE" filter="url(#fd3iap5hihivr)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="250" x="353" y="459.2148"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="236" x="360" y="479.75">Stripe Payments (Unauthenticated)</text><rect fill="#FEFECE" filter="url(#fd3iap5hihivr)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="73" x="622.5" y="53"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="59" x="629.5" y="73.5352">Core API</text><rect fill="#FEFECE" filter="url(#fd3iap5hihivr)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="73" x="622.5" y="459.2148"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spa
|
||
|
@startuml
|
||
|
actor "Buyer" as buyer
|
||
|
participant "Landing Page" as lp
|
||
|
participant "Stripe Payments (Unauthenticated)" as sp
|
||
|
box "Internal"
|
||
|
participant "Core API" as capi
|
||
|
end box
|
||
|
participant "Stripe" as stripe
|
||
|
|
||
|
buyer -> lp : Place order
|
||
|
lp -> sp : POST /stripe/subscription with product and price IDs
|
||
|
sp -> stripe : Create customer
|
||
|
sp -> stripe : Create subscription
|
||
|
sp -> stripe : Create initial invoice
|
||
|
sp -> lp : Return payment intent client secret
|
||
|
|
||
|
lp -> stripe : Confirm payment
|
||
|
stripe -> lp : Return payment intent
|
||
|
|
||
|
lp -> sp : POST /stripe/fulfillment
|
||
|
sp -> stripe : Fetch payment intent and check status
|
||
|
sp -> capi : Add subscriber with tags
|
||
|
sp -> lp : 200 OK
|
||
|
@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>
|