feat: 链接页发消息记录发送者IP与设备指纹(不读客服JWT)

This commit is contained in:
XingQue
2026-06-23 21:14:10 +08:00
parent bdebbb9348
commit 6e37477e4f
3 changed files with 201 additions and 4 deletions

View File

@@ -39,6 +39,7 @@ from tencentcloud.sts.v20180813 import sts_client, models
from utils.weixin_broadcast import WeixinBroadcastSender
from utils.chat_utils import _send_group_message, _subscribe_users_to_group, establish_order_chat
from utils.link_sender_meta import build_link_sender_meta
from utils.fadan_utils import check_fadan_qiangdan_eligible
from orders.utils import (
@@ -3507,12 +3508,14 @@ class ShangjiaLianjieLiuYanZhuanFaView(APIView):
商家链接留言转发接口
路径POST /dingdan/sjljlbxxzf
固定以 B{商家ID} 身份发送群消息。
附带 _linkMeta发消息者 IP/定位/设备指纹等),仅 H5 链接页解析展示,不读取客服 JWT。
"""
permission_classes = []
def post(self, request):
token = request.data.get('token')
text = request.data.get('text', '')
text = (request.data.get('text') or '').strip()
client_info = request.data.get('clientInfo')
if not token or not text:
return Response({'code': 400, 'msg': '缺少参数'})
@@ -3535,6 +3538,9 @@ class ShangjiaLianjieLiuYanZhuanFaView(APIView):
sender_name = "老板"
sender_avatar = ''
sender_meta = build_link_sender_meta(request, link_token=token, client_info=client_info)
custom_payload = {'text': text, '_linkMeta': sender_meta}
appkey = get_self_goeasy_appkey()
secret = get_self_goeasy_secret()
if not appkey:
@@ -3554,14 +3560,18 @@ class ShangjiaLianjieLiuYanZhuanFaView(APIView):
sender_name=sender_name,
sender_avatar=sender_avatar,
message_text=text,
custom_payload=None,
custom_payload=custom_payload,
group_name=group_name,
order_id=order.OrderID,
)
if not local_ok:
return Response({'code': 500, 'msg': '消息发送失败'})
return Response({'code': 200, 'msg': '发送成功'})
return Response({
'code': 200,
'msg': '发送成功',
'data': {'senderMeta': sender_meta},
})
class QiangdanView(APIView):