Explorar el Código

优化验证码短信签名相关代码

locky hace 6 meses
padre
commit
0803b3dbc8

+ 2 - 2
Controller/CloudStorage.py

@@ -2259,9 +2259,9 @@ class CloudStorageView(View):
         @param params: 消息参数
         @param temp_msg: sms码
         """
-        sign_ms = '周视'
+        sign_name = CommonService.confirm_msg_sign_name_with_phone(phone)
         ali_sms = AliSmsObject()
-        ali_sms.send_code_sms_cloud(phone=phone, params=params, sign_name=sign_ms, temp_msg=temp_msg)
+        ali_sms.send_code_sms_cloud(phone=phone, params=params, sign_name=sign_name, temp_msg=temp_msg)
 
     @staticmethod
     def do_refund(request_dict, response):

+ 2 - 2
Controller/InAppPurchaseController.py

@@ -397,9 +397,9 @@ class InAppPurchaseView(View):
         @param params: 消息参数
         @param temp_msg: sms码
         """
-        sign_ms = '周视'
+        sign_name = CommonService.confirm_msg_sign_name_with_phone(phone)
         ali_sms = AliSmsObject()
-        ali_sms.send_code_sms_cloud(phone=phone, params=params, sign_name=sign_ms, temp_msg=temp_msg)
+        ali_sms.send_code_sms_cloud(phone=phone, params=params, sign_name=sign_name, temp_msg=temp_msg)
 
     @classmethod
     def app_store_server_notifications(cls, request, request_dict):

+ 2 - 2
Controller/UnicomCombo/UnicomComboPayNotifyController.py

@@ -214,9 +214,9 @@ class UnicomComboPayNotifyView(View):
                     params = u'{"devname":"' + serial_no + '","submittime":"' + \
                              time.strftime("%Y-%m-%d", time.localtime()) + '","name":"' + \
                              combo_qs.first()['combo_name'] + '"}'
-                    sign = '周视'
+                    sign_name = CommonService.confirm_msg_sign_name_with_phone(phone)
                     ali_sms = AliSmsObject()
-                    ali_sms.send_code_sms_cloud(phone, params, sign, 'SMS_251031744')
+                    ali_sms.send_code_sms_cloud(phone, params, sign_name, 'SMS_251031744')
             return True
         except Exception as e:
             print(e.args)

+ 34 - 76
Controller/UserController.py

@@ -884,6 +884,9 @@ class v2authCodeView(TemplateView):
             # return self.emailCode(email, response)
         elif phone is not None:
             phone = phone.strip()
+            # 短信签名
+            sign_name = CommonService.confirm_msg_sign_name(sign_name)
+
             if country_code is None:
                 return self.phoneCode(phone, response, sign_name)
             else:
@@ -1005,11 +1008,7 @@ class v2authCodeView(TemplateView):
         identifyingCode = RandomStr(6, True)
         # 发送手机验证码
         aliSms = AliSmsObject()
-        if sign_name == 'zosi':
-            sign_ms = '周视'
-        else:
-            sign_ms = 'Ansjer'
-        res = aliSms.send_code_sms(phone=phone, code=identifyingCode, sign_name=sign_ms,
+        res = aliSms.send_code_sms(phone=phone, code=identifyingCode, sign_name=sign_name,
                                    temp_msg='SMS_151600991')
         print(res)
         code = res["Code"]
@@ -1042,29 +1041,19 @@ class v2authCodeView(TemplateView):
         if user_qs.exists() or phone_qs.exists():
             return response.json(101)
         identifyingCode = RandomStr(6, True)
-        # 短信签名
-        # sign_name_dict = {
-        #     'ansjer':'Ansjer',
-        #     'zosi':'周视'
-        # }
-        sign_ms = ''
         if country_code == '86':
             # 国内短信推送模板
             temp_msg = 'SMS_151600991'
             rec_phone = phone
-            if sign_name == 'zosi':
-                sign_ms = '周视'
-            else:
-                sign_ms = 'Ansjer'
         else:
             # 国际短信推送模板
             temp_msg = 'SMS_172165867'
             rec_phone = country_code + phone
-            sign_ms = 'Ansjer'
+            sign_name = 'Ansjer'
 
         # 发送手机验证码
         aliSms = AliSmsObject()
-        res = aliSms.send_code_sms(phone=rec_phone, code=identifyingCode, sign_name=sign_ms,
+        res = aliSms.send_code_sms(phone=rec_phone, code=identifyingCode, sign_name=sign_name,
                                    temp_msg=temp_msg)
         print(res)
         if res["Code"] == "OK":
@@ -1144,6 +1133,7 @@ class v2registerView(TemplateView):
         # 是否已存在
         if phone_qs.exists():
             return response.json(101)
+
         try:
             create_data = {
                 "username": phone,
@@ -1309,6 +1299,7 @@ class v3registerView(TemplateView):
                         password = password[3:-3]
                 print(password)
         except Exception as e:
+            print(repr(e))
             return response.json(111)
         try:
             for i in range(1, 4):
@@ -1325,6 +1316,7 @@ class v3registerView(TemplateView):
                     authcode = authcode.decode('utf-8')
                     authcode = authcode[3:-3]
         except Exception as e:
+            print(repr(e))
             return response.json(121)
         else:
             if password is None:
@@ -1531,6 +1523,8 @@ class v2forgetPwdCodeView(TemplateView):
             return response.json(444, 'lang')
         if phone is not None:
             phone = phone.strip()
+            # 短信签名
+            sign_name = CommonService.confirm_msg_sign_name(sign_name)
             if country_code is None:
                 return self.do_send_phone_code(phone, response, sign_name, number, lang)
             else:
@@ -1556,10 +1550,6 @@ class v2forgetPwdCodeView(TemplateView):
         if reds_key_ttl > 240 and resetCode:
             return response.json(90)
         resetCode = RandomStr(6, True)
-        if sign_name == 'zosi':
-            sign_ms = '周视'
-        else:
-            sign_ms = 'Ansjer'
 
         now_time = datetime.datetime.utcnow().replace(tzinfo=utc).astimezone(utc)
         region_country = users['region_country']
@@ -1571,8 +1561,7 @@ class v2forgetPwdCodeView(TemplateView):
         if not number or number == '0':
             res['status'] = 0
             user_qs.update(last_login=now_time, language=lang)
-            msg_res = aliSms.send_code_sms(phone=phone, code=resetCode, sign_name=sign_ms,
-                                           temp_msg='SMS_151675019')
+            msg_res = aliSms.send_code_sms(phone=phone, code=resetCode, sign_name=sign_name, temp_msg='SMS_151675019')
             if msg_res["Code"] == "OK":
                 if not reds.set_data(key=reds_key, val=resetCode, expire=300):
                     res['Message'] = '生成缓存错误'
@@ -1588,7 +1577,7 @@ class v2forgetPwdCodeView(TemplateView):
             else:
                 res['status'] = 0
                 user_qs.update(last_login=now_time, language=lang, region_country=number)
-                msg_res = aliSms.send_code_sms(phone=phone, code=resetCode, sign_name=sign_ms,
+                msg_res = aliSms.send_code_sms(phone=phone, code=resetCode, sign_name=sign_name,
                                                temp_msg='SMS_151675019')
                 if msg_res["Code"] == "OK":
                     if not reds.set_data(key=reds_key, val=resetCode, expire=300):
@@ -1622,14 +1611,10 @@ class v2forgetPwdCodeView(TemplateView):
         if country_code == '86':
             rec_phone = phone
             temp_msg = 'SMS_151675019'
-            if sign_name == 'zosi':
-                sign_ms = '周视'
-            else:
-                sign_ms = 'Ansjer'
         else:
             temp_msg = 'SMS_172200051'
             rec_phone = str(country_code) + str(phone)
-            sign_ms = 'Ansjer'
+            sign_name = 'Ansjer'
         now_time = datetime.datetime.utcnow().replace(tzinfo=utc).astimezone(utc)
         region_country = users['region_country']
         lang_id = LanguageModel.objects.filter(lang=lang).values('id')
@@ -1639,7 +1624,7 @@ class v2forgetPwdCodeView(TemplateView):
         if not number or number == '0':
             res['status'] = 0
             user_qs.update(last_login=now_time, language=lang)
-            msg_res = aliSms.send_code_sms(phone=rec_phone, code=resetCode, sign_name=sign_ms,
+            msg_res = aliSms.send_code_sms(phone=rec_phone, code=resetCode, sign_name=sign_name,
                                            temp_msg=temp_msg)
             if msg_res["Code"] == "OK":
                 if not reds.set_data(key=reds_key, val=resetCode, expire=300):
@@ -1656,7 +1641,7 @@ class v2forgetPwdCodeView(TemplateView):
             else:
                 res['status'] = 0
                 user_qs.update(last_login=now_time, language=lang, region_country=number)
-                msg_res = aliSms.send_code_sms(phone=rec_phone, code=resetCode, sign_name=sign_ms,
+                msg_res = aliSms.send_code_sms(phone=rec_phone, code=resetCode, sign_name=sign_name,
                                                temp_msg=temp_msg)
                 if msg_res["Code"] == "OK":
                     if not reds.set_data(key=reds_key, val=resetCode, expire=300):
@@ -3063,6 +3048,8 @@ class OauthAuthCodeView(TemplateView):
             # return self.emailCode(email, response)
         elif phone is not None:
             phone = phone.strip()
+            # 短信签名
+            sign_name = CommonService.confirm_msg_sign_name(sign_name)
             if country_code is None:
                 return self.phoneCode(phone, response, sign_name)
             else:
@@ -3162,17 +3149,9 @@ class OauthAuthCodeView(TemplateView):
         identifyingCode = RandomStr(6, True)
         # 发送手机验证码
         aliSms = AliSmsObject()
-        if sign_name == 'zosi':
-            sign_ms = '周视'
-        else:
-            sign_ms = 'Ansjer'
-        res = aliSms.send_code_sms(phone=phone, code=identifyingCode, sign_name=sign_ms,
-                                   temp_msg='SMS_151600991')
-        print(res)
+        res = aliSms.send_code_sms(phone=phone, code=identifyingCode, sign_name=sign_name, temp_msg='SMS_151600991')
         if res["Code"] == "OK":
             if reds.set_data(key=reds_key, val=identifyingCode, expire=300) is not True:
-                # if reds.set_data(key=phone + '_identifyingCode', val=identifyingCode, expire=60) is not True:
-
                 return response.json(10, '生成缓存系统错误')
             return response.json(0)
         else:
@@ -3194,33 +3173,21 @@ class OauthAuthCodeView(TemplateView):
         if user_qs.exists() or phone_qs.exists():
             return response.json(101)
         identifyingCode = RandomStr(6, True)
-        # 短信签名
-        # sign_name_dict = {
-        #     'ansjer':'Ansjer',
-        #     'zosi':'周视'
-        # }
-        sign_ms = ''
+
         if country_code == '86':
             # 国内短信推送模板
             temp_msg = 'SMS_151600991'
             rec_phone = phone
-            if sign_name == 'zosi':
-                sign_ms = '周视'
-            else:
-                sign_ms = 'Ansjer'
         else:
             # 国际短信推送模板
             temp_msg = 'SMS_172165867'
             rec_phone = country_code + phone
-            sign_ms = 'Ansjer'
+            sign_name = 'Ansjer'
 
         # 发送手机验证码
         aliSms = AliSmsObject()
-        res = aliSms.send_code_sms(phone=rec_phone, code=identifyingCode, sign_name=sign_ms,
-                                   temp_msg=temp_msg)
-        print(res)
+        res = aliSms.send_code_sms(phone=rec_phone, code=identifyingCode, sign_name=sign_name, temp_msg=temp_msg)
         if res["Code"] == "OK":
-            # if reds.set_data(key=reds_key, val=identifyingCode, expire=60) is not True:
             if reds.set_data(key=reds_key, val=identifyingCode, expire=300) is not True:
                 return response.json(10, '生成缓存系统错误')
             return response.json(0)
@@ -3407,6 +3374,8 @@ class SingleLoginView(TemplateView):
         elif phone is not None and code_type == "1":
             phone = phone.strip()
             country_code = str(country_code.strip())
+            # 短信签名
+            sign_name = CommonService.confirm_msg_sign_name(sign_name)
             return self.get_change_phone_code(country_code, phone, response, sign_name)
         elif phone is not None:
             phone = phone.strip()
@@ -3468,19 +3437,15 @@ class SingleLoginView(TemplateView):
             # 国内短信推送模板
             temp_msg = 'SMS_151675019'
             rec_phone = phone
-            if sign_name == 'zosi':
-                sign_ms = '周视'
-            else:
-                sign_ms = 'Ansjer'
         else:
             # 国际短信推送模板
             temp_msg = 'SMS_172200051'
             rec_phone = country_code + phone
-            sign_ms = 'Ansjer'
+            sign_name = 'Ansjer'
 
         # 发送手机验证码
         alisms = AliSmsObject()
-        res = alisms.send_code_sms(phone=rec_phone, code=identifying_code, sign_name=sign_ms, temp_msg=temp_msg)
+        res = alisms.send_code_sms(phone=rec_phone, code=identifying_code, sign_name=sign_name, temp_msg=temp_msg)
         if res["Code"] == "OK":
             if reds.set_data(key=reds_key, val=identifying_code, expire=300) is not True:
                 return response.json(10, '生成缓存系统错误')
@@ -3610,20 +3575,15 @@ class SingleLoginView(TemplateView):
         if country_code == '86':
             # 国内短信推送模板
             temp_msg = 'SMS_151675018'
-            rec_phone = phone
-            if sign_name == 'zosi':
-                sign_ms = '周视'
-            else:
-                sign_ms = 'Ansjer'
         else:
             # 国际短信推送模板
             temp_msg = 'SMS_172165867'
             rec_phone = country_code + phone
-            sign_ms = 'Ansjer'
+            sign_name = 'Ansjer'
 
         # 发送手机验证码
         alisms = AliSmsObject()
-        res = alisms.send_code_sms(phone=rec_phone, code=identifying_code, sign_name=sign_ms, temp_msg=temp_msg)
+        res = alisms.send_code_sms(phone=rec_phone, code=identifying_code, sign_name=sign_name, temp_msg=temp_msg)
         if res["Code"] == "OK":
             if reds.set_data(key=reds_key, val=identifying_code, expire=300) is not True:
                 return response.json(10, '生成缓存系统错误')
@@ -3837,7 +3797,7 @@ class alexaUidView(TemplateView):
             }
             return response.json(0, res)
         except Exception as e:
-            return response.json(500, repr(e))
+            return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
 
 class alexaSwitchView(TemplateView):
@@ -3883,7 +3843,7 @@ class alexaSwitchView(TemplateView):
             }
             return response.json(0, res)
         except Exception as e:
-            return response.json(500, repr(e))
+            return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
 
 # 登出
@@ -4331,12 +4291,10 @@ class loginCodeView(View):
                     return response.json(90)
                 login_code = RandomStr(6, True)
                 aliSms = AliSmsObject()
-                if sign_name == 'zosi':
-                    sign_sms = '周视'
-                else:
-                    sign_sms = 'Ansjer'
+                # 短信签名
+                sign_name = CommonService.confirm_msg_sign_name(sign_name)
 
-                res = aliSms.send_code_sms(phone=phone, code=login_code, sign_name=sign_sms, temp_msg='SMS_151675022')
+                res = aliSms.send_code_sms(phone=phone, code=login_code, sign_name=sign_name, temp_msg='SMS_151675022')
 
                 if res['Code'] == 'OK':
                     if redisObject.set_data(key=login_code_key, val=login_code, expire=300) is not True:
@@ -5049,7 +5007,7 @@ class DeleteUser(View):
             Device_Info.objects.filter(userID=user_id).delete()
             return response.json(0)
         except Exception as e:
-            return response.json(500, repr(e))
+            return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
 
 def getPasswordSalt(request):

+ 34 - 1
Service/CommonService.py

@@ -23,7 +23,7 @@ from Ansjer.config import BASE_DIR, SERVER_DOMAIN_SSL, CONFIG_INFO, CONFIG_TEST,
     ME_COUNTRY_ID_LIST, EA_COUNTRY_ID_LIST
 from Controller.CheckUserData import RandomStr
 from Model.models import iotdeviceInfoModel, Device_Info, UIDModel, AppDeviceType, UIDCompanySerialModel, GatewayPush, \
-    Device_User
+    Device_User, UserExModel
 from Object.AWS.S3Email import S3Email
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
@@ -891,3 +891,36 @@ GCqvlyw5dfxNA+EtxNE2wCW/LW7ENJlACgcfgPlBZtpLheWoZB/maw4=
                 '请求Alexa服务器更新事件网关异常:error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)),
                 'servers@ansjer.com')
             pass
+
+    @staticmethod
+    def confirm_msg_sign_name(sign_name):
+        """
+        确认短信签名
+        @param sign_name: app签名标识
+        @return:
+        """
+        if sign_name == 'zosi':
+            sign_name = '周视'
+        elif sign_name == 'vsees':
+            sign_name = '微瞳'
+        else:
+            sign_name = 'Ansjer'
+        return sign_name
+
+    @staticmethod
+    def confirm_msg_sign_name_with_phone(phone):
+        """
+        根据手机号确认短信签名
+        @param phone: 手机号码
+        @return:
+        """
+        sign_name = '周视'
+        # 根据用户APP包名确定短信签名
+        device_user_qs = Device_User.objects.filter(username=phone).values('userID')
+        if device_user_qs.exists():
+            user_id = device_user_qs[0]['userID']
+            user_ex_qs = UserExModel.objects.filter(userID=user_id).values('appBundleId')
+            if user_ex_qs.exists():
+                if user_ex_qs[0]['appBundleId'] in ['com.cloudlife.commissionf', 'com.cloudlife.commissionf_a']:
+                    sign_name = '微瞳'
+        return sign_name