commit 742922dc724660a8a1dc2a7c69e02c23acb0d4d8
parent 7f4dd8a370a4917d2a5a8baf2542fec23c9102ef
Author: bohdan-potuzhnyi <bohdan.potuzhnyi@gmail.com>
Date: Mon, 23 Jun 2025 12:01:52 +0200
adding forgotten session_id
Diffstat:
1 file changed, 13 insertions(+), 56 deletions(-)
diff --git a/src/lib/taler_merchant_pay_service.c b/src/lib/taler_merchant_pay_service.c
@@ -58,6 +58,7 @@ struct TALER_MERCHANT_OrderPayHandle
/* mandatory scalars: */
char *merchant_url;
char *order_id;
+ char *session_id;
struct GNUNET_TIME_Timestamp timestamp;
struct GNUNET_TIME_Timestamp refund_deadline;
@@ -420,6 +421,7 @@ TALER_MERCHANT_order_pay_cancel1 (struct TALER_MERCHANT_OrderPayHandle *ph)
if (ph->wallet_data) json_decref (ph->wallet_data);
GNUNET_free (ph->url);
GNUNET_free (ph->merchant_url);
+ GNUNET_free (ph->session_id);
GNUNET_free (ph->order_id);
GNUNET_free (ph);
}
@@ -454,6 +456,17 @@ TALER_MERCHANT_order_pay_set_options (struct TALER_MERCHANT_OrderPayHandle *ph,
ph->merchant_url = GNUNET_strdup (o->details.merchant_url);
break;
+ case TALER_MERCHANT_OrderPayOptionType_SESSION_ID:
+ ph->session_id = GNUNET_strdup (o->details.session_id);
+ /* add straight into JSON body */
+ {
+ json_t *js = GNUNET_JSON_PACK (
+ GNUNET_JSON_pack_string ("session_id",
+ o->details.session_id)
+ );
+ return store_json_option (ph, o->ot, js);
+ }
+
case TALER_MERCHANT_OrderPayOptionType_ORDER_ID:
ph->order_id = GNUNET_strdup (o->details.order_id);
break;
@@ -599,60 +612,6 @@ TALER_MERCHANT_order_pay_set_options (struct TALER_MERCHANT_OrderPayHandle *ph,
return TALER_MERCHANT_OPOEC_OK;
}
-
-static enum TALER_MERCHANT_OrderPayOptionErrorCode
-fire_request (struct TALER_MERCHANT_OrderPayHandle *ph)
-{
- {
- char *path;
-
- GNUNET_asprintf (&path,
- "orders/%s/pay",
- ph->order_id);
- ph->url = TALER_url_join (ph->merchant_url,
- path,
- NULL);
- GNUNET_free (path);
- }
- if (NULL == ph->url)
- {
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- "Could not construct request URL.\n");
- json_decref (ph->body);
- GNUNET_free (ph);
- return TALER_MERCHANT_OPOEC_INVALID_VALUE;
- }
-
-// ph->num_coins = num_coins;
-// ph->coins = GNUNET_new_array (num_coins,
-// struct TALER_MERCHANT_PaidCoin);
-// GNUNET_memcpy (ph->coins,
-// coins,
-// num_coins * sizeof (struct TALER_MERCHANT_PaidCoin));
-
- CURL *eh = TALER_MERCHANT_curl_easy_get_ (ph->url);
- if (GNUNET_OK !=
- TALER_curl_easy_post (&ph->post_ctx,
- eh,
- ph->body))
- {
- GNUNET_break (0);
- curl_easy_cleanup (eh);
- json_decref (ph->body);
- GNUNET_free (ph->url);
- GNUNET_free (ph);
- //TODO: Replace with proper error code
- return TALER_MERCHANT_OPOEC_INVALID_VALUE;
- }
- json_decref (ph->body);
- ph->job = GNUNET_CURL_job_add2 (ph->ctx,
- eh,
- ph->post_ctx.headers,
- &handle_finished,
- ph);
- return TALER_MERCHANT_OPOEC_OK;
-}
-
enum TALER_MERCHANT_OrderPayOptionErrorCode
TALER_MERCHANT_order_pay_start (struct TALER_MERCHANT_OrderPayHandle *ph)
{
@@ -780,7 +739,6 @@ TALER_MERCHANT_order_pay_start (struct TALER_MERCHANT_OrderPayHandle *ph)
/* --- post the request --------------------------------------------------- */
{
- /* BEGIN INLINE FIRE REQUEST (was fire_request()) */
char *path;
GNUNET_asprintf (&path,
"orders/%s/pay",
@@ -819,7 +777,6 @@ TALER_MERCHANT_order_pay_start (struct TALER_MERCHANT_OrderPayHandle *ph)
ph->post_ctx.headers,
&handle_finished,
ph);
- /* END INLINE FIRE REQUEST */
return TALER_MERCHANT_OPOEC_OK;
}
}