From b56fedc0aefefb86fa8fe82135e219f4e2fddb6c Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Mon, 3 Aug 2020 13:32:20 +0530 Subject: cleanup --- contrib/articles/ui/figs/Makefile | 15 ++++ contrib/articles/ui/figs/bank0a.png | Bin 0 -> 26902 bytes contrib/articles/ui/figs/bank1.png | Bin 0 -> 53014 bytes contrib/articles/ui/figs/bank1a.png | Bin 0 -> 56350 bytes contrib/articles/ui/figs/bank1b.png | Bin 0 -> 34100 bytes contrib/articles/ui/figs/bank2.png | Bin 0 -> 47896 bytes contrib/articles/ui/figs/bank2a.png | Bin 0 -> 48220 bytes contrib/articles/ui/figs/bank2b.png | Bin 0 -> 28513 bytes contrib/articles/ui/figs/bank3.png | Bin 0 -> 45646 bytes contrib/articles/ui/figs/bank3a.png | Bin 0 -> 59024 bytes contrib/articles/ui/figs/bank3b.png | Bin 0 -> 40907 bytes contrib/articles/ui/figs/bank4.png | Bin 0 -> 62697 bytes contrib/articles/ui/figs/bank4a.png | Bin 0 -> 67867 bytes contrib/articles/ui/figs/bank4b.png | Bin 0 -> 39949 bytes contrib/articles/ui/figs/bitcoin.pml | 37 +++++++++ contrib/articles/ui/figs/bitcoin.svg | 1 + contrib/articles/ui/figs/cart.png | Bin 0 -> 116687 bytes contrib/articles/ui/figs/cc3ds.pml | 95 ++++++++++++++++++++++++ contrib/articles/ui/figs/cc3ds.svg | 1 + contrib/articles/ui/figs/contract.pml | 31 ++++++++ contrib/articles/ui/figs/fulfillment.png | Bin 0 -> 118355 bytes contrib/articles/ui/figs/pay.png | Bin 0 -> 48973 bytes contrib/articles/ui/figs/paypal.pml | 64 ++++++++++++++++ contrib/articles/ui/figs/paypal.svg | 1 + contrib/articles/ui/figs/taler-contract.html | 6 ++ contrib/articles/ui/figs/taler-pay.pml | 47 ++++++++++++ contrib/articles/ui/figs/taler-pay.svg | 1 + contrib/articles/ui/figs/taler-presence-js.html | 9 +++ contrib/articles/ui/figs/taler-withdraw.pml | 37 +++++++++ contrib/articles/ui/figs/taler-withdraw.png | Bin 0 -> 36010 bytes contrib/articles/ui/figs/taler-withdraw.svg | 1 + 31 files changed, 346 insertions(+) create mode 100644 contrib/articles/ui/figs/Makefile create mode 100644 contrib/articles/ui/figs/bank0a.png create mode 100644 contrib/articles/ui/figs/bank1.png create mode 100644 contrib/articles/ui/figs/bank1a.png create mode 100644 contrib/articles/ui/figs/bank1b.png create mode 100644 contrib/articles/ui/figs/bank2.png create mode 100644 contrib/articles/ui/figs/bank2a.png create mode 100644 contrib/articles/ui/figs/bank2b.png create mode 100644 contrib/articles/ui/figs/bank3.png create mode 100644 contrib/articles/ui/figs/bank3a.png create mode 100644 contrib/articles/ui/figs/bank3b.png create mode 100644 contrib/articles/ui/figs/bank4.png create mode 100644 contrib/articles/ui/figs/bank4a.png create mode 100644 contrib/articles/ui/figs/bank4b.png create mode 100644 contrib/articles/ui/figs/bitcoin.pml create mode 100644 contrib/articles/ui/figs/bitcoin.svg create mode 100644 contrib/articles/ui/figs/cart.png create mode 100644 contrib/articles/ui/figs/cc3ds.pml create mode 100644 contrib/articles/ui/figs/cc3ds.svg create mode 100644 contrib/articles/ui/figs/contract.pml create mode 100644 contrib/articles/ui/figs/fulfillment.png create mode 100644 contrib/articles/ui/figs/pay.png create mode 100644 contrib/articles/ui/figs/paypal.pml create mode 100644 contrib/articles/ui/figs/paypal.svg create mode 100644 contrib/articles/ui/figs/taler-contract.html create mode 100644 contrib/articles/ui/figs/taler-pay.pml create mode 100644 contrib/articles/ui/figs/taler-pay.svg create mode 100644 contrib/articles/ui/figs/taler-presence-js.html create mode 100644 contrib/articles/ui/figs/taler-withdraw.pml create mode 100644 contrib/articles/ui/figs/taler-withdraw.png create mode 100644 contrib/articles/ui/figs/taler-withdraw.svg (limited to 'contrib/articles/ui/figs') diff --git a/contrib/articles/ui/figs/Makefile b/contrib/articles/ui/figs/Makefile new file mode 100644 index 000000000..bf5ac5261 --- /dev/null +++ b/contrib/articles/ui/figs/Makefile @@ -0,0 +1,15 @@ + +plantuml = plantuml + +%.svg : %.pml + $(plantuml) -tsvg $< + +%.pdf : %.pml + $(plantuml) -tpdf $< + +files = taler-pay.pml taler-withdraw.pml \ +cc3ds.pml contract.pml paypal.pml \ +bitcoin.pml + +all : $(files:.pml=.pdf) $(files:.pml=.svg) + diff --git a/contrib/articles/ui/figs/bank0a.png b/contrib/articles/ui/figs/bank0a.png new file mode 100644 index 000000000..b679304d0 Binary files /dev/null and b/contrib/articles/ui/figs/bank0a.png differ diff --git a/contrib/articles/ui/figs/bank1.png b/contrib/articles/ui/figs/bank1.png new file mode 100644 index 000000000..84bc7a189 Binary files /dev/null and b/contrib/articles/ui/figs/bank1.png differ diff --git a/contrib/articles/ui/figs/bank1a.png b/contrib/articles/ui/figs/bank1a.png new file mode 100644 index 000000000..b91adfff6 Binary files /dev/null and b/contrib/articles/ui/figs/bank1a.png differ diff --git a/contrib/articles/ui/figs/bank1b.png b/contrib/articles/ui/figs/bank1b.png new file mode 100644 index 000000000..a3adfe4e3 Binary files /dev/null and b/contrib/articles/ui/figs/bank1b.png differ diff --git a/contrib/articles/ui/figs/bank2.png b/contrib/articles/ui/figs/bank2.png new file mode 100644 index 000000000..126c9a059 Binary files /dev/null and b/contrib/articles/ui/figs/bank2.png differ diff --git a/contrib/articles/ui/figs/bank2a.png b/contrib/articles/ui/figs/bank2a.png new file mode 100644 index 000000000..087cef9e1 Binary files /dev/null and b/contrib/articles/ui/figs/bank2a.png differ diff --git a/contrib/articles/ui/figs/bank2b.png b/contrib/articles/ui/figs/bank2b.png new file mode 100644 index 000000000..eaa4ba475 Binary files /dev/null and b/contrib/articles/ui/figs/bank2b.png differ diff --git a/contrib/articles/ui/figs/bank3.png b/contrib/articles/ui/figs/bank3.png new file mode 100644 index 000000000..3b79c042f Binary files /dev/null and b/contrib/articles/ui/figs/bank3.png differ diff --git a/contrib/articles/ui/figs/bank3a.png b/contrib/articles/ui/figs/bank3a.png new file mode 100644 index 000000000..2d321a27a Binary files /dev/null and b/contrib/articles/ui/figs/bank3a.png differ diff --git a/contrib/articles/ui/figs/bank3b.png b/contrib/articles/ui/figs/bank3b.png new file mode 100644 index 000000000..78e7637cb Binary files /dev/null and b/contrib/articles/ui/figs/bank3b.png differ diff --git a/contrib/articles/ui/figs/bank4.png b/contrib/articles/ui/figs/bank4.png new file mode 100644 index 000000000..56c32e15c Binary files /dev/null and b/contrib/articles/ui/figs/bank4.png differ diff --git a/contrib/articles/ui/figs/bank4a.png b/contrib/articles/ui/figs/bank4a.png new file mode 100644 index 000000000..65f18684c Binary files /dev/null and b/contrib/articles/ui/figs/bank4a.png differ diff --git a/contrib/articles/ui/figs/bank4b.png b/contrib/articles/ui/figs/bank4b.png new file mode 100644 index 000000000..fde59ab7c Binary files /dev/null and b/contrib/articles/ui/figs/bank4b.png differ 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 diff --git a/contrib/articles/ui/figs/bitcoin.svg b/contrib/articles/ui/figs/bitcoin.svg new file mode 100644 index 000000000..3f908b3df --- /dev/null +++ b/contrib/articles/ui/figs/bitcoin.svg @@ -0,0 +1 @@ +Bitcoin Payment Protocol (BIP70)Invoice DatabaseInvoice DatabasePayee WebsitePayee WebsiteBitcoin NetworkBitcoin NetworkPayer WalletPayer WalletPayer (Browser)Payer (Browser)1Request checkout with Bitcoin2Generate Bitcoin address3Store invoice details4Basket Page with bitcoin: pay link5Click bitcoin: link6Wallet handles bitcoin: URL and extracts invoice URL7Request invoice8Get invoice details9Create PaymentDetails (Amount, Memo, Ref#, Pay URL)10Create PaymentRequest (Signed PaymentDetails)11PaymentRequest containing PaymentDetails12Confirm payment details?13Accept payment14Generate and sign payment15Signed payment16Submit payment17Payment ACK18Confirm payment is completeloop[until payment is confirmed]19Latest confirmed transactions \ No newline at end of file diff --git a/contrib/articles/ui/figs/cart.png b/contrib/articles/ui/figs/cart.png new file mode 100644 index 000000000..58beb3b1a Binary files /dev/null and b/contrib/articles/ui/figs/cart.png differ diff --git a/contrib/articles/ui/figs/cc3ds.pml b/contrib/articles/ui/figs/cc3ds.pml new file mode 100644 index 000000000..2a2ba3c17 --- /dev/null +++ b/contrib/articles/ui/figs/cc3ds.pml @@ -0,0 +1,95 @@ +# FROM: https://github.com/w3c/webpayments/tree/gh-pages/PaymentFlows + +@startuml + +Participant "Payee (Merchant) PSP [Acquirer]" as MPSP +Participant "Payee (Merchant) [Acceptor] Site " as Payee +Actor "Payer (Shopper) [Cardholder] Browser" as Payer +participant "Browser Form Filler" as UA +participant "Card Scheme Directory" as CSD +participant "Issuing Bank [Issuer] Website" as CPSPW +participant "Issuing Bank [Issuer]" as CPSP + +note over Payee, Payer: HTTPS + +title +Legacy Merchant Hosted Card Payment with Acquirer Supported 3DS (Current) + +3DS is used to add confidence that the payer is who they say they are and importantly in the event of a dispute liability shift to the Issuer. +end title + +== Establish Payment Obligation == + +Payee->Payer: Present Check-out page with Pay Button +Payer->Payer: Select Card Payment Method + +alt + UA->Payer: Form Fill +' Note right: fields are PAN & Expiry Date with optional CVV, & Address, Also Card Valid Date and Issue Number are required for some Schemes +else + Payer->Payer: User Fills Form +End + +== Card Payment Initiation == + +Payer->Payee: Payment Initiation +' Note right: Custom code on merchant webpage can encrypt payload to reduce PCI burden from SAQ D to SAQ A-EP + +opt + Payee->Payee: Store Card +' note right: Merchant can store card details apart from CVV (even if encrypted) for future use (a.k.a. Card on File) +end + +Payee-\MPSP: Authorise + + +== 3DS part of flow == + +' Note over MPSP, Payee: At this point, the Merchant or Merchant's PSP can decide if it wishes to invoke 3DS. This might be based on transaction value (i.e. low value -> low risk) or other factors, e.g. if the Shopper is a repeat purchaser. + + MPSP –> CSD: BIN to URL lookup (VAReq message) + CSD -> CSD: Lookup URL from BIN + CSD –> CPSPW : “PING” + 'note right: verify URL validity + CPSPW –> CSD: “PING” response + CSD –> MPSP: URL + + MPSP-/Payee: 3DS redirect (PAReq message) + Payee->Payer: 3DS redirect (PAReq message) + Payer->CPSPW: 3DS invoke + CPSPW-\Payer: 3DS challenge + Payer-/CPSPW: 3DS response (PARes message) + CPSPW->Payer: 3DS response (PARes message) + Payer->Payee: 3DS response (PARes message) + Payee-\MPSP: 3DS response (PARes message) + + MPSP->MPSP: Verification of PARes signature + +== End of 3DS == + + +MPSP-\CPSP: Authorisation Request +CPSP-/MPSP: Authorisation Response + +MPSP-/Payee: Authorisation Response + +== Notification == + +Payee->Payer: Result Page + +== Request for Settlement process (could be immediate, batch (e.g. daily) or after some days) == + +Alt + Payee -> MPSP : Capture +'note right: Later Capture may be called, for example after good shipped or tickets pickedup +Else + MPSP -> MPSP : Auto Capture in batch processing at end-of-day +End + +MPSP->CPSP: Capture + +== Fulfilment == + +Payee->Payer: Provide products or services + +@enduml diff --git a/contrib/articles/ui/figs/cc3ds.svg b/contrib/articles/ui/figs/cc3ds.svg new file mode 100644 index 000000000..31b11e02f --- /dev/null +++ b/contrib/articles/ui/figs/cc3ds.svg @@ -0,0 +1 @@ +Legacy Merchant Hosted Card Payment with Acquirer Supported 3DS (Current)3DS is used to add confidence that the payer is who they say they are and importantly in the event of a dispute liability shift to the Issuer.Payee (Merchant) PSP [Acquirer]Payee (Merchant) PSP [Acquirer]Payee (Merchant) [Acceptor] SitePayee (Merchant) [Acceptor] SitePayer (Shopper) [Cardholder] BrowserPayer (Shopper) [Cardholder] BrowserBrowser Form FillerBrowser Form FillerCard Scheme DirectoryCard Scheme DirectoryIssuing Bank [Issuer] WebsiteIssuing Bank [Issuer] WebsiteIssuing Bank [Issuer]Issuing Bank [Issuer]HTTPSEstablish Payment ObligationPresent Check-out page with Pay ButtonSelect Card Payment MethodaltForm FillUser Fills FormCard Payment InitiationPayment InitiationoptStore CardAuthorise3DS part of flowBIN to URL lookup (VAReq message)Lookup URL from BIN“PING”“PING” responseURL3DS redirect (PAReq message)3DS redirect (PAReq message)3DS invoke3DS challenge3DS response (PARes message)3DS response (PARes message)3DS response (PARes message)3DS response (PARes message)Verification of PARes signatureEnd of 3DSAuthorisation RequestAuthorisation ResponseAuthorisation ResponseNotificationResult PageRequest for Settlement process (could be immediate, batch (e.g. daily) or after some days)altCaptureAuto Capture in batch processing at end-of-dayCaptureFulfilmentProvide products or services \ No newline at end of file diff --git a/contrib/articles/ui/figs/contract.pml b/contrib/articles/ui/figs/contract.pml new file mode 100644 index 000000000..74bf23dd6 --- /dev/null +++ b/contrib/articles/ui/figs/contract.pml @@ -0,0 +1,31 @@ + +@startuml + +hide footbox + +box "User" + Participant "Wallet" as W + Participant "Browser" as U +end box + +box "Merchant" + Participant "Storefront" as S + Participant "Backend" as B +end box + +autonumber + +S -> B : proposed contract +B -> S : signed contract + +S -> U : custom (HTTP(S)) + +U -> W : signed contract +W -> U : signed coins + +U -> S : custom (HTTP(S)) + +S -> B : signed coins (HTTP(S)) +B -> S : confirmation (HTTP(S)) + +@enduml diff --git a/contrib/articles/ui/figs/fulfillment.png b/contrib/articles/ui/figs/fulfillment.png new file mode 100644 index 000000000..5ac058844 Binary files /dev/null and b/contrib/articles/ui/figs/fulfillment.png differ diff --git a/contrib/articles/ui/figs/pay.png b/contrib/articles/ui/figs/pay.png new file mode 100644 index 000000000..1efdf9610 Binary files /dev/null and b/contrib/articles/ui/figs/pay.png differ diff --git a/contrib/articles/ui/figs/paypal.pml b/contrib/articles/ui/figs/paypal.pml new file mode 100644 index 000000000..2820f2742 --- /dev/null +++ b/contrib/articles/ui/figs/paypal.pml @@ -0,0 +1,64 @@ +# FROM: https://github.com/w3c/webpayments/tree/gh-pages/PaymentFlows + +@startuml +autonumber + +Participant "Payee (Merchant) Site" as Payee +Actor "Payer (Shopper) Browser" as Payer +participant "Payer (Shopper) PSP (PayPal)" as CPSP + +note over MPSP, CPSP: HTTPS + +title PayPal Payment (REST API) (Current) + +Payee->Payer: Present Checkout Page with Pay Button + +Payer->Payer: Select PayPal Payment Method + +Payer-\Payee: Payment Page Request + +Payee<->CPSP: Create Payment + +Payee-/Payer: HTTP Redirect + +Note right: HTTP Direct now send the shopper to the PayPal site + +Payer-\CPSP: Payment Initiation + +CPSP-/Payer: Authentication Page + +Payer-\CPSP: Authenticate +note right: Typically a username & password + +CPSP-/Payer: Payment Page + +opt + Payer<->CPSP: Instrument Choice + note right: Payer can change from default payment instrument +end + +Payer->Payer: Approval + +Payer-\CPSP: Payment Approval + +CPSP-/Payer: Payment Response Redirect + +Payer-\Payee: Payment Response + +Payee<->CPSP: Execute Payment + +Payee-/Payer: Result Page + + +... asynchronous notification ... + +CPSP->Payer: Payment Notification (email) + +Opt + Payee->Payer: Payment Notification (email) +End + +Note right: Provides out of band confirmation to protect against failure/modification at browser + + +@enduml diff --git a/contrib/articles/ui/figs/paypal.svg b/contrib/articles/ui/figs/paypal.svg new file mode 100644 index 000000000..656ccc355 --- /dev/null +++ b/contrib/articles/ui/figs/paypal.svg @@ -0,0 +1 @@ +PayPal Payment (REST API) (Current)Payee (Merchant) SitePayee (Merchant) SitePayer (Shopper) BrowserPayer (Shopper) BrowserPayer (Shopper) PSP (PayPal)Payer (Shopper) PSP (PayPal)MPSPMPSPHTTPS1Present Checkout Page with Pay Button2Select PayPal Payment Method3Payment Page Request4Create Payment5HTTP RedirectHTTP Direct now send the shopper to the PayPal site6Payment Initiation7Authentication Page8AuthenticateTypically a username & password9Payment Pageopt10Instrument ChoicePayer can change from default payment instrument11Approval12Payment Approval13Payment Response Redirect14Payment Response15Execute Payment16Result Pageasynchronous notification17Payment Notification (email)opt18Payment Notification (email) \ No newline at end of file diff --git a/contrib/articles/ui/figs/taler-contract.html b/contrib/articles/ui/figs/taler-contract.html new file mode 100644 index 000000000..affdbe9a6 --- /dev/null +++ b/contrib/articles/ui/figs/taler-contract.html @@ -0,0 +1,6 @@ + + diff --git a/contrib/articles/ui/figs/taler-pay.pml b/contrib/articles/ui/figs/taler-pay.pml new file mode 100644 index 000000000..93b21f856 --- /dev/null +++ b/contrib/articles/ui/figs/taler-pay.pml @@ -0,0 +1,47 @@ +@startuml +autonumber + +Actor "Payer (Shopper) Browser" as Payer +Participant "Payee (Merchant) Site" as Payee +Participant "Taler Exchange" as Exchange + +note over Payer, Payee: Tor/HTTPS +note over Payee, Exchange: HTTP/HTTPS + +title Taler (Payment) + +== Request Offer == + +Payer->Payee: Choose goods by navigating to offer URL + +Payee->Payer: Send signed digital contract proposal + +opt +Payer->Payer: Select Taler payment method (skippable with auto-detection) +end + +== Execute Payment == + +opt +Payer->Payer: Affirm contract +end + +Payer->Payee: Navigate to fulfillment URL + +Payee->Payer: Send hash of digital contract and payment information + +Payer->Payee: Send payment + +Payee->Exchange: Forward payment + +Exchange->Payee: Confirm payment + +Payee->Payer: Confirm payment + +== Fulfilment == + +Payer->Payee: Reload fulfillment URL for delivery + +Payee->Payer: Provide product resource + +@enduml diff --git a/contrib/articles/ui/figs/taler-pay.svg b/contrib/articles/ui/figs/taler-pay.svg new file mode 100644 index 000000000..95d83e4ff --- /dev/null +++ b/contrib/articles/ui/figs/taler-pay.svg @@ -0,0 +1 @@ +Taler (Payment)Payer (Shopper) BrowserPayer (Shopper) BrowserPayee (Merchant) SitePayee (Merchant) SiteTaler ExchangeTaler ExchangeTor/HTTPSHTTP/HTTPSRequest OfferChoose goods by navigating to offer URLSend signed digital contract proposaloptSelect Taler payment method (skippable with auto-detection)Execute PaymentoptAffirm contractNavigate to fulfillment URLSend hash of digital contract and payment informationSend paymentForward paymentConfirm paymentConfirm paymentFulfilmentReload fulfillment URL for deliveryProvide product resource \ No newline at end of file diff --git a/contrib/articles/ui/figs/taler-presence-js.html b/contrib/articles/ui/figs/taler-presence-js.html new file mode 100644 index 000000000..9770815f5 --- /dev/null +++ b/contrib/articles/ui/figs/taler-presence-js.html @@ -0,0 +1,9 @@ + + diff --git a/contrib/articles/ui/figs/taler-withdraw.pml b/contrib/articles/ui/figs/taler-withdraw.pml new file mode 100644 index 000000000..33f5dac0b --- /dev/null +++ b/contrib/articles/ui/figs/taler-withdraw.pml @@ -0,0 +1,37 @@ +@startuml +autonumber + +Actor "Customer Browser" as Customer +Participant "Bank Site" as Bank +Participant "Taler Exchange" as Exchange + +note over Customer, Bank: HTTPS +note over Customer, Exchange: HTTPS +note over Bank, Exchange: wire transfer + +title Taler (Withdraw coins) + +Customer->Bank: user authentication +Bank->Customer: send account portal + +Customer->Customer: initiate withdrawal (specify amount and exchange) + +Customer->Exchange: request coin denomination keys and wire transfer data +Exchange->Customer: send coin denomination keys and wire transfer data + +Customer->Bank: execute withdrawal + +opt +Bank->Customer: request transaction authorization +Customer->Bank: transaction authorization +end + +Bank->Customer: withdrawal confirmation +Bank->Exchange: execute wire transfer + + +Customer->Exchange: withdraw request +Customer<-Exchange: signed blinded coins +Customer->Customer: unblind coins + +@enduml diff --git a/contrib/articles/ui/figs/taler-withdraw.png b/contrib/articles/ui/figs/taler-withdraw.png new file mode 100644 index 000000000..04a4d8d1f Binary files /dev/null and b/contrib/articles/ui/figs/taler-withdraw.png differ diff --git a/contrib/articles/ui/figs/taler-withdraw.svg b/contrib/articles/ui/figs/taler-withdraw.svg new file mode 100644 index 000000000..3618d92f5 --- /dev/null +++ b/contrib/articles/ui/figs/taler-withdraw.svg @@ -0,0 +1 @@ +Taler (Withdraw coins)Customer BrowserCustomer BrowserBank SiteBank SiteTaler ExchangeTaler ExchangeHTTPSHTTPSwire transferuser authenticationsend account portalinitiate withdrawal (specify amount and exchange)request coin denomination keys and wire transfer datasend coin denomination keys and wire transfer dataexecute withdrawaloptrequest transaction authorizationtransaction authorizationwithdrawal confirmationexecute wire transferwithdraw requestsigned blinded coinsunblind coins \ No newline at end of file -- cgit v1.2.3