diff --git a/addons/payment_razorpay/i18n/payment_razorpay.pot b/addons/payment_razorpay/i18n/payment_razorpay.pot new file mode 100644 index 00000000000..e6c4be3270b --- /dev/null +++ b/addons/payment_razorpay/i18n/payment_razorpay.pot @@ -0,0 +1,21 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-01-02 10:49+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: payment_razorpay +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "" diff --git a/addons/payment_razorpay/models/payment_transaction.py b/addons/payment_razorpay/models/payment_transaction.py index 4a5296a3f9a..6751c55b756 100644 --- a/addons/payment_razorpay/models/payment_transaction.py +++ b/addons/payment_razorpay/models/payment_transaction.py @@ -11,6 +11,7 @@ from odoo.exceptions import UserError, ValidationError from odoo.addons.payment import utils as payment_utils from odoo.addons.payment_razorpay.const import PAYMENT_STATUS_MAPPING from odoo.addons.payment_razorpay.controllers.main import RazorpayController +from odoo.addons.phone_validation.tools.phone_validation import phone_sanitize_numbers _logger = logging.getLogger(__name__) @@ -49,6 +50,19 @@ class PaymentTransaction(models.Model): converted_amount = payment_utils.to_minor_currency_units(self.amount, self.currency_id) base_url = self.provider_id.get_base_url() return_url_params = {'reference': self.reference} + + phone = self.partner_phone + error_message = _("The phone number is missing.") + if phone: + # sanitize partner phone + country_code = self.partner_country_id.code + country_phone_code = self.partner_country_id.phone_code + phone_info = phone_sanitize_numbers([phone], country_code, country_phone_code) + phone = phone_info[self.partner_phone]['sanitized'] + error_message = phone_info[self.partner_phone]['msg'] + if not phone: + raise ValidationError("Razorpay: " + error_message) + rendering_values = { 'key_id': self.provider_id.razorpay_key_id, 'name': self.company_id.name, @@ -59,7 +73,7 @@ class PaymentTransaction(models.Model): 'currency': self.currency_id.name, 'partner_name': self.partner_name, 'partner_email': self.partner_email, - 'partner_phone': self.partner_phone, + 'partner_phone': phone, 'return_url': url_join( base_url, f'{RazorpayController._return_url}?{url_encode(return_url_params)}' ),