View Issue Details

IDProjectCategoryView StatusLast Update
0006616Talermerchant backend API (C)public2020-11-04 15:09
ReporterFlorian Dold Assigned ToFlorian Dold  
PrioritynormalSeverityminorReproducibilityhave not tried
Status resolvedResolutionfixed 
Target Version0.8 
Summary0006616: GET /private/orders/{order_id} should return different response for claimed orders
DescriptionIn case of claimed (but unpaid!) orders, we do not want to return an order_status=="unpaid" response with taler_pay_uri or a order_status_url.

Instead, we should have a new subtype of the response with the tag order_status=="claimed" and without the URIs for the wallet / customer's browser, as we don't want to show the QR code for a claimed order.

If the customer wants to pay for the already claimed order, this should be done from the wallet (once supported).

Storefronts should create a new order when the current order of the customer is claimed but unpaid.
TagsNo tags attached.

Activities

Christian Grothoff

2020-10-02 19:41

manager   ~0016990

62c251a..75af774 updates the merchant API specification.

Christian Grothoff

2020-10-02 19:44

manager   ~0016991

Last edited: 2020-10-02 19:44

View 2 revisions

75af774..aaa614e updates the payment flow specification (with a new step 6 to handle the new claimed order status).

Christian Grothoff

2020-10-02 20:29

manager   ~0016992

fc51e02..e240640 implements the required support in the merchant backend.

Christian Grothoff

2020-10-02 21:55

manager   ~0016993

2cfe234..120d5d4 implements the new logic in the demo frontend.

Christian Grothoff

2020-10-02 22:01

manager   ~0016994

Should be fixed, please double-check.

Florian Dold

2020-10-08 18:53

manager   ~0017006

The frontend is currently broken, likely due to an incomplete merge of the i18n branch.

The following integration tests of the wallet are broken (I'll look into that, likely expectations of the test harness are wrong due to API changes):

lib/test-merchant-refund-api.js
lib/test-pay-paid.js
lib/test-paywall-flow.js
lib/test-refund-auto.js
lib/test-refund-incremental.js
lib/test-refund.js
lib/test-timetravel.js

Christian Grothoff

2020-10-09 19:35

manager   ~0017007

I've fixed the frontend issue due to the incomplete i18n code.

Florian Dold

2020-11-03 16:06

manager   ~0017090

The wallet integration tests now all work again.

However, we still need to decide if what we include right now in the order_status=="claimed" response is sufficient.

Once that's done (either no action or change in the merchant backend), this bug can be closed.

Christian Grothoff

2020-11-04 13:12

manager   ~0017103

Do you agree with my suggestion via e-mail to NOT change the merchant and instead kill the test, to avoid returning information that as you can only result in confused/bad use of the API?

Florian Dold

2020-11-04 13:58

manager   ~0017104

I don't think it can *only* result in confused use of the API. There are legitimate use cases (like a ticket shop, where you do *not* use session IDs, but want the user to finish paying for an existing, claimed order) where the storefront needs the order_status_url / taler_pay_uri.

Let's say we would implement Taler integration for pretix --- how would you handle claimed orders here? I don't think it's a good idea to have the pretix Taler plugin re-implement the logic to generate the taler_pay_uri / order_status_url, right?

Florian Dold

2020-11-04 15:09

manager   ~0017105

Discussed offline: Shops will never allow to "continue" a payment via a QR code, but instead only allow a new order to be created (if products are available) or ask the user to continue paying via their wallet.

Offering a "continue paying" QR code could be confusing if you have a browser wallet but previously paid with your phone, which is why we're ditching the idea!

Issue History

Date Modified Username Field Change
2020-10-02 12:19 Florian Dold New Issue
2020-10-02 12:19 Florian Dold Status new => assigned
2020-10-02 12:19 Florian Dold Assigned To => Christian Grothoff
2020-10-02 19:41 Christian Grothoff Note Added: 0016990
2020-10-02 19:44 Christian Grothoff Note Added: 0016991
2020-10-02 19:44 Christian Grothoff Note Edited: 0016991 View Revisions
2020-10-02 20:29 Christian Grothoff Note Added: 0016992
2020-10-02 21:55 Christian Grothoff Note Added: 0016993
2020-10-02 22:01 Christian Grothoff Assigned To Christian Grothoff => Florian Dold
2020-10-02 22:01 Christian Grothoff Status assigned => feedback
2020-10-02 22:01 Christian Grothoff Note Added: 0016994
2020-10-08 18:53 Florian Dold Note Added: 0017006
2020-10-09 19:35 Christian Grothoff Note Added: 0017007
2020-11-03 16:05 Florian Dold Assigned To Florian Dold => Christian Grothoff
2020-11-03 16:06 Florian Dold Note Added: 0017090
2020-11-03 16:06 Florian Dold Status feedback => assigned
2020-11-04 13:12 Christian Grothoff Assigned To Christian Grothoff => Florian Dold
2020-11-04 13:12 Christian Grothoff Note Added: 0017103
2020-11-04 13:58 Florian Dold Note Added: 0017104
2020-11-04 15:09 Florian Dold Note Added: 0017105
2020-11-04 15:09 Florian Dold Status assigned => resolved
2020-11-04 15:09 Florian Dold Resolution open => fixed