return fee as well

This commit is contained in:
Christian Grothoff 2020-05-05 22:17:16 +02:00
parent 3b7710d2cc
commit af52541eac
No known key found for this signature in database
GPG Key ID: 939E6BE1E29FC3CC
4 changed files with 27 additions and 1 deletions

View File

@ -2198,6 +2198,25 @@ enum TALER_ErrorCode
*/ */
TALER_EC_TIP_PICKUP_UNBLIND_FAILURE = 2812, TALER_EC_TIP_PICKUP_UNBLIND_FAILURE = 2812,
/**
* We failed to fetch contract terms from our merchant database. The
* response is provided with HTTP status code
* #MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_GET_ORDERS_DB_LOOKUP_ERROR = 2900,
/**
* We failed to find the contract terms from our merchant database.
* The response is provided with HTTP status code #MHD_HTTP_NOT_FOUND.
*/
TALER_EC_GET_ORDERS_ID_UNKNOWN = 2901,
/**
* The contract hash provided by the wallet does not match the order.
* The response is provided with HTTP status code #MHD_HTTP_FORBIDDEN.
*/
TALER_EC_GET_ORDERS_WRONG_CONTRACT = 2902,
/** /**
* We failed to contract terms from our merchant database. The * We failed to contract terms from our merchant database. The
* response is provided with HTTP status code * response is provided with HTTP status code

View File

@ -851,6 +851,7 @@ struct TALER_EXCHANGE_RefundHandle;
* *
* @param cls closure * @param cls closure
* @param hr HTTP response data * @param hr HTTP response data
* @param refund_fee the refund fee the exchange charged us
* @param sign_key exchange key used to sign @a obj, or NULL * @param sign_key exchange key used to sign @a obj, or NULL
* @param signature the actual signature, or NULL on error * @param signature the actual signature, or NULL on error
*/ */
@ -858,6 +859,7 @@ typedef void
(*TALER_EXCHANGE_RefundCallback) ( (*TALER_EXCHANGE_RefundCallback) (
void *cls, void *cls,
const struct TALER_EXCHANGE_HttpResponse *hr, const struct TALER_EXCHANGE_HttpResponse *hr,
const struct TALER_Amount *refund_fee,
const struct TALER_ExchangePublicKeyP *sign_key, const struct TALER_ExchangePublicKeyP *sign_key,
const struct TALER_ExchangeSignatureP *signature); const struct TALER_ExchangeSignatureP *signature);

View File

@ -92,7 +92,6 @@ verify_refund_signature_ok (struct TALER_EXCHANGE_RefundHandle *rh,
const json_t *json, const json_t *json,
struct TALER_ExchangePublicKeyP *exchange_pub, struct TALER_ExchangePublicKeyP *exchange_pub,
struct TALER_ExchangeSignatureP *exchange_sig) struct TALER_ExchangeSignatureP *exchange_sig)
{ {
const struct TALER_EXCHANGE_Keys *key_state; const struct TALER_EXCHANGE_Keys *key_state;
struct GNUNET_JSON_Specification spec[] = { struct GNUNET_JSON_Specification spec[] = {
@ -149,6 +148,7 @@ handle_refund_finished (void *cls,
struct TALER_ExchangeSignatureP exchange_sig; struct TALER_ExchangeSignatureP exchange_sig;
struct TALER_ExchangePublicKeyP *ep = NULL; struct TALER_ExchangePublicKeyP *ep = NULL;
struct TALER_ExchangeSignatureP *es = NULL; struct TALER_ExchangeSignatureP *es = NULL;
struct TALER_Amount *rf = NULL;
const json_t *j = response; const json_t *j = response;
struct TALER_EXCHANGE_HttpResponse hr = { struct TALER_EXCHANGE_HttpResponse hr = {
.reply = j, .reply = j,
@ -176,6 +176,7 @@ handle_refund_finished (void *cls,
{ {
ep = &exchange_pub; ep = &exchange_pub;
es = &exchange_sig; es = &exchange_sig;
rf = &rh->depconf.refund_fee;
} }
break; break;
case MHD_HTTP_BAD_REQUEST: case MHD_HTTP_BAD_REQUEST:
@ -234,6 +235,7 @@ handle_refund_finished (void *cls,
} }
rh->cb (rh->cb_cls, rh->cb (rh->cb_cls,
&hr, &hr,
rf,
ep, ep,
es); es);
TALER_EXCHANGE_refund_cancel (rh); TALER_EXCHANGE_refund_cancel (rh);

View File

@ -76,6 +76,7 @@ struct RefundState
* *
* @param cls closure * @param cls closure
* @param hr HTTP response details * @param hr HTTP response details
* @param refund_fee the refund fee the exchange charged
* @param exchange_pub public key the exchange * @param exchange_pub public key the exchange
* used for signing @a obj. * used for signing @a obj.
* @param exchange_sig actual signature confirming the refund * @param exchange_sig actual signature confirming the refund
@ -83,6 +84,7 @@ struct RefundState
static void static void
refund_cb (void *cls, refund_cb (void *cls,
const struct TALER_EXCHANGE_HttpResponse *hr, const struct TALER_EXCHANGE_HttpResponse *hr,
const struct TALER_Amount *refund_fee,
const struct TALER_ExchangePublicKeyP *exchange_pub, const struct TALER_ExchangePublicKeyP *exchange_pub,
const struct TALER_ExchangeSignatureP *exchange_sig) const struct TALER_ExchangeSignatureP *exchange_sig)
{ {
@ -90,6 +92,7 @@ refund_cb (void *cls,
struct RefundState *rs = cls; struct RefundState *rs = cls;
struct TALER_TESTING_Command *refund_cmd; struct TALER_TESTING_Command *refund_cmd;
(void) refund_fee;
refund_cmd = &rs->is->commands[rs->is->ip]; refund_cmd = &rs->is->commands[rs->is->ip];
rs->rh = NULL; rs->rh = NULL;
if (rs->expected_response_code != hr->http_status) if (rs->expected_response_code != hr->http_status)