merchant

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

taler-merchant-httpd_post-orders-ORDER_ID-claim.h (2936B)


      1 /*
      2   This file is part of TALER
      3   (C) 2014, 2015, 2020 Taler Systems SA
      4 
      5   TALER is free software; you can redistribute it and/or modify it under the
      6   terms of the GNU General Public License as published by the Free Software
      7   Foundation; either version 3, or (at your option) any later version.
      8 
      9   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
     10   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     11   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     12 
     13   You should have received a copy of the GNU General Public License along with
     14   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
     15 */
     16 /**
     17  * @file src/backend/taler-merchant-httpd_post-orders-ORDER_ID-claim.h
     18  * @brief headers for POST /orders/$ID/claim handler
     19  * @author Marcello Stanisci
     20  * @author Christian Grothoff
     21  */
     22 #ifndef TALER_MERCHANT_HTTPD_POST_ORDERS_ID_CLAIM_H
     23 #define TALER_MERCHANT_HTTPD_POST_ORDERS_ID_CLAIM_H
     24 #include <microhttpd.h>
     25 #include "taler-merchant-httpd.h"
     26 
     27 /**
     28  * Manage a POST /orders/$ID/claim request.  Allows the client to
     29  * claim the order (unless already claims) and creates the respective
     30  * contract.  Returns the contract terms.
     31  *
     32  * @param rh context of the handler
     33  * @param connection the MHD connection to handle
     34  * @param[in,out] hc context with further information about the request
     35  * @return MHD result code
     36  */
     37 enum MHD_Result
     38 TMH_post_orders_ID_claim (const struct TMH_RequestHandler *rh,
     39                           struct MHD_Connection *connection,
     40                           struct TMH_HandlerContext *hc);
     41 
     42 
     43 /**
     44  * Run the transaction that claims @a order_id for @a nonce, that is
     45  * the very same claiming the handler above performs.  Exposed so that
     46  * other handlers can claim an order without going through HTTP.
     47  *
     48  * @param hc handler context with information about instance to claim order at
     49  * @param order_id order to claim
     50  * @param nonce nonce to use for the claim
     51  * @param claim_token the token that should be used to verify the claim;
     52  *        a caller that is the merchant itself can read the order's own
     53  *        claim token from the database and pass that
     54  * @param[out] contract_terms set to the resulting contract terms
     55  *             (for any non-negative result)
     56  * @return transaction status code
     57  *         #GNUNET_DB_STATUS_SUCCESS_NO_RESULTS if the order was claimed by a
     58  *         different nonce or with a wrong claim token (@a contract_terms set
     59  *         to non-NULL) OR if the order is unknown (@a contract_terms is NULL)
     60  *         #GNUNET_DB_STATUS_SUCCESS_ONE_RESULT if the order was claimed
     61  */
     62 enum GNUNET_DB_QueryStatus
     63 TMH_claim_order (struct TMH_HandlerContext *hc,
     64                  const char *order_id,
     65                  const struct GNUNET_CRYPTO_EddsaPublicKey *nonce,
     66                  const struct TALER_ClaimTokenP *claim_token,
     67                  json_t **contract_terms);
     68 
     69 #endif