summaryrefslogtreecommitdiff
path: root/src/backend/taler-merchant-httpd_check-payment.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/taler-merchant-httpd_check-payment.c')
-rw-r--r--src/backend/taler-merchant-httpd_check-payment.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/backend/taler-merchant-httpd_check-payment.c b/src/backend/taler-merchant-httpd_check-payment.c
index 9f5bf0e0..1e8a8be3 100644
--- a/src/backend/taler-merchant-httpd_check-payment.c
+++ b/src/backend/taler-merchant-httpd_check-payment.c
@@ -56,6 +56,8 @@ MH_handler_check_payment (struct TMH_RequestHandler *rh,
const char *session_id;
const char *session_sig_str;
const char *instance_str;
+ char *final_contract_url = NULL;
+
order_id = MHD_lookup_connection_value (connection,
MHD_GET_ARGUMENT_KIND,
@@ -96,6 +98,18 @@ MH_handler_check_payment (struct TMH_RequestHandler *rh,
// contract.
}
+ if (NULL == contract_url)
+ {
+ final_contract_url = TMH_make_absolute_backend_url (connection, "proposal",
+ "instance", instance_str,
+ "order_id", order_id,
+ NULL);
+ }
+ else
+ {
+ final_contract_url = GNUNET_strdup (contract_url);
+ }
+
if (NULL != session_id)
{
// If the session id is given, the frontend wants us
@@ -218,7 +232,7 @@ MH_handler_check_payment (struct TMH_RequestHandler *rh,
do_pay:
{
char *url = TMH_make_absolute_backend_url (connection, "trigger-pay",
- "contract_url", contract_url,
+ "contract_url", final_contract_url,
"session_id", session_id,
"h_contract_terms", h_contract_terms_str,
NULL);
@@ -228,6 +242,7 @@ do_pay:
"payment_redirect_url",
url);
GNUNET_free_non_null (h_contract_terms_str);
+ GNUNET_free_non_null (final_contract_url);
GNUNET_free (url);
return ret;
}