活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      文档中心

      弹性云主机

      弹性云主机

        • 产品动态
        • 产品介绍
        • 产品定义
        • 产品功能
        • 产品优势
        • 弹性云主机的应用场景
        • 弹性云主机使用须知和使用限制
        • 实例
        • 实例概述
        • 实例生命周期
        • 实例类型
        • 实例规格(X86)
        • 规格清单
        • X实例
        • 通用型
        • 通用入门型
        • 通用计算增强型
        • 通用计算增强型实例类型总览
        • 通用计算增强型C7t
        • 通用计算增强型C7n
        • 通用计算增强型C6s
        • 通用计算增强型C6nl
        • 通用计算增强型C6
        • 通用计算增强型C3
        • 通用计算增强型C3s
        • 内存优化型
        • 超大内存型
        • 超高IO型
        • 超高IO型实例类型总览
        • 超高IO型I3
        • 超高IO型Ir7n
        • 超高IO型Ir3
        • 使用须知
        • 高计算型
        • 磁盘增强型
        • 磁盘增强型实例类型总览
        • 磁盘增强型D6
        • 磁盘增强型D7
        • GPU加速型
        • GPU加速实例总览
        • 图形加速增强型G6
        • 图形加速增强型G5
        • 图形加速增强型G3
        • 图形加速型G2
        • 图形加速型G1
        • 计算加速型P2v
        • 计算加速型P3v
        • 计算加速型P1
        • 推理加速型Pi2
        • 计算加速型P2s
        • 推理加速型Pi3
        • AI加速型
        • 实例规格(鲲鹏)
        • 规格清单(鲲鹏)
        • 鲲鹏通用计算增强型
        • 鲲鹏内存优化型
        • 鲲鹏超高IO型
        • 镜像
        • 镜像类型
        • Cloud-init
        • 网络
        • 云硬盘
        • 安全
        • 弹性云主机与其他服务的关系
        • CPU积分计算方法
        • 区域和可用区
        • 计费说明
        • 弹性云主机规格和价格
        • 弹性云主机计费项
        • 弹性云主机续订规则
        • 弹性云主机退订规则
        • 弹性云主机变更规则
        • 弹性云主机到期、欠费
        • 弹性云主机购买
        • 自助开通
        • 弹性云主机续订
        • 弹性云主机自动续订
        • 弹性云主机退订
        • 弹性云主机变更规格
        • 快速入门
        • 购买方式概述
        • 创建弹性云主机
        • 登录弹性云主机
        • 初始化数据盘
        • 场景及磁盘分区形式介绍
        • 初始化Windows数据盘(Windows 2008)
        • 初始化Windows数据盘(Windows 2016)
        • 初始化Linux数据盘(parted)
        • 初始化容量大于2TB的Windows数据盘(Windows 2008)
        • 初始化容量大于2TB的Windows数据盘(Windows 2012)
        • 初始化容量大于2TB的Linux数据盘(parted)
        • 入门实践
        • 用户指南
        • 实例
        • 选择弹性云主机的计费模式
        • 包周期计费
        • 按需计费
        • 按需转包周期
        • 包周期转按需
        • 创建云主机
        • 创建相同配置云主机
        • 开启/关闭超线程
        • 查看弹性云主机信息
        • 查看创建状态
        • 查看失败任务
        • 查看弹性云主机详细信息
        • 导出弹性云主机列表信息
        • 登录Windows弹性云主机
        • Windows弹性云主机登录方式概述
        • 远程登录(VNC方式-Windows)
        • 远程桌面连接(MSTSC方式)
        • 在Linux主机上登录Windows云主机
        • 在移动设备上登录Windows云主机
        • Mac OS系统登录Windows云主机
        • 登录Linux弹性云主机
        • Linux弹性云主机登录方式概述
        • 远程登录(VNC方式-Linux)
        • SSH密钥方式登录
        • SSH密码方式登录
        • 在移动设备上登录Linux云主机
        • Mac OS系统登录Linux弹性云主机
        • 管理弹性云主机
        • 修改云主机名称
        • 重装操作系统
        • 切换操作系统
        • 管理弹性云主机组
        • 启停弹性云主机
        • 备份弹性云主机
        • 更改时区
        • 变更规格
        • 变更规格通用操作
        • XEN实例变更为KVM实例(Windows)
        • XEN实例变更为KVM实例(Windows-自动配置)
        • XEN实例变更为KVM实例(Linux-自动配置)
        • XEN实例变更为KVM实例(Linux-手动配置)
        • XEN实例变更为KVM实例(Linux-批量自动配置)
        • KVM实例变更为QingTian实例(Windows)
        • KVM实例变更为QingTian实例(Linux)
        • 使用用户数据和元数据
        • 元数据获取
        • 用户数据注入
        • 文件注入
        • 配置主机名与IP地址的映射(可选)
        • 安装驱动和工具包(可选)
        • GPU驱动概述
        • GPU加速型实例安装GRID驱动
        • Tesla驱动及CUDA工具包获取方式
        • GPU加速型实例安装Tesla驱动及CUDA工具包
        • 操作场景
        • 安装须知
        • Linux操作系统云主机安装Tesla驱动
        • Windows操作系统云主机安装Tesla驱动
        • Linux操作系统安装CUDA工具包
        • Windows操作系统安装CUDA工具包
        • GPU 加速型实例卸载GPU驱动
        • 镜像
        • 镜像概述
        • 创建镜像
        • 云硬盘
        • 云硬盘概述
        • 挂载磁盘
        • 在线卸载磁盘
        • 扩容云硬盘
        • 扩容本地盘
        • 云备份
        • 云备份概述
        • 备份弹性云主机
        • 网卡
        • 网卡概述
        • 添加网卡
        • 删除网卡
        • 切换虚拟私有云
        • 修改私有IP地址
        • 管理虚拟IP地址
        • 开启网卡多队列功能
        • 动态获取IPv6地址
        • 弹性公网IP
        • 弹性公网IP概述
        • 绑定弹性公网IP
        • 解绑弹性公网IP
        • 更换弹性公网IP
        • 修改弹性公网IP的带宽
        • 无公网IP的弹性云主机访问Internet
        • 安全
        • 提升云主机安全性方法概述
        • 安全组
        • 安全组概述
        • 默认安全组和规则
        • 安全组配置示例
        • 配置安全组规则
        • 更改安全组
        • 管理企业项目
        • 创建企业项目并授权
        • 密码和密钥对
        • 密码
        • 密码使用场景介绍
        • 在控制台重置弹性云主机密码
        • 管理一键式重置密码插件
        • 获取一键式重置密码插件
        • 安装一键式重置密码插件(可选)
        • 更新一键式重置密码插件(单台操作)
        • 通过脚本批量更新一键式重置密码插件(Linux)
        • 通过脚本批量更新一键式重置密码插件(Windows系统)
        • 密钥对
        • 密钥对适用场景介绍
        • (推荐)通过管理控制台创建密钥对
        • 通过puttygen.exe工具创建密钥对
        • 导入密钥对
        • 获取和清除云主机密码(Windows)
        • 获取Windows弹性云主机的密码
        • 清除Windows弹性云主机的密码
        • 资源和标签
        • 标签管理
        • 标签概述
        • 添加标签
        • 使用标签检索资源
        • 删除标签
        • 配额调整
        • 搜索云主机
        • 监控
        • 监控弹性云主机
        • 弹性云主机支持的基础监控指标
        • 弹性云主机支持的操作系统监控指标(安装Agent)
        • 设置告警规则
        • 查看监控指标
        • 审计
        • 支持云审计的关键操作
        • 如何查看审计日志
        • 常见问题
        • 高频常见问题
        • 计费类
        • 产品咨询类
        • 弹性云主机使用时有什么限制?
        • 物理机故障时,弹性云主机是否会自动恢复?
        • 弹性云主机可以做什么?
        • XEN实例停止售卖说明及常见问题
        • XEN主机实例关机-开机操作
        • 区域与可用区
        • 创建与删除
        • 创建类
        • 删除类
        • 登录与连接
        • 登录前准备类
        • 控制台登录类
        • 远程连接类
        • Windows远程登录报错类
        • 远程连接Windows云主机报错:出现身份验证错误,要求的函数不受支持
        • 远程桌面连接Windows云主机报错:此计算机无法连接到远程计算机
        • 远程桌面连接Windows云主机报错:没有远程登录的权限
        • 远程连接Windows云主机报错:没有远程桌面授权服务器可以提供许可证
        • 登录Windows云主机时报错:0x112f
        • 远程桌面连接Windows云主机报错:0x1104
        • 远程桌面连接Windows云主机报错:122.112...
        • 使用Mac远程连接Windows云主机报错:证书或相关链无效
        • 远程连接Windows云主机报错:您的凭据无法工作
        • 登录Windows云主机提示“内部错误”怎么办?
        • 远程桌面连接Windows云主机报错:由于协议错误会话中断
        • 远程桌面连接Windows云主机报错:无法验证此远程计算机的身份
        • 远程桌面链接Windows云主机报错:两台计算机无法在分配的时间内连接
        • 远程桌面链接Windows云主机报错:连接被拒绝未授权此用户
        • 远程桌面链接Windows云主机报错:您的连接已丢失
        • Windows 2012云主机使用远程桌面连接功能出现蓝屏
        • Linux远程登录报错类
        • 远程连接Linux云主机报错:Module is unknown
        • 远程连接Linux云主机报错:Permission denied
        • 远程连接Linux云主机报错:read: Connection reset by peer
        • 远程连接Linux云主机报错:Access denied
        • 远程连接Linux云主机报错:Disconnected: No supported authentication methods available
        • 云主机管理
        • 主机名类
        • 规格变更类
        • 变更弹性云服务规格时,提示系统繁忙,无法成功提交?
        • CentOS 5操作系统云主机执行驱动安装脚本失败怎么办?
        • Linux云主机变更规格时执行驱动安装脚本失败怎么办?
        • Windows弹性云主机变更规格后数据盘脱机怎么办?
        • Linux弹性云主机变更规格后磁盘脱机怎么办?
        • 使用故障类
        • 针对管理控制台的异常提示信息,应该如何处理?
        • 如何修复虚拟化驱动异常的Windows弹性云主机?
        • Windows弹性云主机没有声音?
        • 如何修改弹性云主机的SID?
        • 操作系统管理类
        • 切换操作系统类
        • 重装操作系统类
        • 图形化界面安装类
        • 操作系统故障类
        • 文件上传
        • 怎样将文件上传到云主机?
        • 本地Windows主机通过MSTSC上传文件到Windows云主机
        • 本地Windows主机使用WinSCP上传文件到Linux云主机
        • 本地MacOS系统主机上传文件到Windows云主机
        • 本地Linux主机使用SCP上传文件到Linux云主机
        • 本地Linux主机使用SFTP上传文件到Linux云主机
        • 本地Windows主机使用FTP上传文件到Windows/Linux云主机
        • 本地Linux主机使用FTP上传文件到Linux云主机
        • 怎样在本地主机和Windows弹性云主机之间互传数据?
        • 使用FTP上传文件时客户端连接服务端超时怎么办?
        • 使用FTP上传文件时写入失败,文件传输失败怎么办?
        • 打开FTP服务器上的文件夹时发生错误,请检查是否有权限访问该文件夹
        • 业务迁移
        • 磁盘管理
        • 磁盘分区与虚拟内存类
        • Windows操作系统云主机看不到挂载的数据盘怎么办?
        • 怎样调整系统盘分区?
        • 怎样查询Windows弹性云主机磁盘分区与磁盘设备的对应关系?
        • 怎样查询Linux弹性云主机磁盘分区与磁盘设备的对应关系?
        • 怎样配置Windows弹性云主机的虚拟内存?
        • 使用free命令查看弹性云主机的内存,为什么与实际不符?
        • 磁盘扩容类
        • 如何将扩容系统盘的空白分区在线扩容到末尾的root分区?
        • 如何将扩容系统盘的空白分区在线扩容到非末尾的root分区?
        • 磁盘挂载类
        • 一台弹性云主机可以挂载多块磁盘吗?
        • 弹性云主机挂载磁盘时有什么限制?
        • 哪些弹性云主机支持挂载SCSI类型的云硬盘?
        • 控制台与弹性云主机内部之间磁盘挂载点的对应关系
        • 弹性云主机详情页显示还有挂载点,但是挂载磁盘失败
        • 挂载SCSI盘的Linux弹性云主机,重启失败怎么办?
        • 其他
        • 磁盘脱机怎么办?
        • 重启后盘符发生变化怎么办?
        • 用户误删除Tools后,如何获取数据盘信息?
        • Linux弹性云主机挂载NVMe SSD盘异常,如何修复?
        • 密码与密钥对
        • 密码类
        • 如何修改Linux弹性云主机的密码?
        • Linux操作系统默认密码是多少?
        • 怎样设置镜像密码的有效期?
        • 在操作系统内部修改云主机密码
        • 重置Windows云主机密码(未安装重置密码插件)
        • 重置Linux云主机密码(未安装重置密码插件)
        • 用户创建弹性云主机成功后远程登录提示密码错误
        • 用户未修改密码,正常使用弹性云主机一段时间后无法登录
        • 一键重置密码后无法使用新密码登录弹性云主机
        • 业务端口被一键式重置密码插件占用
        • 密钥类
        • 怎样查询弹性云主机使用的密钥对是哪个?
        • 如何使用密钥对?
        • 手机是否可以下载密钥对?
        • 无法导入密钥对,怎么办?
        • 为什么使用密钥文件无法正常登录Linux弹性云主机?
        • 密钥对无法下载
        • 通过puttygen.exe工具创建的密钥对,导入管理控制台失败怎么办?
        • Windows弹性云主机中的cloudbase-init帐户是什么?
        • python升级导致Cloud-init不工作
        • 网络配置
        • 弹性IP类
        • 一台弹性云主机是否可以绑定多个弹性IP?
        • 未绑定弹性IP的弹性云主机能否访问外网?
        • 弹性公网IP Ping不通?
        • 为什么弹性云主机可以远程连接,但是无法ping通?
        • 网卡类
        • 弹性云主机变更规格后网卡漂移怎么办?
        • 弹性云主机添加网卡后是否会自动启动?
        • Linux操作系统弹性云主机在控制台扩展网卡后,无法查询到第二块网卡信息,怎么办?
        • 路由类
        • 其他
        • 安全配置
        • 资源管理与标签
        • 资源监控
        • 数据库应用
        • 视频专区
        • 最佳实践
        • 跨账号同区域迁移云主机
        • Linux云主机SSH登录的安全加固
        • 使用VNC Viewer连接linux云主机
        • 搭建FTP站点(Linux)
        • 搭建FTP站点(WIndows)
        • 简介
        • 操作步骤
        • FAQ
        • 基于Tomcat构建Java web环境(CentOS 7.3 64bit)
        • 手工搭建LNMP环境(CentOS 7.2 PHP7.0)
        • 手工部署Docker(CentOS 7.5)
        • 手工部署RabbitMQ(CentOS 7.4)
        • 手工搭建LAMP环境(CentOS 7.8 PHP7.0)
        • 手工搭建LNMP环境(Ubuntu 20.04)
        • 手工搭建Hadoop环境(Linux)
        • 搭建微信公众号后台——收发文本消息
        • XEN实例迁移最佳实践
        • 文档下载
        • 相关协议
        • 天翼云弹性云主机服务协议
        • 弹性云主机服务等级协议
        • 弹性云主机产品个人信息保护声明
          无相关产品

          本页目录

          帮助中心弹性云主机最佳实践搭建微信公众号后台——收发文本消息
          搭建微信公众号后台——收发文本消息
          更新时间 2023-12-28 17:26:55
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          最近更新时间: 2023-12-28 17:26:55
          分享文章
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          本文主要介绍如何搭建微信公众号后台——收发文本消息。

          概述

          在本教程中,您将学会使用弹性云主机(以下简称 ECS)搭建微信公众号处理后台,使用Python语言编写对应的微信消息处理逻辑代码,接收从微信服务端转发过来的消息,并返回处理结果给最终用户。

          图片19.png

          您需要了解的背景知识有: CentOS(Linux)操作系统、Python语言、Web.py框架、HTTP/XML协议。

          准备事项

          1、申请微信公众号

          微信公众号申请链接:https://mp.weixin.qq.com/

          2、购买天翼云弹性云服务。

          本教程中,以“云图说”为例,使用公共镜像CentOS 7.4。

          3、购买弹性IP

          建议同时购买弹性IP,后面需要在微信公众号上配置公网IP的地址。

          安装基础软件

          本教程中使用Python+Web.py组合完成微信公众号开发,需要安装或升级Python、pip、Web.py框架、WinSCP软件版本。

          升级默认Python版本

          CentOS 7.4自带Python版本比较老,建议升级到Python3。

          1、查看Python版本,使用如下命令:

          python --version

          图片20.png

          2、下载Python安装包,这里以Python 3.6.0版本为例,使用命令:

          wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0a1.tar.xz

          图片21.png

          3、解压安装包,使用如下命令:

          tar xvf Python-3.6.0a1.tar.xz

          4、执行命令:

          cd Python-3.6.0a1

          ./configure

          图片22.png

          • 如果出现“configure: error: no acceptable C compiler found in $PATH”异常提示,是因为未安装合适的编译器。

          解决方法:

          执行以下命令,安装/升级gcc及其他依赖的包。

          sudo yum install gcc-c++

          并在随后提示安装包是否OK时,输入y并回车。出现如下图提示说明依赖的包安装成功。

          图片23.png

          在编译器安装完成后,重新执行./configure命令。

          5、执行命令:

          make && make install

          执行成功。但提示pip错误,原因是我的系统中少了openssl-devel包,可以先忽略

          6、查看Python3版本,使用命令:

          python3 --version

          图片24.png

          7、执行命令:

          python3

          出现如下提示,则说明Python3安装成功。

          图片25.png

          说明

          执行后续操作前需要先退出Python命令行,可通过输入以下任一命令再按回车键退出:

          • Ctrl+Z
          • exit()
          • quit()

          升级默认pip版本

          pip是通用的Python包管理工具。提供了对Python包的查找、下载、安装、卸载功能。Python3安装成功后自带pip3,但版本比较老,建议升级到pip最新版本。同时前面安装python3提示“Ignoring ensurepip failure: pip 8.1.1 requires SSL/TLS”错误,导致pip未成功安装,所以需要重新安装pip。

          1、安装openssl-devel包,使用命令:

          yum install openssl-devel -y

          图片26.png

          2、执行命令:

          make && make install

          出现如下提示说明安装pip安装成功。

          图片27.png

          3、升级pip3,使用命令:

          pip3 install --upgrade pip

          出现如下提示说明升级pip到最新版本了。

          图片28.png

          安装Web.py框架

          Web.py官方教程地址:http://webpy.org/,使用如下命令安装web.py:

          pip3 install web.py==0.40.dev0

          图片29.png

          安装WinSCP

          通常情况下,我们在本地Windows操作系统上编辑代码,完成后再上传至ECS上(CentOS Linux系统)。WinSCP 是一个Windows环境下使用的SSH的开源图形化SFTP客户端, 同时支持 SCP 协议。它的主要功能是在本地与远程计算机间安全地复制文件,并且可以直接编辑文件。

          WinSCP安装链接:https://winscp.net/eng/docs/lang:chs

          上传代码

          1、新建main.py文件,复制如下代码:

          # -*- coding: utf-8 -*-
          # filename: main.py
          import web
          from handle import Handle
          
          urls = (
              '/wx', 'Handle',
          )
          
          if __name__ == '__main__':
              app = web.application(urls, globals())
              app.run()
          

          2、新建handle.py文件,复制如下代码:

          # -*- coding: utf-8 -*-
          # filename: handle.py
          
          import hashlib
          import web
          import receive
          import time
          import os
          
          class Handle(object):
          
              def __init__(self):
                  self.app_root = os.path.dirname(__file__)
                  self.templates_root = os.path.join(self.app_root, 'templates')
                  self.render = web.template.render(self.templates_root)
          
              def GET(self):
                  try:
                      data = web.input()
                      if len(data) == 0:
                          return "hello, this is handle view"
                      signature = data.signature
                      timestamp = data.timestamp
                      nonce = data.nonce
                      echostr = data.echostr
                      token = "此处内容与公众号基本配置里Token字段取值保持一致"
          
                      list = [token, timestamp, nonce]
                      list.sort()
                      s = list[0] + list[1] + list[2]
                      hashcode = hashlib.sha1(s.encode('utf-8')).hexdigest()
                      print( "handle/GET func: hashcode, signature: ", hashcode, signature)
                      if hashcode == signature:
                          return echostr
                      else:
                          return echostr
                  except (Exception) as Argument:
                      return Argument
          
              def POST(self):
                  try:
                      webData = web.data()
                      print("Handle Post webdata is:\n", webData)
                      #打印消息体日志
                      recMsg = receive.parse_xml(webData)
          
                      if isinstance(recMsg, receive.Msg) and recMsg.MsgType == 'text':
                          toUser = recMsg.FromUserName
                          fromUser = recMsg.ToUserName
                          content = "欢迎关注云图说!" + str(recMsg.Content)
                          print('Reply message info:\n')
                          print('toUser =', toUser)
                          print('fromUser = ', fromUser)
                          print('content = ', content)
                          return self.render.reply_text(toUser, fromUser, int(time.time()), content)
                      else:
                          print("不支持的消息类型:",recMsg.MsgType)
                          return "success"
                  except (Exception) as Argment:
                      return Argment
          

          3、新建receive.py文件,复制如下代码:

          1.# -*- coding: utf-8 -*-
          2.# filename: receive.py
          3.import xml.etree.ElementTree as ET
          4.
          5.def parse_xml(web_data):
          6.    if len(web_data) == 0:
          7.        return None
          8.    xmlData = ET.fromstring(web_data)
          9.    msg_type = xmlData.find('MsgType').text
          10.    if msg_type == 'text':
          11.        return TextMsg(xmlData)
          12.    elif msg_type == 'image':
          13.        return ImageMsg(xmlData)
          14.    elif msg_type == 'location':
          15.        return LocationMsg(xmlData)
          16.    elif msg_type == 'event':
          17.        return EventMsg(xmlData)
          18.
          19.class Event(object):
          20.    def __init__(self, xmlData):
          21.        self.ToUserName = xmlData.find('ToUserName').text
          22.        self.FromUserName = xmlData.find('FromUserName').text
          23.        self.CreateTime = xmlData.find('CreateTime').text
          24.        self.MsgType = xmlData.find('MsgType').text
          25.        self.Eventkey = xmlData.find('EventKey').text
          26.
          27.class Msg(object):
          28.    def __init__(self, xmlData):
          29.        self.ToUserName = xmlData.find('ToUserName').text
          30.        self.FromUserName = xmlData.find('FromUserName').text
          31.        self.CreateTime = xmlData.find('CreateTime').text
          32.        self.MsgType = xmlData.find('MsgType').text
          33.        self.MsgId = xmlData.find('MsgId').text
          34.
          35.class TextMsg(Msg):
          36.    def __init__(self, xmlData):
          37.        Msg.__init__(self, xmlData)
          38.        self.Content = xmlData.find('Content').text
          39.
          40.class ImageMsg(Msg):
          41.    def __init__(self, xmlData):
          42.        Msg.__init__(self, xmlData)
          43.        self.PicUrl = xmlData.find('PicUrl').text
          44.        self.MediaId = xmlData.find('MediaId').text
          45.
          46.class LocationMsg(Msg):
          47.    def __init__(self, xmlData):
          48.        Msg.__init__(self, xmlData)
          49.        self.Location_X = xmlData.find('Location_X').text
          50.        self.Location_Y = xmlData.find('Location_Y').text
          51.
          52.class EventMsg(Msg):
          53.    def __init__(self, xmlData):
          54.        Event.__init__(self, xmlData)
          55.        self.Event = xmlData.find('Event').text
          

          4、新建templates文件夹,在文件夹下新建reply_text.xml文件,复制如下代码:

          $def with (toUser,fromUser,createTime,content)
          <xml>
          <ToUserName><![CDATA[$toUser]]></ToUserName>
          <FromUserName><![CDATA[$fromUser]]></FromUserName>
          <CreateTime>$createTime</CreateTime>
          <MsgType><![CDATA[text]]></MsgType>
          <Content><![CDATA[$content]]></Content>
          </xml>
          

          5、最终本地代码文件形成如下:

          图片30.png

          6、通过WinSCP工具将上述文件与目录上传至ECS指定目录下:

          图片31.png

          启动服务

          使用如下命令启动服务:

          python3 main.py 80

          启动成功如下图所示:

          图片32.png、

          启用开发者模式

          1、登录微信公众平台,选择“开发 >基本配置”,单击“修改配置”。

          2、填写配置信息,单击“提交”。

          • URL:https://ECS的弹性公网IP/wx,不用添加80端口。
          • Token:需要与handle.py中对应token取值完全一致。
          • EncodingAESKey:随机生成。
          • 消息加解密方式:此为示例,选择简单的“明文模式”。

          3、验证token成功,单击“启用”。

                            
          说明

          如果token验证失败,请检查Token配置与handle.py中GET消息处理代码是否一致。

          验证

          使用微信关注公众号,任意发送一条文本消息,看是否能够收到回复。如能收到回复则表明系统处理正常。

          文档反馈

          建议您登录后反馈,可在建议与反馈里查看问题处理进度

          鼠标选中文档,精准反馈问题

          选中存在疑惑的内容,即可快速反馈问题,我们会跟进处理

          知道了

          上一篇 :  手工搭建Hadoop环境(Linux)
          下一篇 :  XEN实例迁移最佳实践
          搜索 关闭
          ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
          公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
          备案 京公网安备11010802043424号 京ICP备 2021034386号
          ©2025天翼云科技有限公司版权所有
          京ICP备 2021034386号
          备案 京公网安备11010802043424号
          增值电信业务经营许可证A2.B1.B2-20090001
          用户协议 隐私政策 法律声明