微信小程序> 发送微信小程序消息

发送微信小程序消息

浏览量:981 时间: 来源:chenshankongW

                                                                                  发送微信小程序消息

一、需要得到用户的数据:

   1. 用户微信的唯一标识: oppenId

   2. 判断用户使用的是哪种类型的手机,苹果和安卓使用的formId是不一样的,不能混用

   3.  记录用户在小程序点击按钮的formId,formId七天后会过期,如使用过期的formId发送消息,会提示:formId不可用

二、 获取Token

  调用微信小程序开发文档中的接口,获取access_token,有效期为2个小时,使用的时候需要注意调用的次数每日是有限制的

 调用access_token次数:

       体验版: 每日限制次数为200次

       正式环境:每日限制次数为2000次

三、发送消息

    注意:小程序需要配置消息模板,体验版与正式环境的模板id一致  

   接口地址:https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=调用获取access_token接口

 

参数详解:

    access_token :接口调用凭证,需要调用接口获取

    touser : 接收者(用户)的 openid  --- 需要用户在登录小程序的时候授权获得

    template_id : 发送的消息模板id --- 不区分体验版还是正式环境

    page  : 点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)不填则模板无跳转。

    form_id :表单提交场景下,为 submit 事件带上的 formId;支付场景下,为本次支付的 prepay_id  --- 需要收集多个formId

    data :  模板内容   ---  里面的字段是自己配置的  格式: json串

    emphasis_keyword :模板需要放大的关键词,不填则默认无放大

 

请求参数示例:

{  "touser": "OPENID",  "template_id": "TEMPLATE_ID",  "page": "index",  "form_id": "FORMID",  "data": {    "keyword1": {      "value": "339208499"    },    "keyword2": {      "value": "2015年01月05日 12:30"    },    "keyword3": {      "value": "腾讯微信总部"    },    "keyword4": {      "value": "广州市海珠区新港中路397号"    }  },  "emphasis_keyword": "keyword1.DATA"}

代码:

     /**     * 获取access_token     */    private String getAccess_Token() {        String APPID = "小程序唯一凭证,即APPID";        String SECRET = "小程序唯一凭证密钥,即AppSecret";        String access_token = "";        String post = HttpUtil.doGet("https://api.weixin.qq.com/cgi-bin/token?appid=" + APPID + "&secret=" + SECRET + "&grant_type=client_credential");        JSONObject jsonObject = (JSONObject) JSON.parse(post);        access_token = (String) jsonObject.get("access_token");        System.out.println("access_token==" + access_token);        return access_token;    }    /**     * 推送微信小程序消息     */    private String sendWXTemplateMsg(JSONObject data, String formId, String openId, String templateId, String page, String token) {        JSONObject param = new JSONObject();        param.put("touser", openId);        param.put("template_id", templateId);        param.put("page", page);        param.put("form_id", formId);        // 模板信息        if (data != null) {            param.put("data", data);        }        String doPost = HttpUtil.doPost("https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=" + token, param.toJSONString());//        String post = HttpKit.post(, json);        System.out.println("doPost==" + doPost);        return doPost;    }

返回示例:

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

 

返回的错误码:

0 :  推送成功

40037 :template_id不正确

41028 :form_id不正确,或者过期  ---  遇到的次数最多

41029 :form_id已被使用   --- 用过后要即时删除,避免发生此错误

41030 :page不正确   ---  点击消息跳转的页面地址

45009 :接口调用超过限额(目前默认每个帐号日调用限额为100万)     

 

官方地址:

获取token: https://developers.weixin.qq.com/miniprogram/dev/api-backend/getAccessToken.html

发送消息:https://developers.weixin.qq.com/miniprogram/dev/api-backend/sendTemplateMessage.html

 

 

 

小程序

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎