用户在小程序操作后通过公众号(服务号)推送通知

版权声明:本文为博主原创文章,未经博主允许不得转载。转载请标明文章出处和原文链接。欢迎加QQ群交流:191695206 https://blog.csdn.net/wangzl1163/article/details/83350076

一、前言

用户在小程序进行了一个操作,操作结果不是立马返回的可能需要隔一段时间才能有处理结果,那么这时候需要让用户知道操作的结果,应该怎么办呢?总的来说有两种解决方案。一种是通过小程序模板消息,推送服务通知。这种方式只能支持用户提交表单或者进行了支付这两种场景,支持的场景过少是这种方式的缺点。一种是通过公众号(服务号)来推送消息。这种方式相比第一种方式要好的多,没有场景限制,能够满足所有需要通知的场景。

在上面说到的需求基础上如果A用户在小程序进行了操作需要通知B用户,只要B用户关注了公众号(服务号),那么推送消息进行通知就是可以实现的。

二、实现方案

由于第一种方案的场景限制以及实现比较方便,参考官方文档即可,在这里不再描述。

第二种方式实现思路:

将微信公众号和小程序关联绑定,开发者数据库记录每个用户的unionID以及在公众号和小程序账号下不同的openID,公众号必须是服务号类型,订阅号类型不支持开发者单独给某个微信用户主动发送模版消息。小程序的A用户触发某个操作,公众号去提醒B用户,开发者服务器端调用sendUniformMessage接口给服务号下的某个绑定用户发送模版消息。

三、具体步骤

a、公众号(服务号)进行认证。

b、公众号关联小程序。具体关联步骤,网上很多,搜一下即可。

c、服务器端调用sendUniformMessage接口,实现推送。

代码如下:

sendUniformMessage接口请求地址:

POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=ACCESS_TOKEN

 注:access_token——小程序接口调用凭证

请求数据示例:

{
    "touser":"ojzW05MCMmYnD3xZZ-0kFa-SK6if", // 接收推送的用户的openid
    "mp_template_msg":{                      // 有此节点发送公众号模板消息
        "appid":"wxae29545104ff81fb",        // 公众号appid
        "template_id":"gEb1-jKjtvSrIFNGCadGdFHf5_DmJxZ_iLT7j-ZOAYU",  // 模板id
        "url":"#",                           // 公众号模板消息所要跳转的url
        "miniprogram":{
            "appid":"wxd5672a9b86a06fb9",    // 小程序appid
            "pagepath":""                    // 小程序页面路由(路径)
        },
        "data":{                             //  消息模板中的数据(推送消息要展示的内容)
            "first":{
                "value":"恭喜你购买成功!",
                "color":"#173177"
            },
            "keyword1":{
                "value":"巧克力",
                "color":"#173177"
            },
            "keyword2":{
                "value":"39.8元",
                "color":"#173177"
            },
            "remark":{
                "value":"欢迎再次购买!",
                "color":"#173177"
            }
        }
    }
}

返回数据:

{
 "errcode": 0,
 "errmsg": "ok"
}

注:此结果表示推送消息成功。

猜你喜欢

转载自blog.csdn.net/wangzl1163/article/details/83350076