您的位置:首页 > 移动开发 > 微信开发

微信公众号自定义发送模板信息

2015-12-25 11:42 681 查看
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
}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: