说明:
微信小程序客服消息推送到自主搭建服务【非第三方服务】后,做相应的逻辑处理后,客服消息需要正常转发到微信自带的客服系统。
Demo
@app.route("/demo/", methods=["GET", "POST"])
def demo():
""" 简单demo流程 不含数据校验 """
if request.method == "GET":
# 用户小程序后台设置url时,echostr需要原样返回,见图一,不然接入失败.提示"Token校验失败,请检查确认"
echostr = request.args.get("echostr", "test-success")
return echostr
else: # request.method == "POST"
# 获取请求体中小程序原始id
# 小程序用户发送消息到小程序后,微信推送POST消息体内容形如:{"ToUserName":"gh_xxxxxxx","Encrypt":"O1g4Fl+D3......"}'
from_user_name = request.get_json().get("ToUserName")
# 查询参数获取
# 请求参数形如:"POST /demo/?signature=xxxxx×tamp=1658746498&nonce=xxxxxx&openid=xxxx&encrypt_type=aes&msg_signature=xxxxxx
openid = request.args.get("openid")
st = request.args.get("timestamp")
# 固定参数
msg_type = "transfer_customer_service"
current_app.logger.info(f"{from_user_name, openid, st, msg_type}")
# 详情参见图二
return jsonify(ToUserName=openid, FromUserName=from_user_name, CreateTime=st, MsgType=msg_type)
图一:
图二:
如果成功,用户发送消息到小程序,客服微信处会有相应提示,如果未成功,用户发送消息后,会提示系统文案 “该小程序提供的服务出现故障,请稍后再试”
小程序后台-设置-基本设置-账号信息,查看原始ID:
小程序后台-开发管理-开发设置-消息推送,开启消息推送:
微信文档。。大型造坑场。。