def generate_access_token(*values): """ Generate an access token based on the provided values. The token allows to later verify the validity of a request, based on a given set of values. These will generally include the partner id, amount, currency id, transaction id or transaction reference. All values must be convertible to a string. :param list values: The values to use for the generation of the token :return: The generated access token :rtype: str """ token_str = '|'.join(str(val) for val in values) access_token = hmac_tool(request.env(su=True), 'generate_access_token', token_str) return access_token
def _generate_test_access_token(self, *values): """ Generate an access token based on the provided values for testing purposes. This methods returns a token identical to that generated by payment.utils.generate_access_token but uses the test class environment rather than the environment of odoo.http.request. See payment.utils.generate_access_token for additional details. :param list values: The values to use for the generation of the token :return: The generated access token :rtype: str """ token_str = '|'.join(str(val) for val in values) access_token = hmac_tool(self.env(su=True), 'generate_access_token', token_str) return access_token
def _generate_callback_hash(self, callback_model_id, callback_res_id, callback_method): """ Return the hash for the callback on the transaction. :param int callback_model_id: The model on which the callback method is defined, as a `res.model` id :param int callback_res_id: The record on which the callback method must be called, as an id of the callback model :param str callback_method: The name of the callback method :return: The callback hash :rtype: str """ if callback_model_id and callback_res_id and callback_method: model_name = self.env['ir.model'].sudo().browse(callback_model_id).model token = f'{model_name}|{callback_res_id}|{callback_method}' callback_hash = hmac_tool(self.env(su=True), 'generate_callback_hash', token) return callback_hash return None