微信公众号利用客服接口主动给用户发送消息的方法

目前微信并没有放出主动给用户发送消息的接口,但是我们可以使用其多客服接口来达到主动给用户发送消息的目的。

当用户和公众号产生特定动作的交互时(具体动作列表请见下方说明),微信将会把消息数据推送给开发者,开发者可以在一段时间内(目前修改为48小时)调用客服接口,通过POST一个JSON数据包来发送消息给普通用户。此接口主要用于客服等有人工消息处理环节的功能,方便开发者为用户提供更加优质的服务。

目前允许的动作列表如下(公众平台会根据运营情况更新该列表,不同动作触发后,允许的客服接口下发消息条数不同,下发条数达到上限后,会遇到错误返回码,具体请见返回码说明页):

1、用户发送信息
2、点击自定义菜单(仅有点击推事件、扫码推事件、扫码推事件且弹出“消息接收中”提示框这3种菜单类型是会触发客服接口的)
3、关注公众号
4、扫描二维码
5、支付成功
6、用户维权

下面开始实现一个主动发送消息的demo

以下均为php代码

全局变量(请自行修改)

$APPID="wx1234566"; 
$APPSECRET="aabbccddd";

公共方法

function https_request($url,$data = null){
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
    if (!empty($data)){
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    }
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $output = curl_exec($curl);
    curl_close($curl);
    return $output;
}

获取token

将token存放在本地,获取token先判断token是否过期,过期则重新接口获取,否则直接取本地的

function getToken()
{
    global $APPID;
    global $APPSECRET;
    $token_file = dirname(__FILE__).'/data/token.txt';
    if(!file_exists($token_file) || ((time() - filemtime($token_file)) > 7000)){
        $TOKEN_URL="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$APPID."&secret=".$APPSECRET;

        $json=file_get_contents($TOKEN_URL);
        $result=json_decode($json);

        $ACC_TOKEN=$result->access_token;
        file_put_contents($token_file,$ACC_TOKEN);
    }else{
        $ACC_TOKEN = file_get_contents($token_file);
    }
    return $ACC_TOKEN;
}

添加客服

请先在微信公众平台后台开通微信客服

function addkf()
{
    $url = 'https://api.weixin.qq.com/customservice/kfaccount/add?access_token='.getToken();

    $data = '{
         "kf_account" : "system@system",
         "nickname" : "客服1",
         "password" : "systemsystem",
    }';
    echo https_request($url,$data);
}

发送消息

function sendmsg(){
    $url = 'https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token='.getToken();
    $data = '{
        "touser":"接收用户的openid",
        "msgtype":"text",
        "text":
        {
             "content":"Hello World"
        }
    }';
    echo https_request($url,$data);
}

实例效果

 

### 微信公众号中销售系统的开发 #### 服务器环境搭建与配置 为了构建微信公众号中的销售系统,首先需要注册微信公众平台账号并创建自己的微信公众号。接着,在微信公众平台上申请开发者账号,并获取开发者ID和开发者密钥。完成这些准备工作之后,需在微信公众平台上配置服务器地址,并将此地址同开发者ID以及开发者密钥绑定起来[^1]。 对于不具备公网部署条件的情况,可以考虑采用内网穿透技术来实现在本地环境中运行所需的系统,从而绕过对外部托管服务的需求[^2]。 #### 获取Access Token 当准备就绪后,要使销售功能得以实现,则必须先获得`access_token`这一关键凭证。这是因为在微信公众号的开发过程中,如果希望主动向微信服务器发送请求(比如推送订单确认通知),就需要依赖于`access_token`作为访问令牌。该令牌是用于验证身份的有效证明,每次调用微信提供的各类接口时都不可或缺。其形式为一串复杂的字符序列[^3]。 ```python import requests def get_access_token(appid, secret): url = f"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={appid}&secret={secret}" response = requests.get(url).json() access_token = response['access_token'] return access_token ``` #### 功能模块设计 针对销售管理系统而言,主要涉及以下几个方面: - **商品管理**:允许管理员录入产品信息、设置价格及库存量;顾客可以通过界面浏览商品详情。 - **订单处理**:支持下单操作,记录购买者的个人信息及其选购的商品列表;后台可查看未付款/已发货状态下的订单情况。 - **支付集成**:对接第三方支付渠道如微信支付插件,确保交易安全可靠地完成资金流转过程。 - **客户关系维护**:收集反馈意见,提供售后服务入口链接给用户以便解决问题或咨询疑问。 以上各个部分均应充分利用微信公众平台所提供的API接口来进行定制化开发工作,以满足特定业务场景下对销售流程自动化的要求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值