This commit is contained in:
doudou201703
2026-08-02 14:07:04 +08:00
commit 046fac6dc1
339 changed files with 19435 additions and 0 deletions
@@ -0,0 +1,63 @@
import dataclasses
import jmespath
import pydash
import requests
from asgiref.sync import async_to_sync
from channels.layers import get_channel_layer
from sixGuoDjango import redis_5
from wechat_项目工具包.企业微信工具包.客户管理 import wecom客户管理
from wechat_项目工具包.企业微信工具包.消息推送工具 import wecom消息推送
@dataclasses.dataclass
class six企微回调业务处理方法():
pass
def 添加企业客户事件(self, as_data):
""""""
"""
添加企业客户事件
参数 说明 配置了客户联系功能的成员添加外部联系人时,回调该事件
ToUserName 企业微信CorpID
FromUserName 此事件该值固定为sys,表示该消息由系统生成
CreateTime 消息创建时间 (整型)
MsgType 消息的类型,此时固定为event
Event 事件的类型,此时固定为change_external_contact
ChangeType 此时固定为add_external_contact
UserID 企业服务人员的UserID
ExternalUserID 外部联系人的userid,注意不是企业成员的账号
State 添加此用户的「联系我」方式配置的state参数,或在获客链接中指定的customer_channel参数,可用于识别添加此用户的渠道
WelcomeCode 欢迎语code,可用于发送欢迎语
"""
# 这是用户在添加企微好友成功时的回调信息;
ToUserName = pydash.get(obj=as_data, path="xml.ToUserName") # toUser 企业微信CorpID
FromUserName = pydash.get(obj=as_data, path="xml.FromUserName") # sys 此事件该值固定为sys,表示该消息由系统生成
CreateTime = pydash.get(obj=as_data, path="xml.CreateTime") # 1403610513 消息创建时间 (整型)
MsgType = pydash.get(obj=as_data, path="xml.MsgType") # event 消息的类型,此时固定为event
Event = pydash.get(obj=as_data, path="xml.Event") # change_external_contact 事件的类型,此时固定为change_external_contact
ChangeType = pydash.get(obj=as_data, path="xml.ChangeType") # add_external_contact 此时固定为add_external_contact
UserID = pydash.get(obj=as_data, path="xml.UserID") # UserID 企业服务人员的UserID
ExternalUserID = pydash.get(obj=as_data, path="xml.ExternalUserID", ) # woAJ2GCAAAXtWyujaWJHDDGi0mAAAA 外部联系人的userid,注意不是企业成员的账号
State = pydash.get(obj=as_data, path="xml.State", ) # teststate 添加此用户的「联系我」方式配置的state参数,或在获客链接中指定的customer_channel参数,可用于识别添加此用户的渠道
WelcomeCode = pydash.get(obj=as_data, path="xml.WelcomeCode") # WELCOMECODE 欢迎语code,可用于发送欢迎语
# 发送欢迎语
print("添加企业客户事件")
res_welcom_code = wecom消息推送.发送新客户欢迎语(CALLBACK_CODE=WelcomeCode)
# 获取用户的 unionid (主要就是获取用户的unionid的值)
res = wecom客户管理.获取客户详情(external_userid=ExternalUserID)
print(res)
unionid = jmespath.search(data=res, expression="external_contact.unionid")
print(unionid)
wecom_pay_data = requests.post(url="https://xiao.sixgou.com/demopay/transfer/", json={"unionid": unionid})
# 存储数据(用户添加后的数据)
print("打印数据类型", wecom_pay_data.json())
print("打印数据类型", type(wecom_pay_data.json()))
payData = wecom_pay_data.json()
channels_name = redis_5.get(name=unionid)
default_channel_layer = get_channel_layer(alias="default")
async_to_sync(awaitable=default_channel_layer.send)(channel=channels_name, message={"type": "chat_subMsg", "data": payData})
pass
# 调用发红包的功能