From 6df3227c241e360b84accabff03a8d316ad2af21 Mon Sep 17 00:00:00 2001 From: Marcello Stanisci Date: Mon, 23 Jul 2018 14:32:20 +0200 Subject: Wire-plugin interface. Add methods signatures to register merchants at banking institutions. --- src/include/taler_exchangedb_plugin.h | 18 +++++++++------- src/include/taler_wire_plugin.h | 39 +++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 7 deletions(-) (limited to 'src/include') diff --git a/src/include/taler_exchangedb_plugin.h b/src/include/taler_exchangedb_plugin.h index 2b2d43074..6e5947377 100644 --- a/src/include/taler_exchangedb_plugin.h +++ b/src/include/taler_exchangedb_plugin.h @@ -716,13 +716,17 @@ typedef int * Callback used to process data of a merchant under KYC monitoring. * * @param cls closure - * @param payto_url payto URL of this particular merchant (bank account) - * @param general_id general identificator valid at the KYC-caring institution - * @param kyc_checked status of KYC check: if GNUNET_OK, the merchant was - * checked at least once, never otherwise. - * @param merchant_serial_id serial ID identifying this merchant (bank - * account) into the database system; it helps making more efficient - * queries instead of the payto URL. + * @param payto_url payto URL of this particular + * merchant (bank account) + * @param general_id general identificator valid + * at the KYC-caring institution + * @param kyc_checked status of KYC check: + * if GNUNET_OK, the merchant was checked at least once, + * never otherwise. + * @param merchant_serial_id serial ID identifying + * this merchant (bank account) into the database system; + * it helps making more efficient queries than the payto + * URL. */ typedef void (*TALER_EXCHANGEDB_KycStatusCallback)(void *cls, diff --git a/src/include/taler_wire_plugin.h b/src/include/taler_wire_plugin.h index 2758d2d2e..ddbb725a7 100644 --- a/src/include/taler_wire_plugin.h +++ b/src/include/taler_wire_plugin.h @@ -40,6 +40,17 @@ typedef void size_t buf_size); +/** + * Callback to process a merchant registration outcome. + * + * @param cls closure + * @param status GNUNET_OK if the registration succeeded, + * GNUNET_NO otherwise. + */ +typedef void +(*TALER_WIRE_MerchantRegisterCallback) (void *cls, + unsigned int status); + /** * Details about a valid wire transfer to the exchange. * It is the plugin's responsibility to filter and undo @@ -356,6 +367,34 @@ struct TALER_WIRE_Plugin struct TALER_WIRE_RejectHandle *rh); + /** + * Ask the plugin which data is needed to register the merchant + * into the banking institution. + * + * @param enc[out] where to store the JSON formatted list of + * needed values. The merchant will use this list to + * show a HTML form to the business in order to collect that data. + * This value will have to be freed by the caller. + * @return GNUNET_OK upon successful `enc' allocation and definition, + * GNUNET_NO if _no_ data is needed at all, GNUNET_SYSERR + * for all the other cases. + */ + int + (*merchant_data)(void); + + /** + * Send data to the banking institution in order to get the + * merchant registered. + * + * @param cls closure + * @param body subset of information to be sent to the bank. + * The plugin implementation is free to modify this value. + * @param mrcb Callback to process the outcome. + */ + struct TALER_WIRE_MerchantRegisterHandle * + (*merchant_register)(void *cls, + const char *body, + TALER_WIRE_MerchantRegisterCallback mrcb); }; -- cgit v1.2.3