merchant

Merchant backend to process payments, run by merchants
Log | Files | Refs | Submodules | README | LICENSE

commit fed87b96dd9241e76f1a62a512f5a5fe3162aa8b
parent 6ac300125f397470cac808e190eb02270b9a01bb
Author: Christian Grothoff <christian@grothoff.org>
Date:   Sun,  6 Sep 2020 00:19:36 +0200

try to debug crash in merchant backend on GET for refund

Diffstat:
Msrc/backend/taler-merchant-httpd_get-orders-ID.c | 19+++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/backend/taler-merchant-httpd_get-orders-ID.c b/src/backend/taler-merchant-httpd_get-orders-ID.c @@ -231,7 +231,6 @@ make_taler_refund_uri (struct MHD_Connection *con, "X-Forwarded-Prefix"); if (NULL != forwarded_host) host = forwarded_host; - if (NULL == host) { GNUNET_break (0); @@ -472,8 +471,11 @@ get_order_summary (struct GetOrderData *god) language_pattern, "summary")); if (NULL == ret) + { GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "No order summary found!\n"); + ret = "<bug: no summary>"; + } return ret; } @@ -533,7 +535,7 @@ send_pay_request (struct GetOrderData *god, enum GNUNET_GenericReturnValue res; json_t *context; - context = json_pack ("{s:s, s:s, s:s, s:s?}", + context = json_pack ("{s:s, s:s, s:s, s:s}", "taler_pay_uri", taler_pay_uri, "order_status_url", @@ -1089,9 +1091,18 @@ TMH_get_orders_ID (const struct TMH_RequestHandler *rh, char *qr; char *uri; + GNUNET_assert (NULL != god->contract_terms); uri = make_taler_refund_uri (god->sc.con, order_id, hc->instance->settings.id); + if (NULL == uri) + { + GNUNET_break (0); + return TALER_MHD_reply_with_error (god->sc.con, + MHD_HTTP_INTERNAL_SERVER_ERROR, + TALER_EC_ALLOCATION_FAILURE, + "refund URI"); + } qr = TMH_create_qrcode (uri); if (NULL == qr) { @@ -1105,7 +1116,7 @@ TMH_get_orders_ID (const struct TMH_RequestHandler *rh, { json_t *context; - context = json_pack ("{s:s?, s:s, s:s, s:s}" + context = json_pack ("{s:s, s:s, s:s, s:s}" "order_summary", get_order_summary (god), "refund_amount", @@ -1129,7 +1140,7 @@ TMH_get_orders_ID (const struct TMH_RequestHandler *rh, { json_t *context; - context = json_pack ("{s:O, s:s?, s:s}", + context = json_pack ("{s:O, s:s, s:s}", "contract_terms", god->contract_terms, "order_summary",