summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2020-09-29 18:21:45 +0530
committerFlorian Dold <florian.dold@gmail.com>2020-09-29 18:21:45 +0530
commit4e099d5fc559795715b8a4e038a05e675fc4e9f8 (patch)
tree5253b9d525f9a4f9025221eb1847a28ac6833a4a /src
parentb8a813813642f2b6854f349a8e41e31cdfcf8ec3 (diff)
downloadmerchant-4e099d5fc559795715b8a4e038a05e675fc4e9f8.tar.gz
merchant-4e099d5fc559795715b8a4e038a05e675fc4e9f8.tar.bz2
merchant-4e099d5fc559795715b8a4e038a05e675fc4e9f8.zip
Revert "look up claim token and include it in claimed but unpaid order URLs to avoid redirect loop"
This reverts commit 9d25f3c0f66e30f6dd15a8dd53a80328054aac8d.
Diffstat (limited to 'src')
-rw-r--r--src/backend/taler-merchant-httpd_private-get-orders-ID.c62
1 files changed, 11 insertions, 51 deletions
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,