summaryrefslogtreecommitdiff
path: root/src/backend/taler-merchant-httpd_check-payment.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/taler-merchant-httpd_check-payment.c')
-rw-r--r--src/backend/taler-merchant-httpd_check-payment.c124
1 files changed, 67 insertions, 57 deletions
diff --git a/src/backend/taler-merchant-httpd_check-payment.c b/src/backend/taler-merchant-httpd_check-payment.c
index f988c541..4199c04a 100644
--- a/src/backend/taler-merchant-httpd_check-payment.c
+++ b/src/backend/taler-merchant-httpd_check-payment.c
@@ -28,7 +28,6 @@
#include "taler-merchant-httpd.h"
#include "taler-merchant-httpd_mhd.h"
#include "taler-merchant-httpd_exchanges.h"
-#include "taler-merchant-httpd_responses.h"
#include "taler-merchant-httpd_check-payment.h"
/**
@@ -217,23 +216,24 @@ send_pay_request (struct CheckPaymentRequestContext *cprc)
GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR != qs);
/* Always report on hard error as well to enable diagnostics */
GNUNET_break (GNUNET_DB_STATUS_HARD_ERROR == qs);
- return TMH_RESPONSE_reply_internal_error (cprc->sc.con,
- TALER_EC_CHECK_PAYMENT_DB_FETCH_ORDER_ERROR,
- "db error fetching pay session info");
+ return TALER_MHD_reply_with_error (cprc->sc.con,
+ MHD_HTTP_INTERNAL_SERVER_ERROR,
+ TALER_EC_CHECK_PAYMENT_DB_FETCH_ORDER_ERROR,
+ "db error fetching pay session info");
}
}
taler_pay_uri = TMH_make_taler_pay_uri (cprc->sc.con,
cprc->order_id,
cprc->session_id,
cprc->mi->id);
- ret = TMH_RESPONSE_reply_json_pack (cprc->sc.con,
- MHD_HTTP_OK,
- "{s:s, s:s, s:b, s:s?}",
- "taler_pay_uri", taler_pay_uri,
- "contract_url", cprc->final_contract_url,
- "paid", 0,
- "already_paid_order_id",
- already_paid_order_id);
+ ret = TALER_MHD_reply_json_pack (cprc->sc.con,
+ MHD_HTTP_OK,
+ "{s:s, s:s, s:b, s:s?}",
+ "taler_pay_uri", taler_pay_uri,
+ "contract_url", cprc->final_contract_url,
+ "paid", 0,
+ "already_paid_order_id",
+ already_paid_order_id);
GNUNET_free (taler_pay_uri);
GNUNET_free_non_null (already_paid_order_id);
return ret;
@@ -267,9 +267,10 @@ parse_contract_terms (struct CheckPaymentRequestContext *cprc)
{
GNUNET_break (0);
cprc->ret
- = TMH_RESPONSE_reply_internal_error (cprc->sc.con,
- TALER_EC_CHECK_PAYMENT_DB_FETCH_CONTRACT_TERMS_ERROR,
- "Merchant database error (contract terms corrupted)");
+ = TALER_MHD_reply_with_error (cprc->sc.con,
+ MHD_HTTP_INTERNAL_SERVER_ERROR,
+ TALER_EC_CHECK_PAYMENT_DB_FETCH_CONTRACT_TERMS_ERROR,
+ "Merchant database error (contract terms corrupted)");
return GNUNET_SYSERR;
}
if (GNUNET_OK !=
@@ -278,9 +279,10 @@ parse_contract_terms (struct CheckPaymentRequestContext *cprc)
{
GNUNET_break (0);
cprc->ret
- = TMH_RESPONSE_reply_internal_error (cprc->sc.con,
- TALER_EC_CHECK_PAYMENT_FAILED_COMPUTE_PROPOSAL_HASH,
- "Failed to hash proposal");
+ = TALER_MHD_reply_with_error (cprc->sc.con,
+ MHD_HTTP_INTERNAL_SERVER_ERROR,
+ TALER_EC_CHECK_PAYMENT_FAILED_COMPUTE_PROPOSAL_HASH,
+ "Failed to hash proposal");
return GNUNET_SYSERR;
}
return GNUNET_OK;
@@ -317,15 +319,17 @@ check_order_and_request_payment (struct CheckPaymentRequestContext *cprc)
GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR != qs);
/* Always report on hard error as well to enable diagnostics */
GNUNET_break (GNUNET_DB_STATUS_HARD_ERROR == qs);
- return TMH_RESPONSE_reply_internal_error (cprc->sc.con,
- TALER_EC_CHECK_PAYMENT_DB_FETCH_ORDER_ERROR,
- "db error fetching order");
+ return TALER_MHD_reply_with_error (cprc->sc.con,
+ MHD_HTTP_INTERNAL_SERVER_ERROR,
+ TALER_EC_CHECK_PAYMENT_DB_FETCH_ORDER_ERROR,
+ "db error fetching order");
}
if (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs)
{
- return TMH_RESPONSE_reply_not_found (cprc->sc.con,
- TALER_EC_CHECK_PAYMENT_ORDER_ID_UNKNOWN,
- "unknown order_id");
+ return TALER_MHD_reply_with_error (cprc->sc.con,
+ MHD_HTTP_NOT_FOUND,
+ TALER_EC_CHECK_PAYMENT_ORDER_ID_UNKNOWN,
+ "unknown order_id");
}
if (GNUNET_OK !=
@@ -380,9 +384,10 @@ MH_handler_check_payment (struct TMH_RequestHandler *rh,
{
/* order_id is required but missing */
GNUNET_break_op (0);
- return TMH_RESPONSE_reply_bad_request (connection,
- TALER_EC_PARAMETER_MISSING,
- "order_id required");
+ return TALER_MHD_reply_with_error (connection,
+ MHD_HTTP_BAD_REQUEST,
+ TALER_EC_PARAMETER_MISSING,
+ "order_id required");
}
cprc->contract_url = MHD_lookup_connection_value (connection,
MHD_GET_ARGUMENT_KIND,
@@ -416,9 +421,10 @@ MH_handler_check_payment (struct TMH_RequestHandler *rh,
&timeout))
{
GNUNET_break_op (0);
- return TMH_RESPONSE_reply_bad_request (connection,
- TALER_EC_PARAMETER_MALFORMED,
- "timeout must be non-negative number");
+ return TALER_MHD_reply_with_error (connection,
+ MHD_HTTP_BAD_REQUEST,
+ TALER_EC_PARAMETER_MALFORMED,
+ "timeout must be non-negative number");
}
cprc->sc.long_poll_timeout
= GNUNET_TIME_relative_to_absolute (GNUNET_TIME_relative_multiply (
@@ -451,9 +457,10 @@ MH_handler_check_payment (struct TMH_RequestHandler *rh,
GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR != qs);
/* Always report on hard error as well to enable diagnostics */
GNUNET_break (GNUNET_DB_STATUS_HARD_ERROR == qs);
- return TMH_RESPONSE_reply_internal_error (connection,
- TALER_EC_CHECK_PAYMENT_DB_FETCH_CONTRACT_TERMS_ERROR,
- "db error fetching contract terms");
+ return TALER_MHD_reply_with_error (connection,
+ MHD_HTTP_INTERNAL_SERVER_ERROR,
+ TALER_EC_CHECK_PAYMENT_DB_FETCH_CONTRACT_TERMS_ERROR,
+ "db error fetching contract terms");
}
if (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs)
@@ -490,9 +497,10 @@ MH_handler_check_payment (struct TMH_RequestHandler *rh,
GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR != qs);
/* Always report on hard error as well to enable diagnostics */
GNUNET_break (GNUNET_DB_STATUS_HARD_ERROR == qs);
- return TMH_RESPONSE_reply_internal_error (connection,
- TALER_EC_CHECK_PAYMENT_DB_FETCH_ORDER_ERROR,
- "db error fetching pay session info");
+ return TALER_MHD_reply_with_error (connection,
+ MHD_HTTP_INTERNAL_SERVER_ERROR,
+ TALER_EC_CHECK_PAYMENT_DB_FETCH_ORDER_ERROR,
+ "db error fetching pay session info");
}
else if (0 == qs)
{
@@ -522,9 +530,10 @@ MH_handler_check_payment (struct TMH_RequestHandler *rh,
{
/* Always report on hard error as well to enable diagnostics */
GNUNET_break (GNUNET_DB_STATUS_HARD_ERROR == qs);
- return TMH_RESPONSE_reply_internal_error (connection,
- TALER_EC_PAY_DB_FETCH_TRANSACTION_ERROR,
- "Merchant database error");
+ return TALER_MHD_reply_with_error (connection,
+ MHD_HTTP_INTERNAL_SERVER_ERROR,
+ TALER_EC_PAY_DB_FETCH_TRANSACTION_ERROR,
+ "Merchant database error");
}
if (0 == qs)
{
@@ -555,24 +564,25 @@ MH_handler_check_payment (struct TMH_RequestHandler *rh,
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Database hard error on refunds_from_contract_terms_hash lookup: %s\n",
GNUNET_h2s (&cprc->h_contract_terms));
- return TMH_RESPONSE_reply_internal_error (connection,
- TALER_EC_PAY_DB_FETCH_TRANSACTION_ERROR,
- "Merchant database error");
+ return TALER_MHD_reply_with_error (connection,
+ MHD_HTTP_INTERNAL_SERVER_ERROR,
+ TALER_EC_PAY_DB_FETCH_TRANSACTION_ERROR,
+ "Merchant database error");
}
if (cprc->refunded)
- return TMH_RESPONSE_reply_json_pack (connection,
- MHD_HTTP_OK,
- "{s:o, s:b, s:b, s:o}",
- "contract_terms", cprc->contract_terms,
- "paid", 1,
- "refunded", cprc->refunded,
- "refund_amount",
- TALER_JSON_from_amount (
- &cprc->refund_amount));
- return TMH_RESPONSE_reply_json_pack (connection,
- MHD_HTTP_OK,
- "{s:o, s:b, s:b }",
- "contract_terms", cprc->contract_terms,
- "paid", 1,
- "refunded", 0);
+ return TALER_MHD_reply_json_pack (connection,
+ MHD_HTTP_OK,
+ "{s:o, s:b, s:b, s:o}",
+ "contract_terms", cprc->contract_terms,
+ "paid", 1,
+ "refunded", cprc->refunded,
+ "refund_amount",
+ TALER_JSON_from_amount (
+ &cprc->refund_amount));
+ return TALER_MHD_reply_json_pack (connection,
+ MHD_HTTP_OK,
+ "{s:o, s:b, s:b }",
+ "contract_terms", cprc->contract_terms,
+ "paid", 1,
+ "refunded", 0);
}