以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  微信模版消息发送失败  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=189617)

--  作者:ycs5801
--  发布时间:2023/12/12 10:38:00
--  微信模版消息发送失败

把代码复制到命令窗口执行,错误信息如图。

代码如下:

Dim url As String = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={0}"
Dim hc As New HttpClient(CExp(url, Functions.Execute("GetAccessToken")))
Dim jo As New JObject
Dim ja As New JArray
jo("touser") = "xxx"
jo("template_id") = "xxx" \'模板ID
jo("url") = "http://cbjg.700.xyz"
jo("data") = New JObject()
jo("data")("short_thing4") = New JObject()
jo("data")("short_thing4")("value") = "Foxtable"
jo("data")("short_thing4")("color") = "#173177"

hc.content = jo.Tostring()
jo = JObject.Parse(hc.getdata)
If jo("errcode") = "0" Then
    MessageBox.show("模版消息发送成功!")
Else
    Messagebox.Show(jo.ToString)
End If


图片点击可在新窗口打开查看此主题相关图片如下:img_9490.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2023/12/12 10:48:00
--  
提示AccessToken有问题,没有获取到,或者过期了。
1、检查一下appID和appsecret是不是填错了。
2、检查执行代码的电脑外网IP是不是没有添加到公众号白名单

--  作者:ycs5801
--  发布时间:2023/12/13 21:59:00
--  这个

又出现这个错误

图片点击可在新窗口打开查看此主题相关图片如下:img_9490.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2023/12/13 22:13:29编辑过]

--  作者:ycs5801
--  发布时间:2023/12/13 22:21:00
--  
暂时没问题了
--  作者:ycs5801
--  发布时间:2023/12/13 23:03:00
--  

发送模版消息中这段:

Dim url As String = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={0}"
Dim
hc As New HttpClient(CExp(url, Functions.Execute("GetAccessToken")))
Dim
jo As New JObject
Dim
ja As New JArray
jo
("touser") = "ofjtFwBSZ5cNqTKLSKx2TNEAxfBI"
jo
("template_id") = "WPpt3ki1Haq-ERpQvWXAgT7IZbfO07mbKtjnRt1Kiek" \'模板ID
jo
("url") = http://www.foxtable.com

如果一次想给多个用户发送,需要怎么改?


--  作者:有点蓝
--  发布时间:2023/12/14 8:57:00
--  
一次只能给一个用户发送,遍历所有用户名称发送

比如
Dim url As String = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={0}"
for each s as string in {"openid1","openid2"}
Dim hc As New HttpClient(CExp(urlFunctions.Execute("GetAccessToken")))
Dim
 jo As New JObject
Dim
 ja As New JArray
jo
("touser") = s
jo
("template_id") = "WPpt3ki1Haq-ERpQvWXAgT7IZbfO07mbKtjnRt1Kiek" \'模板ID
jo
("url") = http://www.foxtable.com

--  作者:ycs5801
--  发布时间:2023/12/14 18:41:00
--  

 If dr2("openid") <> "" Then \'推送公众号
                                messagebox.Show("2")
                                Dim url As String = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={0}"
                                Dim hc As New HttpClient(CExp(url, Functions.Execute("GetAccessToken")))
                                Dim jo As New JObject
                                Dim ja As New JArray
                                 messagebox.Show(dr2("openid"))
                                jo("touser") = dr2("openid")
                                 messagebox.Show("111")
                                jo("template_id") = "k16daqo2JIEhQXUOufSPDzYjguPr08RCZCzoR4" \'模板ID
                                 messagebox.Show("22")

这句为什么总出错呢?


--  作者:有点蓝
--  发布时间:2023/12/14 20:05:00
--  
类型不匹配,改为

jo("touser") = cstr(dr2("openid"))

--  作者:ycs5801
--  发布时间:2023/12/15 19:29:00
--  
dr2("openid")这个值本身不是字符串吗?为什么还需要转换一次?
--  作者:ycs5801
--  发布时间:2023/12/15 20:25:00
--  

  \'以下发送关员公众号推送
                            messagebox.Show("1")
                            If dr2("openid") <> "" Then \'推送公众号
                                messagebox.Show("2")
                                Dim url As String = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={0}"
                                Dim hc As New HttpClient(CExp(url, Functions.Execute("GetAccessToken")))
                                Dim jo As New JObject
                                Dim ja As New JArray
                                messagebox.Show(dr2("openid"))
                                jo("touser") = cstr(dr2("openid"))
                                messagebox.Show("111")
                                jo("template_id") = "k16daqo2JIEhQXUOuPr08RCZCzoR4" \'模板ID
                                messagebox.Show("22")
                                jo("url") = "http://cbjg.700.xyz"
                                jo("data") = New JObject()
                                messagebox.Show("33")
                                jo("data")("thing2") = New JObject()
                                jo("data")("thing2")("value") = cstr(dr("船舶代理")) & cstr(dr("用户姓名")) & "已申报船名:" & cstr(dr("中文船名")) & ",请按要求进行后续工作。"
                                jo("data")("thing2")("color") = "#173177"
                                jo("data")("time4") = New JObject()
                                jo("data")("time4")("value") = Date.Today()
                                jo("data")("time4")("color") = "#173177"
                                messagebox.Show("44")
                                hc.content = jo.Tostring()
                                jo = JObject.Parse(hc.getdata)
                                messagebox.Show("3")
                            End If
                           

设置的这些mssage都正常显示了,但是微信公众号 没有推送信息,怎么回事?