summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/taler-merchant-httpd_post-orders-ID-paid.c18
-rw-r--r--src/backend/taler-merchant-httpd_post-orders-ID-pay.c14
-rw-r--r--src/lib/merchant_api_post_order_pay.c12
3 files changed, 13 insertions, 31 deletions
diff --git a/src/backend/taler-merchant-httpd_post-orders-ID-paid.c b/src/backend/taler-merchant-httpd_post-orders-ID-paid.c
index 0e7ea59e..bc8ccfd9 100644
--- a/src/backend/taler-merchant-httpd_post-orders-ID-paid.c
+++ b/src/backend/taler-merchant-httpd_post-orders-ID-paid.c
@@ -67,13 +67,10 @@ TMH_post_orders_ID_paid (const struct TMH_RequestHandler *rh,
struct MHD_Connection *connection,
struct TMH_HandlerContext *hc)
{
- struct TALER_PaymentResponsePS pr = {
- .purpose.purpose = htonl (TALER_SIGNATURE_MERCHANT_PAYMENT_OK),
- .purpose.size = htonl (sizeof (pr))
- };
const char *order_id = hc->infix;
struct TALER_MerchantSignatureP merchant_sig;
const char *session_id;
+ struct TALER_PrivateContractHashP hct;
json_t *contract_terms;
const char *fulfillment_url;
enum GNUNET_DB_QueryStatus qs;
@@ -83,7 +80,7 @@ TMH_post_orders_ID_paid (const struct TMH_RequestHandler *rh,
GNUNET_JSON_spec_fixed_auto ("sig",
&merchant_sig),
GNUNET_JSON_spec_fixed_auto ("h_contract",
- &pr.h_contract_terms),
+ &hct),
GNUNET_JSON_spec_string ("session_id",
&session_id),
GNUNET_JSON_spec_end ()
@@ -104,10 +101,9 @@ TMH_post_orders_ID_paid (const struct TMH_RequestHandler *rh,
if (GNUNET_OK !=
- GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_MERCHANT_PAYMENT_OK,
- &pr,
- &merchant_sig.eddsa_sig,
- &hc->instance->merchant_pub.eddsa_pub))
+ TALER_merchant_pay_verify (&hct,
+ &hc->instance->merchant_pub,
+ &merchant_sig))
{
GNUNET_break_op (0);
return TALER_MHD_reply_with_error (connection,
@@ -164,7 +160,7 @@ TMH_post_orders_ID_paid (const struct TMH_RequestHandler *rh,
TALER_EC_GENERIC_FAILED_COMPUTE_JSON_HASH,
NULL);
}
- if (0 != GNUNET_memcmp (&pr.h_contract_terms,
+ if (0 != GNUNET_memcmp (&hct,
&h_contract_terms))
{
json_decref (contract_terms);
@@ -186,7 +182,7 @@ TMH_post_orders_ID_paid (const struct TMH_RequestHandler *rh,
fulfillment_url);
qs = TMH_db->mark_contract_paid (TMH_db->cls,
hc->instance->settings.id,
- &pr.h_contract_terms,
+ &hct,
session_id);
/* If the order was paid already, we get qs == 0. */
if (0 > qs)
diff --git a/src/backend/taler-merchant-httpd_post-orders-ID-pay.c b/src/backend/taler-merchant-httpd_post-orders-ID-pay.c
index 10dca3d9..375f0930 100644
--- a/src/backend/taler-merchant-httpd_post-orders-ID-pay.c
+++ b/src/backend/taler-merchant-httpd_post-orders-ID-pay.c
@@ -1927,17 +1927,9 @@ execute_pay_transaction (struct PayContext *pc)
/* Sign on our end (as the payment did go through, even if it may
have been refunded already) */
- {
- struct TALER_PaymentResponsePS mr = {
- .purpose.purpose = htonl (TALER_SIGNATURE_MERCHANT_PAYMENT_OK),
- .purpose.size = htonl (sizeof (mr)),
- .h_contract_terms = pc->h_contract_terms
- };
-
- GNUNET_CRYPTO_eddsa_sign (&pc->hc->instance->merchant_priv.eddsa_priv,
- &mr,
- &sig);
- }
+ TALER_merchant_pay_sign (&pc->h_contract_terms,
+ &pc->hc->instance->merchant_priv,
+ &sig);
/* Build the response */
resume_pay_with_response (
diff --git a/src/lib/merchant_api_post_order_pay.c b/src/lib/merchant_api_post_order_pay.c
index fc188a98..c246a1d4 100644
--- a/src/lib/merchant_api_post_order_pay.c
+++ b/src/lib/merchant_api_post_order_pay.c
@@ -265,11 +265,6 @@ handle_pay_finished (void *cls,
if (oph->am_wallet)
{
/* Here we can (and should) verify the merchant's signature */
- struct TALER_PaymentResponsePS pr = {
- .purpose.purpose = htonl (TALER_SIGNATURE_MERCHANT_PAYMENT_OK),
- .purpose.size = htonl (sizeof (pr)),
- .h_contract_terms = oph->h_contract_terms
- };
struct GNUNET_JSON_Specification spec[] = {
GNUNET_JSON_spec_fixed_auto ("sig",
&merchant_sig),
@@ -289,10 +284,9 @@ handle_pay_finished (void *cls,
}
if (GNUNET_OK !=
- GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_MERCHANT_PAYMENT_OK,
- &pr,
- &merchant_sig.eddsa_sig,
- &oph->merchant_pub.eddsa_pub))
+ TALER_merchant_pay_verify (&oph->h_contract_terms,
+ &oph->merchant_pub,
+ &merchant_sig))
{
GNUNET_break_op (0);
hr.ec = TALER_EC_GENERIC_INVALID_RESPONSE;