Trigger /refund currency missmatch the right way.

This commit is contained in:
Marcello Stanisci 2018-05-17 14:30:02 +02:00
parent e94e8c34c5
commit 2fff7d8f3a
No known key found for this signature in database
GPG Key ID: 8D526861953F4C0F
3 changed files with 15 additions and 14 deletions

View File

@ -180,6 +180,10 @@ handle_refund_finished (void *cls,
/* Kind of normal: the money was already sent to the merchant
(it was too late for the refund). */
break;
case MHD_HTTP_PRECONDITION_FAILED:
/* Client request was inconsistent; might be a currency missmatch
problem. */
break;
case MHD_HTTP_INTERNAL_SERVER_ERROR:
/* Server had an internal issue; we should retry, but this API
leaves this to the application */

View File

@ -201,7 +201,7 @@ run (void *cls,
/* Next chunk, refund conflicts
(contract hash missmatch [!],
original deposit does not exist,
original deposit does not exist V,
currency missmatch) V;
'refund_transaction()' has many of the relevant cases;
@ -235,18 +235,11 @@ run (void *cls,
"EUR:5",
MHD_HTTP_OK),
TALER_TESTING_cmd_modify_object_ul
("hack-currency",
CONFIG_FILE,
/* Will make currency missmatch */
"refund_amount",
"USD:5"),
TALER_TESTING_cmd_refund
("refund-currency-missmatch",
MHD_HTTP_BAD_REQUEST,
"EUR:5",
"EUR:0.01",
MHD_HTTP_PRECONDITION_FAILED,
"USD:5",
"USD:0.01",
"deposit-refund-1"),
TALER_TESTING_cmd_refund
@ -291,7 +284,7 @@ run (void *cls,
TALER_TESTING_cmd_refund
("refund-deposit-not-found",
MHD_HTTP_BAD_REQUEST,
MHD_HTTP_NOT_FOUND,
"EUR:5",
"EUR:0.01",
"deposit-refund-to-fail"),

View File

@ -227,8 +227,12 @@ refund_run (void *cls,
}
rs->rh = TALER_EXCHANGE_refund
(rs->exchange, &refund_amount, &refund_fee, &h_contract_terms,
&coin, rs->refund_transaction_id,
(rs->exchange,
&refund_amount,
&refund_fee,
&h_contract_terms,
&coin,
rs->refund_transaction_id,
(const struct TALER_MerchantPrivateKeyP *) merchant_priv,
&refund_cb, rs);