手机版

百科生活 投稿

微信模板消息编码,发送微信模板消息返回40165

百科 2025-12-28 14:26:14 投稿 阅读:3313次

关于【微信模板消息编码】,今天涌涌小编给您分享一下,如果对您有所帮助别忘了关注本站哦。

  • 内容导航:
  • 1、微信模板消息编码:【踩坑系列】发送微信模板消息返回40165 invalid weapp pagepath
  • 2、微信模板消息编码,微信发送模板消息功能

1、微信模板消息编码:【踩坑系列】发送微信模板消息返回40165 invalid weapp pagepath

登录地址:mp.weixin.qq.com

新建模板消息的方法如下所示:

1)在左侧“广告与服务”菜单下找到“模板消息”菜单

微信模板消息编码,发送微信模板消息返回40165

2)点击”从历史模板库中添加“按钮

微信模板消息编码,发送微信模板消息返回40165

3)找到合适的模板后,点击”详情”,打开模板详情页

微信模板消息编码,发送微信模板消息返回40165

4)在模板详情页点击”添加“按钮,将模板添加到自己的公众号中

微信模板消息编码,发送微信模板消息返回40165

5)添加完成后,就可以拿到模板id

微信模板消息编码,发送微信模板消息返回40165

1.2 调用发送模板消息接口

模板消息接口文档:

developers.weixin.qq.com/doc/offiacc…

发送模板消息接口:

api.weixin.qq.com/cgi-bin/mes…

按照接口文档要求,最终调用接口的请求报文大致如下所示:

{ "template_id":"RJr0LvTwWtwKNNeorUtfBF-ClwCRCB9GAfO55H6DjtE", "touser":"oYLSx0S7Oci-kbNIrPA461q9g1iE", "data":{ "first":{ "color":"", "value":"尊敬的客户,感谢您选择****,\n以下为*****交易风险提示" }, "keyword1":{ "color":"", "value":"沪C88V88" }, "keyword2":{ "color":"", "value":"2023年03月28日 15:56" }, "keyword3":{ "color":"", "value":"*****交易风险提示\n为保障您的财产安全,谨防法律风险,***提醒您,请遵循平台交易流程,切勿与任何非平台第三方单独/私下交易,\n如您遇到有****买家或员工向您表示想私下交易的,可向平台进行举报,经查证属实可获奖励 800 元/单。\n" }, "remark":{ "color":"#fe2d46", "value":"如需举报,请点击本条消息 >>>" } }, "miniprogram":{ "appid":"wx356234er34567dv", "pagepath":"pages/order/detail?id=23" }}复制代码

说明:

1)如果模板消息中的内容需要换行,如上面的first里的内容,可以使用换行符\n。

2)如果模板消息中的内容需要自定义字体颜色,如上面的remark里的内容,可以给color赋值为自定义的颜色。

提测后,测试反馈一直收不到微信模板消息,查看日志后,发现调用发送模板消息接口后,一直返回40165这个错误码,消息未发送成功。

响应报文如下所示:

{ "errcode":40165, "errmsg":"invalid weapp pagepath rid: 64229d9f-2e863b15-2db557df"}复制代码

2. 原因分析

看到40165这个错误码,想先去微信接口文档中查找下这个错误码的说明,结果文档中并没有找到,

然后根据errmsg的提示猜测可能是小程序的跳转地址,微信识别不了,所以代码先把跳转小程序的部分注释了,再次发送,

发现消息发送成功了,证实消息发送失败确实是因为小程序跳转地址导致的。

和前端沟通后,得知这个跳转地址,是本次需求新加的,处于小程序的开发版中,小程序正式版中暂时没有该地址,

所以导致发送微信模板消息一直报这个错。

2、微信模板消息编码,微信发送模板消息功能

using System.Collections.Generic;

using System.Linq;

using System.Net;

using System.Text;

using System.IO;

using System.Threading.Tasks;

using Newtonsoft.Json;

namespace Common

{

public class WeChat

{

private const string appid = "wx5549020498b877c2";

private const string secret = "23e4036a44dd0f0d700cd659daf2c5b7";

public class AccessToken

{

public string access_token { get; set; }

public int expires_in { get; set; }

public DateTime CreateDate { get; set; }

}

public void SendTemplete(string temid,string touser,object data)

{

var token = GetAccessToken();

var postUrl = string.Format("https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={0}", token);

var msgData = http://www.029ztxx.com/tg/new

{

touser = touser,

template_id = temid,

data = http://www.029ztxx.com/tg/data

};

var j = JsonConvert.SerializeObject(msgData);

var res = GetDataByPost(postUrl, j);

}

private string GetAccessToken()

{

var token = new AccessToken();

var accessToken = CacheHelper.GetCache("accessToken");

if (accessToken == null)

{

//获取TOKEN

token = GetToken();

CacheHelper.SetCache("accessToken", token);

}

else

{

token = CacheHelper.GetCache("accessToken") as AccessToken;

//判断时间

if (DateTime.Now >token.CreateDate.AddSeconds(token.expires_in))

{

//获取TOKEN

token = GetToken();

CacheHelper.SetCache("accessToken", token);

}

}

var t = CacheHelper.GetCache("accessToken") as AccessToken;

return t.access_token;

}

private AccessToken GetToken()

{

string apiurl = $"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={appid}&secret={secret}";

string res = GetDataByPost(apiurl);

var v= JsonConvert.DeserializeObject(res);

v.CreateDate = DateTime.Now;

return v;

}

private string GetDataByPost(string url,string postDatahttp://www.029ztxx.com/tg/= "")

{

string result = "";

byte[] byteData = http://www.029ztxx.com/tg/Encoding.GetEncoding("UTF-8").GetBytes(postData);

try

{

HttpWebrequest request = (HttpWebRequest)WebRequest.Create(url);

request.ContentType = "application/x-www-form-urlencoded";

request.Referer = url;

request.Accept = "*/*";

request.Timeout = 30 * 1000;

request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)";

request.Method = "POST";

request.ContentLength = byteData.Length;

Stream stream = request.GetRequestStream();

stream.Write(byteData, 0, byteData.Length);

stream.Flush();

stream.Close();

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

Stream backStream = response.GetResponseStream();

StreamReader sr = new StreamReader(backStream, Encoding.GetEncoding("UTF-8"));

result = sr.ReadToEnd();

sr.Close();

backStream.Close();

response.Close();

request.Abort();

}

catch (Exception ex)

{

result = ex.Message;

}

return result;

}

}

}

使用代码

var wx = new WeChat();

var data = http://www.029ztxx.com/tg/new

{

first = new {value="http://www.029ztxx.com/tg/1"},

keyword1=new {value="http://www.029ztxx.com/tg/2"},

keyword2 =new {value="http://www.029ztxx.com/tg/3"},

keyword3 =new {value="http://www.029ztxx.com/tg/4"},

keyword4 =new {value="http://www.029ztxx.com/tg/5"},

remark=new {value="http://www.029ztxx.com/tg/remark"}

};

wx.SendTemplete("2l8wR0HMUXJkVldvgcSaFFmUCVgePhZ7dKzNDSbp8NA", "__openId__", data);

本文关键词:微信消息代码,微信模板消息编码是什么,微信编码是什么意思,微信消息编辑器,微信模板消息编码怎么设置。这就是关于《微信模板消息编码,发送微信模板消息返回40165》的所有内容,希望对您能有所帮助!

本文链接:https://bk.89qw.com/a-870797

最近发表
网站分类