fix 用户注册晚于关注公众号,导致openid 未更新

FFIB лет %!s(int64=4): %!d(string=назад)
Родитель
Сommit
8e0b59b01e
1 измененных файлов с 20 добавлено и 0 удалено
  1. 20 0
      miniapp/views.py

+ 20 - 0
miniapp/views.py

@@ -6,6 +6,7 @@ from django.conf import settings
6 6
 from django.db import transaction
7 7
 from django_curtail_uuid import CurtailUUID
8 8
 from django_logit import logit
9
+from django_we.models import SubscribeUserInfo
9 10
 from django_response import response
10 11
 from ipaddr import client_ip
11 12
 from pywe_membercard import get_miniapp_extraData
@@ -85,6 +86,13 @@ def get_userinfo_api(request):
85 86
     user.user_status = UserInfo.ACTIVATED
86 87
     user.signup_ip = client_ip(request)
87 88
     user.signup_at = tc.utc_datetime()
89
+
90
+    try:
91
+        subscribe = SubscribeUserInfo.objects.get(unionid=userinfo.get('unionId', ''), status=True)
92
+        user.openid = subscribe.openid
93
+        user.subscribe = True
94
+    except:
95
+        pass
88 96
     user.save()
89 97
 
90 98
     # Store Userinfo
@@ -156,6 +164,12 @@ def mini_login_api(request):
156 164
     user.appid = appId
157 165
     if unionid:
158 166
         user.unionid = unionid
167
+        try:
168
+            subscribe = SubscribeUserInfo.objects.get(unionid=unionid, status=True)
169
+            user.openid = subscribe.openid
170
+            user.subscribe = True
171
+        except:
172
+            pass
159 173
 
160 174
     # 同步销售员手机号
161 175
     try:
@@ -232,6 +246,12 @@ def get_userinfo_api2(request):
232 246
     user.country = userinfo.get('country', '')
233 247
     user.province = userinfo.get('province', '')
234 248
     user.city = userinfo.get('city', '')
249
+    try:
250
+        subscribe = SubscribeUserInfo.objects.get(unionid=userinfo.get('unionId', ''), status=True)
251
+        user.openid = subscribe.openid
252
+        user.subscribe = True
253
+    except:
254
+        pass
235 255
     user.save()
236 256
 
237 257
     # Store Userinfo