diff options
Diffstat (limited to 'articles/ui/figs/bitcoin.pml')
-rw-r--r-- | articles/ui/figs/bitcoin.pml | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/articles/ui/figs/bitcoin.pml b/articles/ui/figs/bitcoin.pml new file mode 100644 index 000000000..88707cda1 --- /dev/null +++ b/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 |