summaryrefslogtreecommitdiff
path: root/contrib/articles/ui/figs/bitcoin.pml
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/articles/ui/figs/bitcoin.pml')
-rw-r--r--contrib/articles/ui/figs/bitcoin.pml37
1 files changed, 37 insertions, 0 deletions
diff --git a/contrib/articles/ui/figs/bitcoin.pml b/contrib/articles/ui/figs/bitcoin.pml
new file mode 100644
index 000000000..88707cda1
--- /dev/null
+++ b/contrib/articles/ui/figs/bitcoin.pml
@@ -0,0 +1,37 @@
+# FROM: https://github.com/w3c/webpayments/tree/gh-pages/PaymentFlows
+
+@startuml
+!includeurl https://raw.githubusercontent.com/w3c/webpayments/gh-pages/PaymentFlows/skin.ipml
+
+Database "Invoice Database" as DB
+Participant "Payee Website" as Website
+Database "Bitcoin Network" as Bitcoin
+Participant "Payer Wallet" as Wallet
+Actor "Payer (Browser)" as Payer
+
+title Bitcoin Payment Protocol (BIP70)
+
+Payer->Website: Request checkout with Bitcoin
+Website->Website: Generate Bitcoin address
+Website->DB: Store invoice details
+Website->Payer: Basket Page with bitcoin: pay link
+Payer->Payer: Click bitcoin: link
+Payer->Wallet: Wallet handles bitcoin: URL and extracts invoice URL
+Wallet->Website: Request invoice
+Website->DB: Get invoice details
+Website->Website: Create PaymentDetails (Amount, Memo, Ref#, Pay URL)
+Website->Website: Create PaymentRequest (Signed PaymentDetails)
+Website->Wallet: PaymentRequest containing PaymentDetails
+Wallet->Payer: Confirm payment details?
+Payer->Wallet: Accept payment
+Wallet->Wallet: Generate and sign payment
+Wallet->Website: Signed payment
+Website->Bitcoin: Submit payment
+Website->Wallet: Payment ACK
+Wallet->Payer: Confirm payment is complete
+loop until payment is confirmed
+ Bitcoin->Website: Latest confirmed transactions
+end
+
+
+@enduml \ No newline at end of file