roam/aweber/ecommerce-subscribing.svg
2021-10-01 17:48:18 -04:00

34 lines
No EOL
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;background:#FFFFFF;" 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="spacing" textLength="59" x="629.5" y="479.75">Core API</text><rect fill="#FEFECE" filter="url(#fd3iap5hihivr)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="54" x="719" y="53"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="40" x="726" y="73.5352">Stripe</text><rect fill="#FEFECE" filter="url(#fd3iap5hihivr)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="54" x="719" y="459.2148"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="40" x="726" y="479.75">Stripe</text><polygon fill="#A80036" points="108,115.7988,118,119.7988,108,123.7988,112,119.7988" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="27" x2="114" y1="119.7988" y2="119.7988"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="69" x="34" y="115.0566">Place order</text><polygon fill="#A80036" points="468,145.1094,478,149.1094,468,153.1094,472,149.1094" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="120" x2="474" y1="149.1094" y2="149.1094"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="336" x="127" y="144.3672">POST /stripe/subscription with product and price IDs</text><polygon fill="#A80036" points="736,174.4199,746,178.4199,736,182.4199,740,178.4199" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="480" x2="742" y1="178.4199" y2="178.4199"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="103" x="487" y="173.6777">Create customer</text><polygon fill="#A80036" points="736,203.7305,746,207.7305,736,211.7305,740,207.7305" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="480" x2="742" y1="207.7305" y2="207.7305"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="123" x="487" y="202.9883">Create subscription</text><polygon fill="#A80036" points="736,233.041,746,237.041,736,241.041,740,237.041" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="480" x2="742" y1="237.041" y2="237.041"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="129" x="487" y="232.2988">Create initial invoice</text><polygon fill="#A80036" points="131,262.3516,121,266.3516,131,270.3516,127,266.3516" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="125" x2="479" y1="266.3516" y2="266.3516"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="221" x="137" y="261.6094">Return payment intent client secret</text><polygon fill="#A80036" points="736,291.6621,746,295.6621,736,299.6621,740,295.6621" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="120" x2="742" y1="295.6621" y2="295.6621"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="109" x="127" y="290.9199">Confirm payment</text><polygon fill="#A80036" points="131,320.9727,121,324.9727,131,328.9727,127,324.9727" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="125" x2="747" y1="324.9727" y2="324.9727"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="140" x="137" y="320.2305">Return payment intent</text><polygon fill="#A80036" points="468,350.2832,478,354.2832,468,358.2832,472,354.2832" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="120" x2="474" y1="354.2832" y2="354.2832"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="152" x="127" y="349.541">POST /stripe/fulfillment</text><polygon fill="#A80036" points="736,379.5938,746,383.5938,736,387.5938,740,383.5938" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="480" x2="742" y1="383.5938" y2="383.5938"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="244" x="487" y="378.8516">Fetch payment intent and check status</text><polygon fill="#A80036" points="649,408.9043,659,412.9043,649,416.9043,653,412.9043" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="480" x2="655" y1="412.9043" y2="412.9043"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="157" x="487" y="408.1621">Add subscriber with tags</text><polygon fill="#A80036" points="131,438.2148,121,442.2148,131,446.2148,127,442.2148" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="125" x2="479" y1="442.2148" y2="442.2148"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="46" x="137" y="437.4727">200 OK</text><!--MD5=[44beb4fde3c8bd6a4d5c97a631d87f66]
@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.10(Mon Aug 30 09:43:48 EDT 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>