微信公眾號自定義發送模板信息


1、首先

獲得模板ID

從行業模板庫選擇模板到賬號后台,獲得模板ID的過程可在MP中完成。為方便第三方開發者,提供通過接口調用的方式來修改賬號所屬行業,具體如下:

接口調用請求說明

http請求方式: POST
https://api.weixin.qq.com/cgi-bin/template/api_add_template?access_token=ACCESS_TOKEN

POST數據說明

 
        

POST數據示例如下:

 
        
      {
           "template_id_short":"TM00015"
       }
 
        

參數說明

 
        
參數 是否必須 說明
template_id_short 模板庫中模板的編號,有“TM**”和“OPENTMTM**”等形式

參數template_id_short是微信公眾號里面有菜單模板消息-》模板庫里的編號

返回碼說明

在調用模板消息接口后,會返回JSON數據包。正常時的返回JSON數據包示例:

    {
           "errcode":0,
           "errmsg":"ok",
           "template_id":"Doclyl5uP7Aciu-qZ7mJNPtWkbkYnWBWVja26EGbNyk"
       }
2、根據上面方法得到template_id

發送模板消息

接口調用請求說明

http請求方式: POST
https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
我的demo例子是:
接口:
/*jsonText是拼接格式發送內容
     * String first="您好,歡迎在新禮特購物!";
    String remark="您的收貨信息:"+order.getReceiver_name()+"電話:"+order.getReceiver_mobile()+"地址:"+order.getReceiver_city()+order.getReceiver_zone()+order.getReceiver_address()+"我們將盡快發貨,祝您購物愉快!";
    String jsonText="{"touser":"OPENID","template_id":"templateId","url":"","topcolor":"#FF0000","data":{"first": {"value":"firstData","color":"#173177"},"product": {"value":"productData","color":"#173177"},"price": {"value":"priceData","color":"#173177"},"time": {"value":"timeData","color":"#173177"},"remark": {"value":"remarkData","color":"#173177"}}}";
    jsonText= jsonText.replace("firstData", first).replace("templateId", templateId).replace("OPENID", order.getBuyer_openid()).replace("productData", order.getProduct_name()).replace("priceData",order.getOrder_total_price()/100f+"元").replace("timeData", order.getOrder_create_time()).replace("remarkData", remark);
    */
    /**
     * 自定義發送模板信息
     * @param accessToken 公眾號標識
     * @param data 發送的內容拼接成的
     * @return
     *
     */

    public boolean SendTempletTest(String accessToken,String data){
        String requestUrl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN";
        if(StringUtil.isEmptyString(data)){
            log.info("模版參數為空");
            return false;
        }
        // 拼接請求地址
        requestUrl = requestUrl.replace("ACCESS_TOKEN", accessToken);
        try {
            //將這里修改為自己調用服務的方式
            JSONObject jsonObject = CommonUtil.httpsRequest(requestUrl, "POST",data);
            if(jsonObject!=null){
                if("0".equals(jsonObject.getString("errcode"))){
                System.out.println("發送模板消息成功!");
                }else{
                System.out.println(jsonObject.getString("errcode"));
                }
                }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return true;
    }

test類調用:
//ApiConfig類是自己工程里面微信公眾號的配置文件。獲取access_token

ApiConfig api=ApiConfig.getInstance();
String token=api.getAccessToken();
//自定義模版發送
    String first="您好,歡迎您進入XX!";
    String templateId="上面方法獲取到的模板Id號";
    String tradeDateTime=DateUtil.formatDateAndTime(new Date());
    String orderType="訂單類型";
    String customerInfo="客戶信息";
    String orderItemName="測試";
    String orderItemData=DateUtil.formatDateAndTime(new Date());
    String remark="測試微信";
    String weixinId="o4SpQs8tP9c4Ka38WZkc3t1mnF0Q";
    String jsonText="{\"touser\":\"OPENID\",\"template_id\":\"templateIdDate\",\"url\":\"\",\"topcolor\":\"#FF0000\",\"data\":{\"first\": {\"value\":\"firstData\",\"color\":\"#173177\"},\"tradeDateTime\": {\"value\":\"tradeDateTimeDate\",\"color\":\"#173177\"},\"orderType\": {\"value\":\"orderTypeDate\",\"color\":\"#173177\"},\"customerInfo\": {\"value\":\"customerInfoDate\",\"color\":\"#173177\"},\"orderItemName\": {\"value\":\"orderItemNameDate\",\"color\":\"#173177\"},\"orderItemData\": {\"value\":\"orderItemDataDate\",\"color\":\"#173177\"},\"remark\": {\"value\":\"remarkDate\",\"color\":\"#173177\"}}}";
    jsonText= jsonText.replace("firstData", first).replace("templateIdDate", templateId).replace("OPENID", weixinId).replace("tradeDateTimeDate", tradeDateTime).replace("orderTypeDate",orderType).replace("customerInfoDate", customerInfo).replace("orderItemNameDate", orderItemName).replace("orderItemDataDate", orderItemData).replace("remarkDate", remark);
    //這是調用剛剛那接口
    boolean re=util.SendTempletTest(token, jsonText);

返回碼說明

在調用模板消息接口后,會返回JSON數據包。正常時的返回JSON數據包示例:

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM