commit 8cae896e4df6a41e46e04ee12bd67a619928b74a
parent c2b5ac518c05250e15ce720c131fb2814f7fa3eb
Author: Christian Grothoff <christian@grothoff.org>
Date: Sun, 22 Mar 2026 15:52:40 +0100
adapt to merchant API change
Diffstat:
2 files changed, 105 insertions(+), 79 deletions(-)
diff --git a/src/sync/sync-httpd2_backup-post.c b/src/sync/sync-httpd2_backup-post.c
@@ -97,12 +97,12 @@ struct BackupContext
/**
* Used while we are awaiting proposal creation.
*/
- struct TALER_MERCHANT_PostOrdersHandle *po;
+ struct TALER_MERCHANT_PostPrivateOrdersHandle *po;
/**
* Used while we are waiting payment.
*/
- struct TALER_MERCHANT_OrderMerchantGetHandle *omgh;
+ struct TALER_MERCHANT_GetPrivateOrderHandle *omgh;
/**
* Order under which the client promised payment, or NULL.
@@ -154,12 +154,12 @@ SH_resume_all_bc ()
MHD_request_resume (bc->request);
if (NULL != bc->po)
{
- TALER_MERCHANT_orders_post_cancel (bc->po);
+ TALER_MERCHANT_post_private_orders_cancel (bc->po);
bc->po = NULL;
}
if (NULL != bc->omgh)
{
- TALER_MERCHANT_merchant_order_get_cancel (bc->omgh);
+ TALER_MERCHANT_get_private_order_cancel (bc->omgh);
bc->omgh = NULL;
}
}
@@ -182,7 +182,15 @@ cleanup_ctx (void *cls,
GNUNET_assert (cls == request_app_context);
if (NULL != bc->po)
- TALER_MERCHANT_orders_post_cancel (bc->po);
+ {
+ TALER_MERCHANT_post_private_orders_cancel (bc->po);
+ bc->po = NULL;
+ }
+ if (NULL != bc->omgh)
+ {
+ TALER_MERCHANT_get_private_order_cancel (bc->omgh);
+ bc->omgh = NULL;
+ }
GNUNET_free (bc->existing_order_id);
GNUNET_free (bc);
}
@@ -274,8 +282,9 @@ make_payment_request (const char *order_id,
* @param por response details
*/
static void
-proposal_cb (void *cls,
- const struct TALER_MERCHANT_PostOrdersReply *por)
+proposal_cb (
+ void *cls,
+ const struct TALER_MERCHANT_PostPrivateOrdersResponse *por)
{
struct BackupContext *bc = cls;
enum SYNC_DB_QueryStatus qs;
@@ -377,8 +386,9 @@ ongoing_payment_cb (void *cls,
* @param osr order status
*/
static void
-check_payment_cb (void *cls,
- const struct TALER_MERCHANT_OrderStatusResponse *osr)
+check_payment_cb (
+ void *cls,
+ const struct TALER_MERCHANT_GetPrivateOrderResponse *osr)
{
struct BackupContext *bc = cls;
const struct TALER_MERCHANT_HttpResponse *hr = &osr->hr;
@@ -482,14 +492,19 @@ await_payment (struct BackupContext *bc,
bc_tail,
bc);
bc->order_id = order_id;
- bc->omgh = TALER_MERCHANT_merchant_order_get (SH_ctx,
- SH_backend_url,
- order_id,
- NULL /* our payments are NOT session-bound */
- ,
- timeout,
- &check_payment_cb,
- bc);
+ bc->omgh = TALER_MERCHANT_get_private_order_create (
+ SH_ctx,
+ SH_backend_url,
+ order_id);
+ GNUNET_assert (GNUNET_OK ==
+ TALER_MERCHANT_get_private_order_set_options (
+ bc->omgh,
+ TALER_MERCHANT_get_private_order_option_timeout (timeout)));
+ GNUNET_assert (TALER_EC_NONE ==
+ TALER_MERCHANT_get_private_order_start (
+ bc->omgh,
+ &check_payment_cb,
+ bc));
SH_trigger_curl ();
}
@@ -511,9 +526,6 @@ begin_payment (struct BackupContext *bc,
int pay_req,
bool *suspend)
{
- static const char *no_uuids[1] = { NULL };
- json_t *order;
-
*suspend = false;
if (! bc->force_fresh_order)
{
@@ -548,27 +560,27 @@ begin_payment (struct BackupContext *bc,
"Suspending request while creating order at `%s'\n",
SH_backend_url);
*suspend = true;
- order = GNUNET_JSON_PACK (
- TALER_JSON_pack_amount ("amount",
- &SH_annual_fee),
- GNUNET_JSON_pack_string ("summary",
- "annual fee for sync service"),
- GNUNET_JSON_pack_string ("fulfillment_url",
- SH_fulfillment_url));
- bc->po = TALER_MERCHANT_orders_post2 (SH_ctx,
- SH_backend_url,
- order,
- GNUNET_TIME_UNIT_ZERO,
- NULL, /* no payment target */
- 0,
- NULL, /* no inventory products */
- 0,
- no_uuids, /* no uuids */
- false, /* do NOT require claim token */
- &proposal_cb,
- bc);
+ {
+ json_t *order;
+
+ order = GNUNET_JSON_PACK (
+ TALER_JSON_pack_amount ("amount",
+ &SH_annual_fee),
+ GNUNET_JSON_pack_string ("summary",
+ "annual fee for sync service"),
+ GNUNET_JSON_pack_string ("fulfillment_url",
+ SH_fulfillment_url));
+ bc->po = TALER_MERCHANT_post_private_orders_create (SH_ctx,
+ SH_backend_url,
+ order);
+ json_decref (order);
+ }
+ GNUNET_assert (TALER_EC_NONE ==
+ TALER_MERCHANT_post_private_orders_start (
+ bc->po,
+ &proposal_cb,
+ bc));
SH_trigger_curl ();
- json_decref (order);
return NULL;
}
diff --git a/src/sync/sync-httpd_backup_post.c b/src/sync/sync-httpd_backup_post.c
@@ -100,12 +100,12 @@ struct BackupContext
/**
* Used while we are awaiting proposal creation.
*/
- struct TALER_MERCHANT_PostOrdersHandle *po;
+ struct TALER_MERCHANT_PostPrivateOrdersHandle *po;
/**
* Used while we are waiting payment.
*/
- struct TALER_MERCHANT_OrderMerchantGetHandle *omgh;
+ struct TALER_MERCHANT_GetPrivateOrderHandle *omgh;
/**
* HTTP response code to use on resume, if non-NULL.
@@ -178,12 +178,12 @@ SH_resume_all_bc ()
MHD_resume_connection (bc->con);
if (NULL != bc->po)
{
- TALER_MERCHANT_orders_post_cancel (bc->po);
+ TALER_MERCHANT_post_private_orders_cancel (bc->po);
bc->po = NULL;
}
if (NULL != bc->omgh)
{
- TALER_MERCHANT_merchant_order_get_cancel (bc->omgh);
+ TALER_MERCHANT_get_private_order_cancel (bc->omgh);
bc->omgh = NULL;
}
}
@@ -201,11 +201,22 @@ cleanup_ctx (struct TM_HandlerContext *hc)
struct BackupContext *bc = (struct BackupContext *) hc;
if (NULL != bc->po)
- TALER_MERCHANT_orders_post_cancel (bc->po);
+ {
+ TALER_MERCHANT_post_private_orders_cancel (bc->po);
+ bc->po = NULL;
+ }
+ if (NULL != bc->omgh)
+ {
+ TALER_MERCHANT_get_private_order_cancel (bc->omgh);
+ bc->omgh = NULL;
+ }
if (NULL != bc->hash_ctx)
GNUNET_CRYPTO_hash_context_abort (bc->hash_ctx);
if (NULL != bc->resp)
+ {
MHD_destroy_response (bc->resp);
+ bc->resp = NULL;
+ }
GNUNET_free (bc->existing_order_id);
GNUNET_free (bc->upload);
GNUNET_free (bc);
@@ -298,8 +309,9 @@ make_payment_request (const char *order_id,
* @param por response details
*/
static void
-proposal_cb (void *cls,
- const struct TALER_MERCHANT_PostOrdersReply *por)
+proposal_cb (
+ void *cls,
+ const struct TALER_MERCHANT_PostPrivateOrdersResponse *por)
{
struct BackupContext *bc = cls;
enum SYNC_DB_QueryStatus qs;
@@ -404,7 +416,7 @@ ongoing_payment_cb (void *cls,
*/
static void
check_payment_cb (void *cls,
- const struct TALER_MERCHANT_OrderStatusResponse *osr)
+ const struct TALER_MERCHANT_GetPrivateOrderResponse *osr)
{
struct BackupContext *bc = cls;
const struct TALER_MERCHANT_HttpResponse *hr = &osr->hr;
@@ -513,14 +525,19 @@ await_payment (struct BackupContext *bc,
bc);
MHD_suspend_connection (bc->con);
bc->order_id = order_id;
- bc->omgh = TALER_MERCHANT_merchant_order_get (SH_ctx,
- SH_backend_url,
- order_id,
- NULL /* our payments are NOT session-bound */
- ,
- timeout,
- &check_payment_cb,
- bc);
+ bc->omgh = TALER_MERCHANT_get_private_order_create (
+ SH_ctx,
+ SH_backend_url,
+ order_id);
+ GNUNET_assert (GNUNET_OK ==
+ TALER_MERCHANT_get_private_order_set_options (
+ bc->omgh,
+ TALER_MERCHANT_get_private_order_option_timeout (timeout)));
+ GNUNET_assert (TALER_EC_NONE ==
+ TALER_MERCHANT_get_private_order_start (
+ bc->omgh,
+ &check_payment_cb,
+ bc));
SH_trigger_curl ();
}
@@ -540,9 +557,6 @@ static MHD_RESULT
begin_payment (struct BackupContext *bc,
int pay_req)
{
- static const char *no_uuids[1] = { NULL };
- json_t *order;
-
if (! bc->force_fresh_order)
{
enum GNUNET_DB_QueryStatus qs;
@@ -583,27 +597,27 @@ begin_payment (struct BackupContext *bc,
"Suspending connection while creating order at `%s'\n",
SH_backend_url);
MHD_suspend_connection (bc->con);
- order = GNUNET_JSON_PACK (
- TALER_JSON_pack_amount ("amount",
- &SH_annual_fee),
- GNUNET_JSON_pack_string ("summary",
- "annual fee for sync service"),
- GNUNET_JSON_pack_string ("fulfillment_url",
- SH_fulfillment_url));
- bc->po = TALER_MERCHANT_orders_post2 (SH_ctx,
- SH_backend_url,
- order,
- GNUNET_TIME_UNIT_ZERO,
- NULL, /* no payment target */
- 0,
- NULL, /* no inventory products */
- 0,
- no_uuids, /* no uuids */
- false, /* do NOT require claim token */
- &proposal_cb,
- bc);
+ {
+ json_t *order;
+
+ order = GNUNET_JSON_PACK (
+ TALER_JSON_pack_amount ("amount",
+ &SH_annual_fee),
+ GNUNET_JSON_pack_string ("summary",
+ "annual fee for sync service"),
+ GNUNET_JSON_pack_string ("fulfillment_url",
+ SH_fulfillment_url));
+ bc->po = TALER_MERCHANT_post_private_orders_create (SH_ctx,
+ SH_backend_url,
+ order);
+ json_decref (order);
+ }
+ GNUNET_assert (TALER_EC_NONE ==
+ TALER_MERCHANT_post_private_orders_start (
+ bc->po,
+ &proposal_cb,
+ bc));
SH_trigger_curl ();
- json_decref (order);
return MHD_YES;
}