From 4e099d5fc559795715b8a4e038a05e675fc4e9f8 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Tue, 29 Sep 2020 18:21:45 +0530 Subject: Revert "look up claim token and include it in claimed but unpaid order URLs to avoid redirect loop" This reverts commit 9d25f3c0f66e30f6dd15a8dd53a80328054aac8d. --- .../taler-merchant-httpd_private-get-orders-ID.c | 62 ++++------------------ 1 file changed, 11 insertions(+), 51 deletions(-) (limited to 'src/backend/taler-merchant-httpd_private-get-orders-ID.c') diff --git a/src/backend/taler-merchant-httpd_private-get-orders-ID.c b/src/backend/taler-merchant-httpd_private-get-orders-ID.c index 829b3a56..1f47a475 100644 --- a/src/backend/taler-merchant-httpd_private-get-orders-ID.c +++ b/src/backend/taler-merchant-httpd_private-get-orders-ID.c @@ -834,6 +834,15 @@ TMH_private_get_orders_ID (const struct TMH_RequestHandler *rh, &gorc->order_serial); if (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs) { + struct GNUNET_HashCode unused; + + /* We don't have contract terms, but the order may still exist. */ + qs = TMH_db->lookup_order (TMH_db->cls, + hc->instance->settings.id, + hc->infix, + &claim_token, + &unused, + &gorc->contract_terms); order_only = true; } if (0 > qs) @@ -855,48 +864,6 @@ TMH_private_get_orders_ID (const struct TMH_RequestHandler *rh, TALER_EC_GET_ORDERS_ORDER_NOT_FOUND, hc->infix); } - - { - struct GNUNET_HashCode unused; - json_t *ct = NULL; - - /* We need the order for two cases: Either when the contract doesn't exist yet, - * or when the order is claimed but unpaid, and we need the claim token. */ - qs = TMH_db->lookup_order (TMH_db->cls, - hc->instance->settings.id, - hc->infix, - &claim_token, - &unused, - &ct); - - if (0 > qs) - { - /* single, read-only SQL statements should never cause - serialization problems */ - GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR != qs); - /* Always report on hard error as well to enable diagnostics */ - GNUNET_break (GNUNET_DB_STATUS_HARD_ERROR == qs); - return TALER_MHD_reply_with_error (connection, - MHD_HTTP_INTERNAL_SERVER_ERROR, - TALER_EC_GET_ORDERS_DB_FETCH_CONTRACT_TERMS_ERROR, - NULL); - } - if (order_only && (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs) ) - { - return TALER_MHD_reply_with_error (connection, - MHD_HTTP_NOT_FOUND, - TALER_EC_GET_ORDERS_ORDER_NOT_FOUND, - hc->infix); - } - if (order_only) - { - gorc->contract_terms = ct; - } - else if (NULL != ct) - { - json_decref (ct); - } - } /* extract the fulfillment URL and total amount from the contract terms! */ { struct GNUNET_JSON_Specification spec[] = { @@ -1102,24 +1069,17 @@ TMH_private_get_orders_ID (const struct TMH_RequestHandler *rh, char *taler_pay_uri; char *order_status_url; MHD_RESULT ret; - struct TALER_ClaimTokenP *ct = NULL; - - /* Already claimed, so we include the claim token so that - * the order status page will show the QR code and won't run - * into a redirect loop. */ - if (! order_only) - ct = &claim_token; taler_pay_uri = TMH_make_taler_pay_uri (connection, hc->infix, gorc->session_id, hc->instance->settings.id, - ct); + &claim_token); order_status_url = TMH_make_order_status_url (connection, hc->infix, gorc->session_id, hc->instance->settings.id, - ct, + &claim_token, NULL); ret = TALER_MHD_reply_json_pack (connection, MHD_HTTP_OK, -- cgit v1.2.3