merchant

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

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:
Msrc/lib/taler_merchant_pay_service.c | 69+++++++++++++--------------------------------------------------------
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; } }