基于华为云设置微信公众号后台消息自动回复

基于华为云设置微信公众号后台消息自动回复

目录

基于华为云设置微信公众号后台消息自动回复

1.注册微信公众号

2.华为云进入控制台、

3.创建虚拟私有云 VPC

4.创建弹性云服务器 ECS

5.登陆弹性云服务器

6.升级默认 Python 版本

7.升级默认 pip 版本

8.安装 Web.py 框架

9.安装 WinSCP

10.本地编写代码文件

10.1 新建 main.py 文件

10.2 新建 handle.py 文件

10.3 新建 receive.py 文件

10.4 新建 templates 文件夹

11.WinSCP 上传代码文件

12.启动对应服务

13.启用开发者模式

14.微信公众号验证实验结果

15.删除弹性云服务器 ECS

16.删除虚拟私有云  


1.注册微信公众号

步骤 1 打开浏览器,输入微信公众平台网站 微信公众平台 在上方点击 “立即注册”。

步骤 2 在弹出的注册界面中,选择“订阅号”。 

步骤 3 选择“订阅号”后,按照公众号指引流程进行注册,填写“基本信息”。

步骤 4 填好“基本信息”之后,点击注册。来到“选择类型”界面,注册地默认,点击确定。在弹出的界面中,选择“订阅号”,点击“选择并继续”。

 步骤 5 选择好之后,到“信息登记页面”,进行对应信息的登记和选择(“主体信息”选择个人)

步骤 6 信息登记完成之后,按照指引进行下一步操作。以上四步完成之后,大家就会看到自己的公众号相关信息。

2.华为云进入控制台、

步骤 1 打开浏览器,输入华为云网站地址 https://www.huaweicloud.com/,在上方菜单栏中点击“登录”。

 步骤 2 进入华为云控制台,更改当前区域为“华北-北京四”。

3.创建虚拟私有云 VPC

步骤 1 登陆华为云控制台,点击图标找到“虚拟私有云”,进入网络控制台,点击“创建虚拟私有云”进入创建界面

  • 基本信息:
  • l 当前区域:华北-北京四
  • l 名称:vx075
  • l 网段:192.168.0.0/16

默认子网:

  • l 可用区:可用区 1
  • l 名称:vxsubnet-075
  • l 子网 IPv4 网段:192.168.0.0/24
  • l 高级配置:默认配置(其余选项均保持默认即可)

步骤 2 点击“立即创建”,即可看到如下界面。

步骤 3 在网络控制台左侧菜单栏中点击“访问控制>安全组”进入安全组页面,点击需要修改的安全组“Sys-default”(当然也可以新建一个安全组,添加以下对应规则,并在创建云服务器时使用该安全组)。在“入方向规则”中点击“添加规则”。

4.创建弹性云服务器 ECS

步骤 1 登陆华为云控制台,点击下的“计算>弹性云服务器 ECS”,进入云服务器控制台,点击购买弹性云服务器。

步骤 2 设置云服务器参数

填写待创建弹性云服务器的“基本信息”。

  • l 计费方式:按需付费
  • l 区域:华北-北京四
  • l 可用区:可用区 1
  • l 规格:通用计算型,2 个 vCPU,4GB 内存
  • l 镜像:公共镜像,CentOS7.4
  • l 磁盘:系统盘,高 IO

填写“网络”相关信息。

  • l 虚拟私有云:选择已创建好的 VPC,如 vx075
  • l 安全组:选择已添加过安全组规则的安全组,如default
  • l 弹性 IP:现在购买
  • l 规格:全动态 BGP
  • l 计费模式:按带宽计费
  • l 宽带:5M

填写“高级配置”相关信息。

  • l 云服务器名称:如 ecs-075
  • l 登录凭证:公有云提供两种弹性云服务器鉴权方式。此处我们选择密码登录方式。密
  • 码:自定,如 Huawei@2024
  • l 云备份:暂不购买
  • l 云监控:可选,默认即可
  • l 云服务器组:可选,默认即可
  • l 高级配置:不勾选

步骤 3 点击“下一步 确认配置”,确认无误后,勾选“我已经阅读并同意《镜像免责申明》”,点击“立即购买”

步骤 4 返回云服务器控制台,等待片刻后,可查看到已创建好的弹性云服务器

5.登陆弹性云服务器

使用 xshell7 软件,登录弹性云服务器

6.升级默认 Python 版本

步骤 1 查看 CentOS7.4 自带的 Python 版本,建议使用如下命令:

python –version

步骤 2 下载 Python 安装包,这里以 Python 3.6.0 版本为例,建议使用如下命令(若出现乱码,可以将 Putty 设置改为 UTF-8,该操作不影响最后结果):

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

步骤 3 解压安装包,建议使用如下命令:

tar xvf Python-3.6.0a1.tar.xz

 步骤 4 执行命令:

cd Python-3.6.0a1

步骤 5 执行命令:

./configure

步骤 6 执行命令:

make && make install

 以上界面为执行成功的界面。但提示 pip 错误,原因是我的系统中少了 openssldevel 包,可以先忽略。

步骤 7 查看 Python3 版本,使用命令:

python3 --version

可以查看到此时的版本为 Python 3.6.0a1

7.升级默认 pip 版本

前面安装python3 提示“Ignoring ensurepip failure: pip 8.1.1 requires SSL/TLS”错误,导致 pip未成功安装,所以需要重新安装 pip

步骤 1 安装 openssl-devel 包,建议使用命令

yum install openssl-devel –y

步骤 2 执行命令:

make && make install

并升级 pip3,使用命令:

pip3 install --upgrade pip

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

8.安装 Web.py 框架

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

pip3 install web.py==0.40.dev0

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

9.安装 WinSCP

打开浏览器,输入 WinSCP 安装链接:https://winscp.net/eng/docs/lang:chs,点 击“下载”。

10.本地编写代码文件

10.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()

将该记事本文件另存为,格式如下:

  • l 文件名:main.py
  • l 保存类型:所有文件
  • l 编码:UTF-8

10.2 新建 handle.py 文件

步骤 1 在本地新建一个记事本文件,输入代码如下:

# -*- 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 = "weixin"
            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

将该记事本文件另存为,格式如下:

  • l 文件名:handle.py
  • l 保存类型:所有文件
  • l 编码:UTF-8

10.3 新建 receive.py 文件

在本地新建一个记事本文件,输入代码如下:

# -*- coding: utf-8 -*-
# filename: receive.py
import xml.etree.ElementTree as ET


def parse_xml(web_data):
    if len(web_data) == 0:
        return None
    xmlData = ET.fromstring(web_data)
    msg_type = xmlData.find('MsgType').text
    if msg_type == 'text':
        return TextMsg(xmlData)
    elif msg_type == 'image':
        return ImageMsg(xmlData)
    elif msg_type == 'location':
        return LocationMsg(xmlData)
    elif msg_type == 'event':
        return EventMsg(xmlData)


class Event(object):
    def __init__(self, xmlData):
        self.ToUserName = xmlData.find('ToUserName').text
        self.FromUserName = xmlData.find('FromUserName').text
        self.CreateTime = xmlData.find('CreateTime').text
        self.MsgType = xmlData.find('MsgType').text
        self.Eventkey = xmlData.find('EventKey').text


class Msg(object):
    def __init__(self, xmlData):
        self.ToUserName = xmlData.find('ToUserName').text
        self.FromUserName = xmlData.find('FromUserName').text
        self.CreateTime = xmlData.find('CreateTime').text
        self.MsgType = xmlData.find('MsgType').text
        self.MsgId = xmlData.find('MsgId').text


class TextMsg(Msg):
    def __init__(self, xmlData):
        Msg.__init__(self, xmlData)

        self.Content = xmlData.find('Content').text


class ImageMsg(Msg):
    def __init__(self, xmlData):
        Msg.__init__(self, xmlData)

        self.PicUrl = xmlData.find('PicUrl').text
        self.MediaId = xmlData.find('MediaId').text


class LocationMsg(Msg):
    def __init__(self, xmlData):
        Msg.__init__(self, xmlData)

        self.Location_X = xmlData.find('Location_X').text
        self.Location_Y = xmlData.find('Location_Y').text


class EventMsg(Msg):
    def __init__(self, xmlData):
        Event.__init__(self, xmlData)

        self.Event = xmlData.find('Event').text

将该记事本文件另存为,格式如下:

  • l 文件名:receive.py
  • l 保存类型:所有文件
  • l 编码:UTF-8

10.4 新建 templates 文件夹

新建 templates 文件夹,在文件夹下新建记事本文件,输入代码如下:

$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>

11.WinSCP 上传代码文件

步骤 1 打开 WinSCP,在界面中输入弹性云主机的主机名、用户名以及密码,确认输入无误后,点击登录。

步骤 2 在本地创建一个名称为 wx 的文件夹,将上述代码文件拖入到该文件夹中。

步骤 3 用 WinSCP 工具将 wx 文件夹上传到云服务器的根目录中。

12.启动对应服务

使用如下命令启动服务:python3 main.py 80。启动成功如图所示

13.启用开发者模式

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

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

  • URL:填写 ECS 上配置的弹性公网 IP,此处应该写:http://121.36.36.178/wx
  • Token:需要与 handle.py 中对应 token 取值完全一致,此处为 weixin。
  • EncodingAESKey:随机生成。
  • 消息加解密方式:此为示例,选择简单的“明文模式”。

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

14.微信公众号验证实验结果

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

15.删除弹性云服务器 ECS

步骤 1 登陆华为云控制台,进入弹性云服务器界面,点击“更多”按钮,在展开的选项中点击“删除”( 在删除时,需要勾选删除弹性公网 IP 和数据盘,以免删除不完整带来不必要的费用)。

 

16.删除虚拟私有云  

登陆华为云控制台,找到自己创建的虚拟私有云 VPC,点击该 VPC,删除该 VPC 的子网

至此,资源已全部删除完毕。

  • 15
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
PHP微信汽修管理源码是一种基于PHP语言开发的用于汽修行业的管理系统源码。这个源码主要包含了汽修店铺管理、维修订单管理、客户管理、库存管理等功能。 首先,汽修店铺管理功能允许用户添加和管理汽修店铺信息,包括店铺名称、地址、联系方式等。用户可以根据需要添加多个店铺,并能够对店铺信息进行修改和删除。 其次,维修订单管理功能允许用户记录和管理维修订单的相关信息,包括订单号、客户姓名、车辆信息、维修项目、维修费用等。用户可以根据订单号进行查询和查看订单详细信息,并能够对订单进行修改和删除。 再次,客户管理功能允许用户记录和管理汽修店铺的客户信息,包括客户姓名、联系方式、车辆信息等。用户可以根据客户姓名或联系方式进行查询和查看客户详细信息,并能够对客户信息进行修改和删除。 最后,库存管理功能允许用户记录和管理汽修店铺的配件库存情况,包括配件名称、数量、进货价格、销售价格等。用户可以对配件库存进行新增、修改和删除,并能够查询和查看库存的详细信息。 总的来说,PHP微信汽修管理源码提供了一种便捷的方式来管理汽修店铺的各类信息,使得店铺管理、订单管理、客户管理和库存管理等过程更加高效和方便。同时,源码基于微信平台,可以通过微信公众号等方式与用户进行交互,提供更好的用户体验。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

噗-噗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值