微信开发者图文消息模板_教你如何用微信公众号开发模板消息推送功能(图文) - CSDN
  • 背景:最近有一个客户做微信...因此,只能在开发模式下面实现,然而群发的图文消息的链接不是由开发者来确定的,而是当创建图文消息的时候微信指定好的。所以通过直接点击图文消息获取粉丝的信息是不现实的。(当然腾

         背景:最近有一个客户做微信公众号,想通过每月的推送,通过微信的jssdk接口,统计阅读或分享推送的人群,根据这个进行人群画像,为进一步销售做准备。但是,微信公众平台只提供了查看推送的人数,并没有提供查看该篇推送的用户的任何信息。因此,只能在开发模式下面实现,然而群发的图文消息的链接不是由开发者来确定的,而是当创建图文消息的时候微信指定好的。所以通过直接点击图文消息获取粉丝的信息是不现实的。(当然腾讯也不可能让你通过这种渠道来搜集用户信息的。当然,不排除以后腾讯修改接口,然后自己来统计这些信息,到时候估计只调用接口就可以了,也就不用这么麻烦了。)


    鉴于此,提供以下几种间接的方式:

        1、在原文内容中给文字或图片添加<a></a>标签,这里面的链接可以外链到自己的服务器地址。

        2、通过阅读原文方式(阅读原文的链接可以自己指定)

        这两种方式的示例图如下所示,

           

        3、关注回复

        当用户关注公众号的时候,服务器可以接收一个事件的响应,然后根据该响应回复给用户一条图文信息,这个时候的图文信息中的链接地址可以是外链,链接到自己服务器的地址,这样就可以进行用户信息统计了。

        4、客服消息接口(客户在48小时之内与公众号有互动的)

              当有用户在48小时之内给公众号有交互时,就可以通过客服接口给用户发送图文信息,这个时候的图文消息中的链接地址也可以自己指定。

        5、微信自定义菜单的跳转或推送

              点击自定义菜单,可以推送给用户一个图文消息,或者直接在菜单上添加链接地址。

        6、模板消息

              微信提供的有模板消息接口,只不过这些模板消息中不能添加图片,但是可以给整个模板消息添加链接地址。当然出现以下情况属于违规,会被封号。


    展开全文
  • 模板消息可以无限推送,但是容易被投诉 图文消息就是文章消息,一个月4次

    每个项目产品都会让你加埋点,你是愿意花几天一个个加,还是愿意几分钟一个小时加完去喝茶聊天?来试试这520web工具, 高效加埋点,目前我们公司100号前端都在用,因为很好用,所以很自然普及开来了,推荐给大家吧

    http://www.520webtool.com/

    自己开发所以免费,埋点越多越能节约时间,点两下埋点就加上了,还不会犯错,里面有使用视频,反正免费 😄

    模板消息可以无限推送,但是容易被投诉

    图文消息就是文章消息,一个月4次

    展开全文
  • 微信开发者文档

    2019-01-12 10:54:37
    用户在关注与取消关注公众号时,微信会把这个事件推送到开发者填写的URL。方便开发者给用户下发欢迎消息或者做帐号的解绑。 微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总...

    接收事件推送

    目录

    1 关注/取消关注事件

    2 扫描带参数二维码事件

    3 上报地理位置事件

    4 自定义菜单事件

    5 点击菜单拉取消息时的事件推送

    6 点击菜单跳转链接时的事件推送

    关注/取消关注事件

    用户在关注与取消关注公众号时,微信会把这个事件推送到开发者填写的URL。方便开发者给用户下发欢迎消息或者做帐号的解绑。

    微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次

    关于重试的消息排重,推荐使用FromUserName + CreateTime 排重。

    假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试。

    推送XML数据包示例:

    <xml>

    <ToUserName><![CDATA[toUser]]></ToUserName>

    <FromUserName><![CDATA[FromUser]]></FromUserName>

    <CreateTime>123456789</CreateTime>

    <MsgType><![CDATA[event]]></MsgType>

    <Event><![CDATA[subscribe]]></Event>

    </xml>

    参数说明:

    参数           描述 

    ToUserName     开发者微信号 

    FromUserName   发送方帐号(一个OpenID) 

    CreateTime     消息创建时间 (整型) 

    MsgType        消息类型,event 

    Event          事件类型,subscribe(订阅)、unsubscribe(取消订阅) 

    扫描带参数二维码事件

    用户扫描带场景值二维码时,可能推送以下两种事件:

    1.如果用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值关注事件推送给开发者。

    2.如果用户已经关注公众号,则微信会将带场景值扫描事件推送给开发者。

    1. 用户未关注时,进行关注后的事件推送

    推送XML数据包示例:

    <xml><ToUserName><![CDATA[toUser]]></ToUserName>

    <FromUserName><![CDATA[FromUser]]></FromUserName>

    <CreateTime>123456789</CreateTime>

    <MsgType><![CDATA[event]]></MsgType>

    <Event><![CDATA[subscribe]]></Event>

    <EventKey><![CDATA[qrscene_123123]]></EventKey>

    <Ticket><![CDATA[TICKET]]></Ticket>

    </xml>

    参数说明:

    参数               描述 

    ToUserName         开发者微信号 

    FromUserName       发送方帐号(一个OpenID) 

    CreateTime         消息创建时间 (整型) 

    MsgType            消息类型,event 

    Event              事件类型,subscribe 

    EventKey           事件KEY值,qrscene_为前缀,后面为二维码的参数值 

    Ticket             二维码的ticket,可用来换取二维码图片 

    2. 用户已关注时的事件推送

    推送XML数据包示例:

    <xml>

    <ToUserName><![CDATA[toUser]]></ToUserName>

    <FromUserName><![CDATA[FromUser]]></FromUserName>

    <CreateTime>123456789</CreateTime>

    <MsgType><![CDATA[event]]></MsgType>

    <Event><![CDATA[SCAN]]></Event>

    <EventKey><![CDATA[SCENE_VALUE]]></EventKey>

    <Ticket><![CDATA[TICKET]]></Ticket>

    </xml>

    参数说明:

    参数                    描述 

    ToUserName              开发者微信号 

    FromUserName            发送方帐号(一个OpenID) 

    CreateTime              消息创建时间 (整型) 

    MsgType                 消息类型,event 

    Event                   事件类型,SCAN 

    EventKey                事件KEY值,是一个32位无符号整数,即创建二维码时的二维码scene_id 

    Ticket                  二维码的ticket,可用来换取二维码图片 

    上报地理位置事件

    用户同意上报地理位置后,每次进入公众号会话时,都会在进入时上报地理位置,或在进入会话后每5秒上报一次地理位置,公众号可以在公众平台网站中修改以上设置。上报地理位置时,微信会将上报地理位置事件推送到开发者填写的URL。

    推送XML数据包示例:

    <xml>

    <ToUserName><![CDATA[toUser]]></ToUserName>

    <FromUserName><![CDATA[fromUser]]></FromUserName>

    <CreateTime>123456789</CreateTime>

    <MsgType><![CDATA[event]]></MsgType>

    <Event><![CDATA[LOCATION]]></Event>

    <Latitude>23.137466</Latitude>

    <Longitude>113.352425</Longitude>

    <Precision>119.385040</Precision>

    </xml>

    参数说明:

    参数                   描述 

    ToUserName             开发者微信号 

    FromUserName           发送方帐号(一个OpenID) 

    CreateTime             消息创建时间 (整型) 

    MsgType                消息类型,event 

    Event                  事件类型,LOCATION 

    Latitude               地理位置纬度 

    Longitude              地理位置经度 

    Precision              地理位置精度 

    使用网页调试工具调试该接口

    自定义菜单事件

    用户点击自定义菜单后,微信会把点击事件推送给开发者,请注意,点击菜单弹出子菜单,不会产生上报。

    点击菜单拉取消息时的事件推送

    推送XML数据包示例:

    <xml>

    <ToUserName><![CDATA[toUser]]></ToUserName>

    <FromUserName><![CDATA[FromUser]]></FromUserName>

    <CreateTime>123456789</CreateTime>

    <MsgType><![CDATA[event]]></MsgType>

    <Event><![CDATA[CLICK]]></Event>

    <EventKey><![CDATA[EVENTKEY]]></EventKey>

    </xml>

    参数说明:

    参数                 描述 

    ToUserName           开发者微信号 

    FromUserName         发送方帐号(一个OpenID) 

    CreateTime            消息创建时间 (整型) 

    MsgType              消息类型,event 

    Event                事件类型,CLICK 

    EventKey             事件KEY值,与自定义菜单接口中KEY值对应 

    点击菜单跳转链接时的事件推送

    推送XML数据包示例:

    <xml>

    <ToUserName><![CDATA[toUser]]></ToUserName>

    <FromUserName><![CDATA[FromUser]]></FromUserName>

    <CreateTime>123456789</CreateTime>

    <MsgType><![CDATA[event]]></MsgType>

    <Event><![CDATA[VIEW]]></Event>

    <EventKey><![CDATA[www.qq.com]]></EventKey>

    </xml>

    参数说明:

    参数                         描述 

    ToUserName                  开发者微信号 

    FromUserName                发送方帐号(一个OpenID) 

    CreateTime                   消息创建时间 (整型) 

    MsgType                     消息类型,event 

    Event                        事件类型,VIEW 

    EventKey                     事件KEY值,设置的跳转URL 

     

    开通语音识别功能

    用户每次发送语音给公众号时,微信会在推送的语音消息XML数据包中,增加一个Recongnition字段。

    注:由于客户端缓存,开发者开启或者关闭语音识别功能,对新关注者立刻生效,对已关注用户需要24小时生效。开发者可以重新关注此帐号进行测试。

    开启语音识别后的语音XML数据包如下:

    <xml>

    <ToUserName><![CDATA[toUser]]></ToUserName>

    <FromUserName><![CDATA[fromUser]]></FromUserName>

    <CreateTime>1357290913</CreateTime>

    <MsgType><![CDATA[voice]]></MsgType>

    <MediaId><![CDATA[media_id]]></MediaId>

    <Format><![CDATA[Format]]></Format>

    <Recognition><![CDATA[腾讯微信团队]]></Recognition>

    <MsgId>1234567890123456</MsgId>

    </xml>

    参数说明:

    参数               描述 

    ToUserName        开发者微信号 

    FromUserName      发送方帐号(一个OpenID) 

    CreateTime         消息创建时间 (整型) 

    MsgType           语音为voice 

    MediaID            语音消息媒体id,可以调用多媒体文件下载接口拉取该媒体 

    Format             语音格式:amr 

    Recognition         语音识别结果,UTF8编码 

    MsgID             消息id,64位整型 

     

    发送被动响应消息

    对于每一个POST请求,开发者在响应包(Get)中返回特定XML结构,对该消息进行响应(现支持回复文本、图片、图文、语音、视频、音乐)。请注意,回复图片等多媒体消息时需要预先上传多媒体文

     

    件到微信服务器,只支持认证服务号。

    微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次,如果在调试中,发现用户无法收到响应的消息,可以检查是否消息处理超时。

    关于重试的消息排重,有msgid的消息推荐使用msgid排重。事件类型消息推荐使用FromUserName + CreateTime 排重。

    假如服务器无法保证在五秒内处理并回复,必须直接回复空串(是指回复一个空字符串,而不是一个XML结构体中content字段的内容为空,请切勿误解),微信服务器不会对此作任何处理,并且不会发

     

    起重试。。这种情况下,可以使用客服消息接口进行异步回复。

    请开发者注意,一旦遇到以下情况,微信都会在公众号会话中,向用户下发系统提示“该公众号暂时无法提供服务,请稍后再试”:

    1、开发者在5秒内未回复任何内容

    2、开发者回复了异常数据,比如JSON数据等

    各消息类型需要的XML数据包结构如下。

    目录1 回复文本消息

    2 回复图片消息

    3 回复语音消息

    4 回复视频消息

    5 回复音乐消息

    6 回复图文消息

     

    回复文本消息

    <xml>

    <ToUserName><![CDATA[toUser]]></ToUserName>

    <FromUserName><![CDATA[fromUser]]></FromUserName>

    <CreateTime>12345678</CreateTime>

    <MsgType><![CDATA[text]]></MsgType>

    <Content><![CDATA[你好]]></Content>

    </xml>

    参数        是否必须              描述 

    ToUserName    是                 接收方帐号(收到的OpenID) 

    FromUserName  是                 开发者微信号 

    CreateTime    是                 消息创建时间 (整型) 

    MsgType       是                    text 

    Content       是                回复的消息内容(换行:在content中能够换行,微信客户端就支持换行显示) 

     

    回复图片消息

    <xml>

    <ToUserName><![CDATA[toUser]]></ToUserName>

    <FromUserName><![CDATA[fromUser]]></FromUserName>

    <CreateTime>12345678</CreateTime>

    <MsgType><![CDATA[image]]></MsgType>

    <Image>

    <MediaId><![CDATA[media_id]]></MediaId>

    </Image>

    </xml>

    参数        是否必须            说明 

    ToUserName     是               接收方帐号(收到的OpenID) 

    FromUserName   是               开发者微信号 

    CreateTime     是               消息创建时间 (整型) 

    MsgType        是               image 

    MediaId        是               通过上传多媒体文件,得到的id。

     

    回复语音消息

    <xml>

    <ToUserName><![CDATA[toUser]]></ToUserName>

    <FromUserName><![CDATA[fromUser]]></FromUserName>

    <CreateTime>12345678</CreateTime>

    <MsgType><![CDATA[voice]]></MsgType>

    <Voice>

    <MediaId><![CDATA[media_id]]></MediaId>

    </Voice>

    </xml>

    参数            是否必须       说明 

    ToUserName         是          接收方帐号(收到的OpenID) 

    FromUserName       是          开发者微信号 

    CreateTime         是          消息创建时间戳 (整型) 

    MsgType            是          语音,voice 

    MediaId            是          通过上传多媒体文件,得到的id 

     

    回复视频消息

    <xml>

    <ToUserName><![CDATA[toUser]]></ToUserName>

    <FromUserName><![CDATA[fromUser]]></FromUserName>

    <CreateTime>12345678</CreateTime>

    <MsgType><![CDATA[video]]></MsgType>

    <Video>

    <MediaId><![CDATA[media_id]]></MediaId>

    <Title><![CDATA[title]]></Title>

    <Description><![CDATA[description]]></Description>

    </Video>

    </xml>

    参数         是否必须        说明 

    ToUserName      是          接收方帐号(收到的OpenID) 

    FromUserName    是          开发者微信号 

    CreateTime      是          消息创建时间 (整型) 

    MsgType         是          video 

    MediaId         是          通过上传多媒体文件,得到的id 

    Title           否          视频消息的标题 

    Description     否          视频消息的描述 

     

    回复音乐消息

    <xml>

    <ToUserName><![CDATA[toUser]]></ToUserName>

    <FromUserName><![CDATA[fromUser]]></FromUserName>

    <CreateTime>12345678</CreateTime>

    <MsgType><![CDATA[music]]></MsgType>

    <Music>

    <Title><![CDATA[TITLE]]></Title>

    <Description><![CDATA[DESCRIPTION]]></Description>

    <MusicUrl><![CDATA[MUSIC_Url]]></MusicUrl>

    <HQMusicUrl><![CDATA[HQ_MUSIC_Url]]></HQMusicUrl>

    <ThumbMediaId><![CDATA[media_id]]></ThumbMediaId>

    </Music>

    </xml>

    参数        是否必须  说明 

    ToUserName     是     接收方帐号(收到的OpenID) 

    FromUserName   是     开发者微信号 

    CreateTime      是     消息创建时间 (整型) 

    MsgType        是     music 

    Title            否      音乐标题 

    Description      否     音乐描述 

    MusicURL       否     音乐链接 

    HQMusicUrl     否      高质量音乐链接,WIFI环境优先使用该链接播放音乐 

    ThumbMediaId   是     缩略图的媒体id,通过上传多媒体文件,得到的id 

     

    回复图文消息

    <xml>

    <ToUserName><![CDATA[toUser]]></ToUserName>

    <FromUserName><![CDATA[fromUser]]></FromUserName>

    <CreateTime>12345678</CreateTime>

    <MsgType><![CDATA[news]]></MsgType>

    <ArticleCount>2</ArticleCount>

    <Articles>

    <item>

    <Title><![CDATA[title1]]></Title>

    <Description><![CDATA[description1]]></Description>

    <PicUrl><![CDATA[picurl]]></PicUrl>

    <Url><![CDATA[url]]></Url>

    </item>

    <item>

    <Title><![CDATA[title]]></Title>

    <Description><![CDATA[description]]></Description>

    <PicUrl><![CDATA[picurl]]></PicUrl>

    <Url><![CDATA[url]]></Url>

    </item>

    </Articles>

    </xml>

    参数          是否必须             说明 

    ToUserName       是               接收方帐号(收到的OpenID) 

    FromUserName     是               开发者微信号 

    CreateTime        是               消息创建时间 (整型) 

    MsgType          是               news 

    ArticleCount       是               图文消息个数,限制为10条以内 

    Articles           是               多条图文消息信息,默认第一个item为大图,注意,如果图文数超过10,则将会无响应 

    Title              否               图文消息标题 

    Description        否               图文消息描述 

    PicUrl            否               图片链接,支持JPG、PNG格式,较好的效果为大图360*200,小图200*200 

    Url               否               点击图文消息跳转链接 

     

    发送客服消息

    出自微信公众平台开发者文档

    当用户主动发消息给公众号的时候(包括发送信息、点击自定义菜单、订阅事件、扫描二维码事件、支付成功事件、用户维权),微信将会把消息数据推送给开发者,开发者在一段时间内(目前修改为48小时)可以调用客服消息接口,通过POST一个JSON数据包来发送消息给普通用户,在48小时内不限制发送次数。此接口主要用于客服等有人工消息处理环节的功能,方便开发者为用户提供更加优质的服务。

    接口调用请求说明

    http请求方式: POST

    https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN

    各消息类型所需的JSON数据包如下。

    发送文本消息

    {

        "touser":"OPENID",

        "msgtype":"text",

        "text":

        {

             "content":"Hello World"

        }

    }

    参数

    是否必须

    说明

    access_token

    调用接口凭证

    touser

    普通用户openid

    msgtype

    消息类型,text

    content

    文本消息内容

    发送图片消息

    {

        "touser":"OPENID",

        "msgtype":"image",

        "image":

        {

          "media_id":"MEDIA_ID"

        }

    }

    参数

    是否必须

    说明

    access_token

    调用接口凭证

    touser

    普通用户openid

    msgtype

    消息类型,image

    media_id

    发送的图片的媒体ID

    发送语音消息

    {

        "touser":"OPENID",

        "msgtype":"voice",

        "voice":

        {

          "media_id":"MEDIA_ID"

        }

    }

    参数

    是否必须

    说明

    access_token

    调用接口凭证

    touser

    普通用户openid

    msgtype

    消息类型,voice

    media_id

    发送的语音的媒体ID

    发送视频消息

    {

        "touser":"OPENID",

        "msgtype":"video",

        "video":

        {

          "media_id":"MEDIA_ID",

          "thumb_media_id":"MEDIA_ID",

          "title":"TITLE",

          "description":"DESCRIPTION"

        }

    }

    参数

    是否必须

    说明

    access_token

    调用接口凭证

    touser

    普通用户openid

    msgtype

    消息类型,video

    media_id

    发送的视频的媒体ID

    thumb_media_id

    缩略图的媒体ID

    title

    视频消息的标题

    description

    视频消息的描述

    发送音乐消息

    {

        "touser":"OPENID",

        "msgtype":"music",

        "music":

        {

          "title":"MUSIC_TITLE",

          "description":"MUSIC_DESCRIPTION",

          "musicurl":"MUSIC_URL",

          "hqmusicurl":"HQ_MUSIC_URL",

          "thumb_media_id":"THUMB_MEDIA_ID"

        }

    }

    参数

    是否必须

    说明

    access_token

    调用接口凭证

    touser

    普通用户openid

    msgtype

    消息类型,music

    title

    音乐标题

    description

    音乐描述

    musicurl

    音乐链接

    hqmusicurl

    高品质音乐链接,wifi环境优先使用该链接播放音乐

    thumb_media_id

    缩略图的媒体ID

    发送图文消息

    图文消息条数限制在10条以内,注意,如果图文数超过10,则将会无响应。

    {

        "touser":"OPENID",

        "msgtype":"news",

        "news":{

            "articles": [

             {

                 "title":"Happy Day",

                 "description":"Is Really A Happy Day",

                 "url":"URL",

                 "picurl":"PIC_URL"

             },

             {

                 "title":"Happy Day",

                 "description":"Is Really A Happy Day",

                 "url":"URL",

                 "picurl":"PIC_URL"

             }

             ]

        }

    }

     

     

    参数

    是否必须

    说明

    access_token

    调用接口凭证

    touser

    普通用户openid

    msgtype

    消息类型,news

    title

    标题

    description

    描述

    url

    点击后跳转的链接

    picurl

    图文消息的图片链接,支持JPG、PNG格式,较好的效果为大图640*320,小图80*80

     

    高级群发接口

    在公众平台网站上,为订阅号提供了每天一条的群发权限,为服务号提供每月(自然月)4条的群发权限。而对于某些具备开发能力的公众号运营者,可以通过高级群发接口,实现更灵活的群发能力。

    请注意:

    1、对于认证订阅号,群发接口每天可成功调用1次,此次群发可选择发送给全部用户或某个分组

    2、对于认证服务号虽然开发者使用高级群发接口的每日调用限制为100次,但是用户每月只能接收4条,无论在公众平台网站上,还是使用接口群发,用户每月只能接收4条群发消息,多于4条的群发将对该用户发送失败

    3、具备微信支付权限的公众号,在使用群发接口上传、群发图文消息类型时,可使用<a>标签加入外链;

    4、开发者可以使用预览接口校对消息样式和排版,通过预览接口可发送编辑好的消息给指定用户校验效果。

    上传图文消息素材【订阅号与服务号认证后均可用】

    接口调用请求说明

    http请求方式: POST

    POST数据说明

    POST数据示例如下:

    {

       "articles": [

                    {

                            "thumb_media_id":"qI6_Ze_6PtV7svjolgs-rN6stStuHIjs9_DidOHaj0Q-mwvBelOXCFZiq2OsIU-p",

                            "author":"xxx",

                            "title":"Happy Day",

                            "content_source_url":"www.qq.com",

                            "content":"content",

                            "digest":"digest",

                            "show_cover_pic":"1"

                    },

                    {

                            "thumb_media_id":"qI6_Ze_6PtV7svjolgs-rN6stStuHIjs9_DidOHaj0Q-mwvBelOXCFZiq2OsIU-p",

                            "author":"xxx",

                            "title":"Happy Day",

                            "content_source_url":"www.qq.com",

                            "content":"content",

                            "digest":"digest",

                            "show_cover_pic":"0"

                    }

       ]

    }

    参数

    是否必须

    说明

    Articles

    图文消息,一个图文消息支持1到10条图文

    thumb_media_id

    图文消息缩略图的media_id,可以在基础支持-上传多媒体文件接口中获得

    author

    图文消息的作者

    title

    图文消息的标题

    content_source_url

    在图文消息页面点击“阅读原文”后的页面

    content

    图文消息页面的内容,支持HTML标签

    digest

    图文消息的描述

    show_cover_pic

    是否显示封面,1为显示,0为不显示

    返回说明

    返回数据示例(正确时的JSON返回结果):

    {

       "type":"news",

       "media_id":"CsEf3ldqkAYJAU6EJeIkStVDSvffUJ54vqbThMgplD-VJXXof6ctX5fI6-aYyUiQ",

       "created_at":1391857799

    }

    参数

    说明

    type

    媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb),次数为news,即图文消息

    Media_id

    媒体文件/图文消息上传后获取的唯一标识

    created_at

    媒体文件上传时间

    错误时微信会返回错误码等信息,请根据错误码查询错误信息: 全局返回码说明 根据分组进行群发【订阅号与服务号认证后均可用】

    接口调用请求说明

    http请求方式: POST

    POST数据说明

    POST数据示例如下:

    图文消息(注意图文消息的media_id需要通过上述方法来得到):

    {

       "filter":{

          "is_to_all":false

          "group_id":"2"

       },

       "mpnews":{

          "media_id":"123dsdajkasd231jhksad"

       },

        "msgtype":"mpnews"

    }

    文本:

    {

       "filter":{

          "is_to_all":false

          "group_id":"2"

       },

       "text":{

          "content":"CONTENT"

       },

        "msgtype":"text"

    }

    语音(注意此处media_id需通过基础支持中的上传下载多媒体文件来得到):

    {

       "filter":{

          "is_to_all":false

          "group_id":"2"

       },

       "voice":{

          "media_id":"123dsdajkasd231jhksad"

       },

        "msgtype":"voice"

    }

    图片(注意此处media_id需通过基础支持中的上传下载多媒体文件来得到):

    {

       "filter":{

          "is_to_all":false

          "group_id":"2"

       },

       "image":{

          "media_id":"123dsdajkasd231jhksad"

       },

        "msgtype":"image"

    }

    视频

    请注意,此处视频的media_id需通过POST请求到下述接口特别地得到: https://file.api.weixin.qq.com/cgi-bin/media/uploadvideo?access_token=ACCESS_TOKEN

    POST数据如下(此处media_id需通过基础支持中的上传下载多媒体文件来得到):

    {

      "media_id": "rF4UdIMfYK3efUfyoddYRMU50zMiRmmt_l0kszupYh_SzrcW5Gaheq05p_lHuOTQ",

      "title": "TITLE",

      "description": "Description"

    }

    返回将为

    {

      "type":"video",

      "media_id":"IhdaAQXuvJtGzwwc0abfXnzeezfO0NgPK6AQYShD8RQYMTtfzbLdBIQkQziv2XJc",

      "created_at":1398848981

    }

    然后,POST下述数据(将media_id改为上一步中得到的media_id),即可进行发送

    {

       "filter":{

          "is_to_all":false

          "group_id":"2"

       },

       "mpvideo":{

          "media_id":"IhdaAQXuvJtGzwwc0abfXnzeezfO0NgPK6AQYShD8RQYMTtfzbLdBIQkQziv2XJc",

       },

        "msgtype":"mpvideo"

    }

     

     

    参数

    是否必须

    说明

    Filter

    用于设定图文消息的接收者

    is_to_all

    用于设定是否向全部用户发送,值为true或false,选择true该消息群发给所有用户,选择false可根据group_id发送给指定群组的用户

    Group_id

    群发到的分组的group_id,参加用户管理中用户分组接口,若is_to_all值为true,可不填写group_id

    Mpnews

    用于设定即将发送的图文消息

    Media_id

    用于群发的消息的media_id

    msgtype

    群发的消息类型,图文消息为mpnews,文本消息为text,语音为voice,音乐为music,图片为image,视频为video

    Title

    消息的标题

    description

    消息的描述

    Thumb_media_id

    视频缩略图的媒体ID

    返回说明

    返回数据示例(正确时的JSON返回结果):

    {

       "errcode":0,

       "errmsg":"send job submission success",

       "msg_id":34182

    }

    参数

    说明

    type

    媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb),图文消息为news

    errcode

    错误码

    errmsg

    错误信息

    msg_id

    消息ID

    请注意:在返回成功时,意味着群发任务提交成功,并不意味着此时群发已经结束,所以,仍有可能在后续的发送过程中出现异常情况导致用户未收到消息,如消息有时会进行审核、服务器不稳定等。此外,群发任务一般需要较长的时间才能全部发送完毕,请耐心等待

    错误时微信会返回错误码等信息,请根据错误码查询错误信息: 全局返回码说明

    根据OpenID列表群发【订阅号不可用,服务号认证后可用】

    接口调用请求说明

    http请求方式: POST

    POST数据说明

    POST数据示例如下:

    图文消息(注意图文消息的media_id需要通过上述方法来得到): {

       "touser":[

        "OPENID1",

        "OPENID2"

       ],

       "mpnews":{

          "media_id":"123dsdajkasd231jhksad"

       },

        "msgtype":"mpnews"

    }

    文本:

    {

       "touser":[

        "OPENID1",

        "OPENID2"

       ],

        "msgtype": "text",

        "text": { "content": "hello from boxer."}

    }

    语音:

    {

       "touser":[

        "OPENID1",

        "OPENID2"

       ],

       "voice":{

          "media_id":"mLxl6paC7z2Tl-NJT64yzJve8T9c8u9K2x-Ai6Ujd4lIH9IBuF6-2r66mamn_gIT"

       },

        "msgtype":"voice"

    }

    图片:

    {

       "touser":[

        "OPENID1",

        "OPENID2"

       ],

       "image":{

          "media_id":"BTgN0opcW3Y5zV_ZebbsD3NFKRWf6cb7OPswPi9Q83fOJHK2P67dzxn11Cp7THat"

       },

        "msgtype":"image"

    }

    视频:

    请注意,此处视频的media_id需通过POST请求到下述接口特别地得到: https://file.api.weixin.qq.com/cgi-bin/media/uploadvideo?access_token=ACCESS_TOKEN

    POST数据如下(此处media_id需通过基础支持中的上传下载多媒体文件来得到):

    {

      "media_id": "rF4UdIMfYK3efUfyoddYRMU50zMiRmmt_l0kszupYh_SzrcW5Gaheq05p_lHuOTQ",

      "title": "TITLE",

      "description": "Description"

    }

    返回将为

    {

      "type":"video",

      "media_id":"IhdaAQXuvJtGzwwc0abfXnzeezfO0NgPK6AQYShD8RQYMTtfzbLdBIQkQziv2XJc",

      "created_at":1398848981

    }

    然后,POST下述数据(将media_id改为上一步中得到的media_id),即可进行发送

    {

       "touser":[

        "OPENID1",

        "OPENID2"

       ],

       "video":{

          "media_id":"123dsdajkasd231jhksad",

          "title":"TITLE",

          "description":"DESCRIPTION"

       },

        "msgtype":"video"

    }

     

    参数

    是否必须

    说明

    touser

    填写图文消息的接收者,一串OpenID列表,OpenID最少个,最多10000个

    mpnews

    用于设定即将发送的图文消息

    media_id

    用于群发的图文消息的media_id

    msgtype

    群发的消息类型,图文消息为mpnews,文本消息为text,语音为voice,音乐为music,图片为image,视频为video

    title

    消息的标题

    description

    消息的描述

    thumb_media_id

    视频缩略图的媒体ID

    返回说明

    返回数据示例(正确时的JSON返回结果):

    {

       "errcode":0,

       "errmsg":"send job submission success",

       "msg_id":34182

    }

    参数

    说明

    type

    媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb),次数为news,即图文消息

    errcode

    错误码

    errmsg

    错误信息

    msg_id

    消息ID

    请注意:在返回成功时,意味着群发任务提交成功,并不意味着此时群发已经结束,所以,仍有可能在后续的发送过程中出现异常情况导致用户未收到消息,如消息有时会进行审核、服务器不稳定等。此外,群发任务一般需要较长的时间才能全部发送完毕,请耐心等待

    错误时微信会返回错误码等信息,请根据错误码查询错误信息: 全局返回码说明

    删除群发【订阅号与服务号认证后均可用】

    接口调用请求说明

    http请求方式: POST

    POST数据说明

    POST数据示例如下:

    {

       "msg_id":30124

    }

    参数

    是否必须

    说明

    msg_id

    发送出去的消息ID

    请注意,只有已经发送成功的消息才能删除删除消息只是将消息的图文详情页失效,已经收到的用户,还是能在其本地看到消息卡片。 另外,删除群发消息只能删除图文消息和视频消息,其他类型的消息一经发送,无法删除。

    返回说明

    返回数据示例(正确时的JSON返回结果):

    {

       "errcode":0,

       "errmsg":"ok"

    }

    参数

    说明

    errcode

    错误码

    errmsg

    错误信息

    错误时微信会返回错误码等信息,请根据错误码查询错误信息: 全局返回码说明

    预览接口【订阅号与服务号认证后均可用】

    开发者可通过该接口发送消息给指定用户,在手机端查看消息的样式和排版。

    接口调用请求说明

    http请求方式: POST

    POST数据说明

    POST数据示例如下:

    图文消息(其中media_id与根据分组群发中的media_id相同):

    {

       "touser":"OPENID",

       "mpnews":{             

                "media_id":"123dsdajkasd231jhksad"              

                 },

       "msgtype":"mpnews"

    }

    文本:

    {    

        "touser":"OPENID",

        "text":{          

               "content":"CONTENT"           

               },    

        "msgtype":"text"

    }

    语音(其中media_id与根据分组群发中的media_id相同):

    {

        "touser":"OPENID",

        "voice":{             

                "media_id":"123dsdajkasd231jhksad"

                },

        "msgtype":"voice"

    }

    图片(其中media_id与根据分组群发中的media_id相同):

    {

        "touser":"OPENID",

        "image":{     

                "media_id":"123dsdajkasd231jhksad"

                },

        "msgtype":"image"

    }

    视频(其中media_id与根据分组群发中的media_id相同):

    {

        "touser":"OPENID",

        "mpvideo":{  "media_id":"IhdaAQXuvJtGzwwc0abfXnzeezfO0NgPK6AQYShD8RQYMTtfzbLdBIQkQziv2XJc",  

                   },

        "msgtype":"mpvideo"

    }

     

    参数

    说明

    touser

    接收消息用户对应该公众号的openid

    msgtype

    群发的消息类型,图文消息为mpnews,文本消息为text,语音为voice,音乐为music,图片为image,视频为video

    Media_id

    用于群发的消息的media_id

    content

    发送文本消息时文本的内容

    返回说明

    返回数据示例(正确时的JSON返回结果):

    {

       "errcode":0,

       "errmsg":"send job submission success",

       "msg_id":34182

    }

    参数

    说明

    errcode

    错误码

    errmsg

    错误信息

    msg_id

    消息ID

    查询群发消息发送状态【订阅号与服务号认证后均可用】

    接口调用请求说明

    http请求方式: POST

    https://api.weixin.qq.com/cgi-bin/message/mass/get?access_token=ACCESS_TOKEN

    POST数据说明

    POST数据示例如下:

    {

       "msg_id": "201053012"

    }

    参数

    说明

    msg_id

    群发消息后返回的消息id

    返回说明

    返回数据示例(正确时的JSON返回结果):

    {

         "msg_id":201053012,

         "msg_status":"SEND_SUCCESS"

    }

    参数

    说明

    msg_id

    群发消息后返回的消息id

    msg_status

    消息发送后的状态,SEND_SUCCESS表示发送成功

    事件推送群发结果

    由于群发任务提交后,群发任务可能在一定时间后才完成,因此,群发接口调用时,仅会给出群发任务是否提交成功的提示,若群发任务提交成功,则在群发任务结束时,会向开发者在公众平台填写的开发者URL(callback URL)推送事件。

    推送的XML结构如下(发送成功时):

    <xml>

    <ToUserName><![CDATA[gh_3e8adccde292]]></ToUserName>

    <FromUserName><![CDATA[oR5Gjjl_eiZoUpGozMo7dbBJ362A]]></FromUserName>

    <CreateTime>1394524295</CreateTime>

    <MsgType><![CDATA[event]]></MsgType>

    <Event><![CDATA[MASSSENDJOBFINISH]]></Event>

    <MsgID>1988</MsgID>

    <Status><![CDATA[sendsuccess]]></Status>

    <TotalCount>100</TotalCount>

    <FilterCount>80</FilterCount>

    <SentCount>75</SentCount>

    <ErrorCount>5</ErrorCount>

    </xml>

    参数

    说明

    ToUserName

    公众号的微信号

    FromUserName

    公众号群发助手的微信号,为mphelper

    CreateTime

    创建时间的时间戳

    MsgType

    消息类型,此处为event

    Event

    事件信息,此处为MASSSENDJOBFINISH

    MsgID

    群发的消息ID

    Status

    群发的结构,为“send success”或“send fail”或“err(num)”。但send success时,也有可能因用户拒收公众号的消息、系统错误等原因造成少量用户接收失败。err(num)是审核失败的具体原因,可能的情况如下:

    err(10001), //涉嫌广告 err(20001), //涉嫌政治 err(20004), //涉嫌社会 err(20002), //涉嫌色情 err(20006), //涉嫌违法犯罪 err(20008), //涉嫌欺诈 err(20013), //涉嫌版权 err(22000), //涉嫌互推(互相宣传) err(21000), //涉嫌其他

    TotalCount

    group_id下粉丝数;或者openid_list中的粉丝数

    FilterCount

    过滤(过滤是指特定地区、性别的过滤、用户设置拒收的过滤,用户接收已超4条的过滤)后,准备发送的粉丝数,原则上,FilterCount = SentCount + ErrorCount

    SentCount

    发送成功的粉丝数

    ErrorCount

    发送失败的粉丝数

     

    模板消息接口

    模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等。不支持广告等营销类消息以及其它所有可能对用户造成骚扰的消息。

    关于使用规则,请注意:

    1、所有服务号都可以在功能->添加功能插件处看到申请模板消息功能的入口,但只有认证后的服务号才可以申请模板消息的使用权限并获得该权限;

    2、需要选择公众账号服务所处的2个行业,每月可更改1次所选行业;

    3、在所选择行业的模板库中选用已有的模板进行调用;

    4、每个账号可以同时使用15个模板。

    5、当前每个模板的日调用上限为100000次【2014年11月18日将接口调用频率从默认的日10000次提升为日100000次,可在MP登录后的开发者中心查看】。

    关于接口文档,请注意:

    1、模板消息调用时主要需要模板ID和模板中各参数的赋值内容;

    2、模板中参数内容必须以".DATA"结尾,否则视为保留字;

    3、模板保留符号"{{ }}"。

    目录

    1 设置所属行业

    2 获得模板ID

    3 发送模板消息

    4 事件推送

    设置所属行业

    设置行业可在MP中完成,每月可修改行业1次,账号仅可使用所属行业中相关的模板,为方便第三方开发者,提供通过接口调用的方式来修改账号所属行业,具体如下:

    接口调用请求说明

    http请求方式: POST

    https://api.weixin.qq.com/cgi-bin/template/api_set_industry?access_token=ACCESS_TOKEN

    POST数据说明

    POST数据示例如下:       

    {

          "industry_id1":"1",

          "industry_id2":"4"

    }

    参数说明

    参数

    是否必须

    说明

    industry_id1

    公众号模板消息所属行业编号

    industry_id2

    公众号模板消息所属行业编号

    行业代码查询

    主行业

    副行业

    代码

    IT科技

    互联网/电子商务

    1

    IT科技

    IT软件与服务

    2

    IT科技

    IT硬件与设备

    3

    IT科技

    电子技术

    4

    IT科技

    通信与运营商

    5

    IT科技

    网络游戏

    6

    金融业

    银行

    7

    金融业

    基金|理财|信托

    8

    金融业

    保险

    9

    餐饮

    餐饮

    10

    酒店旅游

    酒店

    11

    酒店旅游

    旅游

    12

    运输与仓储

    快递

    13

    运输与仓储

    物流

    14

    运输与仓储

    仓储

    15

    教育

    培训

    16

    教育

    院校

    17

    政府与公共事业

    学术科研

    18

    政府与公共事业

    交警

    19

    政府与公共事业

    博物馆

    20

    政府与公共事业

    公共事业|非盈利机构

    21

    医药护理

    医药医疗

    22

    医药护理

    护理美容

    23

    医药护理

    保健与卫生

    24

    交通工具

    汽车相关

    25

    交通工具

    摩托车相关

    26

    交通工具

    火车相关

    27

    交通工具

    飞机相关

    28

    房地产

    建筑

    29

    房地产

    物业

    30

    消费品

    消费品

    31

    商业服务

    法律

    32

    商业服务

    会展

    33

    商业服务

    中介服务

    34

    商业服务

    认证

    35

    商业服务

    审计

    36

    文体娱乐

    传媒

    37

    文体娱乐

    体育

    38

    文体娱乐

    娱乐休闲

    39

    印刷

    印刷

    40

    其它

    其它

    41

    获得模板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**”等形式

    返回码说明

    在调用模板消息接口后,会返回JSON数据包。正常时的返回JSON数据包示例:

        {

               "errcode":0,

               "errmsg":"ok",

               "template_id":"Doclyl5uP7Aciu-qZ7mJNPtWkbkYnWBWVja26EGbNyk"

           }

    发送模板消息

    接口调用请求说明

    http请求方式: POST

    https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN

    POST数据说明

    POST数据示例如下:

          {

               "touser":"OPENID",

               "template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY",

               "url":"http://weixin.qq.com/download",

               "topcolor":"#FF0000",

               "data":{

                       "first": {

                           "value":"恭喜你购买成功!",

                           "color":"#173177"

                       },

                       "keynote1":{

                           "value":"巧克力",

                           "color":"#173177"

                       },

                       "keynote2": {

                           "value":"39.8元",

                           "color":"#173177"

                       },

                       "keynote3": {

                           "value":"2014年9月16日",

                           "color":"#173177"

                       },

                       "remark":{

                           "value":"欢迎再次购买!",

                           "color":"#173177"

                       }

               }

           }


    返回码说明

    在调用模板消息接口后,会返回JSON数据包。正常时的返回JSON数据包示例:

        {

               "errcode":0,

               "errmsg":"ok",

               "msgid":200228332

           }

    事件推送

    在模版消息发送任务完成后,微信服务器会将是否送达成功作为通知,发送到开发者中心中填写的服务器配置地址中。

    1、送达成功时,推送的XML如下:

               <xml>

               <ToUserName><![CDATA[gh_7f083739789a]]></ToUserName>

               <FromUserName><![CDATA[oia2TjuEGTNoeX76QEjQNrcURxG8]]></FromUserName>

               <CreateTime>1395658920</CreateTime>

               <MsgType><![CDATA[event]]></MsgType>

               <Event><![CDATA[TEMPLATESENDJOBFINISH]]></Event>

               <MsgID>200163836</MsgID>

               <Status><![CDATA[success]]></Status>

               </xml>

    参数说明

    参数

    说明

    ToUserName

    公众号微信号

    FromUserName

    接收模板消息的用户的openid

    CreateTime

    创建时间

    MsgType

    消息类型是事件

    Event

    事件为模板消息发送结束

    MsgID

    消息id

    Status

    发送状态为成功

    2、送达由于用户拒收(用户设置拒绝接收公众号消息)而失败时,推送的XML如下:

               <xml>

               <ToUserName><![CDATA[gh_7f083739789a]]></ToUserName>

               <FromUserName><![CDATA[oia2TjuEGTNoeX76QEjQNrcURxG8]]></FromUserName>

               <CreateTime>1395658984</CreateTime>

               <MsgType><![CDATA[event]]></MsgType>

               <Event><![CDATA[TEMPLATESENDJOBFINISH]]></Event>

               <MsgID>200163840</MsgID>

               <Status><![CDATA[failed:user block]]></Status>

               </xml>

    参数说明

    参数

    说明

    ToUserName

    公众号微信号

    FromUserName

    接收模板消息的用户的openid

    CreateTime

    创建时间

    MsgType

    消息类型是事件

    Event

    事件为模板消息发送结束

    MsgID

    消息id

    Status

    发送状态为用户拒绝接收

    3、送达由于其他原因失败时,推送的XML如下:

               <xml>

               <ToUserName><![CDATA[gh_7f083739789a]]></ToUserName>

               <FromUserName><![CDATA[oia2TjuEGTNoeX76QEjQNrcURxG8]]></FromUserName>

               <CreateTime>1395658984</CreateTime>

               <MsgType><![CDATA[event]]></MsgType>

               <Event><![CDATA[TEMPLATESENDJOBFINISH]]></Event>

               <MsgID>200163840</MsgID>

               <Status><![CDATA[failed: system failed]]></Status>

               </xml>

    参数说明

    参数

    说明

    ToUserName

    公众号微信号

    FromUserName

    接收模板消息的用户的openid

    CreateTime

    创建时间

    MsgType

    消息类型是事件

    Event

    事件为模板消息发送结束

    MsgID

    消息id

    Status

    发送状态为发送失败(非用户拒绝)

     

    展开全文
  • 问题描述:使用调试工具 http://debug.fangbei.org/ 进行调试,返回的图文消息xml格式...如此操作后,返回后即可在返回的图文消息中显示图片了。  感觉较大可能是网速慢导致图文内容中图片不显示,通过以上操作将图


        问题描述:使用调试工具 http://debug.fangbei.org/ 进行调试,返回的图文消息xml格式正确,但是在手机端始终仅显示文字,不显示图片。

        尝试修改程序,使返回的Url为PicUrl中定义的图片地址,这样点击该条文章,则打开页面中直接显示该图片。如此操作后,返回后再次发送“lc”或者“rc”请求图文即可在返回的图文消息中显示图片了。

        感觉较大可能是网速慢导致图文内容中图片不显示,通过以上操作将图片进行了缓存,才可以在图文中显示图片。仅是猜测。




    <?php
    //装载模板文件
    include_once("wx_tpl.php");
    
    //获取微信发送数据
    $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
    
      //返回回复数据
    if (!empty($postStr)){
              
        	//解析数据
              $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
        	//发送消息方ID
              $fromUsername = $postObj->FromUserName;
        	//接收消息方ID
              $toUsername = $postObj->ToUserName;
       		//消息类型
              $form_MsgType = $postObj->MsgType;
              
        	  //事件消息
              if($form_MsgType=="text")
              {
                //获取用户发送的文字内容
                $form_Content = trim($postObj->Content);
                //
                if(!empty($form_Content))
                {
                    // 输入“菜谱”
                    if ($form_Content=="菜谱")
                    {
                        $return_str = "请输入字母浏览对应菜品aaa\n";
                        $return_arr = array("lc.冷菜\n","rc.热菜\n");
                        $return_str .= implode("", $return_arr);
                        $msgType = "text";
                        $resultStr = sprintf($textTpl, $fromUsername, $toUsername, time(), $msgType, $return_str);
                        echo $resultStr;
                        exit;
                    }
                    // 输入“lc”,回复冷菜内容
                    elseif ($form_Content=="lc"){
                        $resultStr = "
    <xml>
        <ToUserName><![CDATA[".$fromUsername."]]></ToUserName>
        <FromUserName><![CDATA[".$toUsername."]]></FromUserName>
        <CreateTime>".time()."</CreateTime>
        <MsgType><![CDATA[news]]></MsgType>
        <ArticleCount><![CDATA[2]]></ArticleCount>
        <Articles>";
    
                        $return_str = $resultStr;
                        $return_arr = array(
                            array("老虎菜",
                                "http://www.1hwj.net/wei/lhc.jpg",
                                "http://www.1hwj.net/wei/lhc.jpg"),
                            array("什锦泡菜",
                                "http://www.1hwj.net/wei/sjpc.jpg",
                                "http://www.1hwj.net/wei/sjpc.jpg")
                        );
    
                        foreach ($return_arr as $value)
                        {
                            $return_str .= "
        <item>
            <Title><![CDATA[".$value[0]."]]></Title>
            <Description><![CDATA[]]></Description>
            <PicUrl><![CDATA[".$value[1]."]]></PicUrl>
            <Url><![CDATA[".$value[2]."]]></Url>
        </item>";
                         }
                        $return_str .= "
        </Articles>
        <FuncFlag>0</FuncFlag>
    </xml>";
                        echo $return_str;
                        exit;
                    }
                    elseif ($form_Content=="rc"){
                        $resultStr = "
    <xml>
        <ToUserName><![CDATA[".$fromUsername."]]></ToUserName>
        <FromUserName><![CDATA[".$toUsername."]]></FromUserName>
        <CreateTime>".time()."</CreateTime>
        <MsgType><![CDATA[news]]></MsgType>
        <ArticleCount><![CDATA[2]]></ArticleCount>
        <Articles>";
    
                        $return_str = $resultStr;
                        $return_arr = array(
                            array("辣子鸡",
                                "http://www.1hwj.net/wei/lzj.jpg",
                                "http://www.1hwj.net/wei/lzj.jpg"),
                            array("酸菜鱼",
                                "http://www.1hwj.net/wei/szy.jpg",
                                "http://www.1hwj.net/wei/szy.jpg")
                        );
    
                        foreach ($return_arr as $value)
                        {
                            $return_str .= "
        <item>
            <Title><![CDATA[".$value[0]."]]></Title>
            <Description><![CDATA[]]></Description>
            <PicUrl><![CDATA[".$value[1]."]]></PicUrl>
            <Url><![CDATA[".$value[2]."]]></Url>
        </item>";
                        }
                        $return_str .= "
        </Articles>
        <FuncFlag>0</FuncFlag>
    </xml>";
    
                        echo $return_str;
                        exit;
                    }
                    else {
                        $return_str = "请输入字母浏览对应菜品bbb\n";
                        $return_arr = array("lc.冷菜\n","cc.川菜\n");
                        $return_str .= implode("", $return_arr);
                        $msgType = "text";
                        $resultStr = sprintf($textTpl, $fromUsername, $toUsername, time(), $msgType, $return_str);
                        echo $resultStr;
                        exit;
                    }
    
    
                        // 若非空,直接回复
                  $msgType = "text";  
                  $resultStr = sprintf($textTpl, $fromUsername, $toUsername, time(), $msgType, "请输入菜谱儿子进行点菜\n\n");
                  echo $resultStr;
                  exit;
    			}
              }
              elseif($form_MsgType=="event")// 接收到事件
              {
                //获取事件类型
                $form_Event = $postObj->Event;
                //订阅事件
                if($form_Event=="subscribe") // 接收到的事件为:关注
                {
                  //回复欢迎文字消息
                  $msgType = "text";
                  $contentStr = "感谢您关注老狼的微信测试![愉快]\n\n[玫瑰]\n\n请随便输入几个文本试试。";
                  $resultStr = sprintf($textTpl, $fromUsername, $toUsername, time(), $msgType, $contentStr);
                  echo $resultStr;
                  exit;
                }
              
              }
              
      }
      else 
      {
              echo "";
              exit;
      }
    
    ?>


    展开全文
  • 从2018年10月12日起,微信公众平台图文消息被限制为1条。 受影响的有 客服接口发送的图文消息,如 {  "touser":"OPENID",  "msgtype":"news",  "news":{ ...
  • 根据微信开发者文档,找到了3种实现方式。 1.文本消息 文本消息提供的参数中是不存在url这个参数的。所以无法使用官方提供的接口直接添加跳转链接。只能退而 求其次,在文本内容中裸写跳转url。例如:''欢迎关注
  • 微信公众平台开发者文档 微信公众平台开发概述 微信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台,而公众平台开发接口则是提供服务的基础,开发者在公众平台网站中创建公众号、获取接口权限后...
  • 为了保证用户不受到骚扰,在开发者出现需要主动提醒、通知用户时,才允许开发者在公众平台网站中模板消息库中选择模板,选择后获得模板ID,再根据模板ID向用户主动推送提醒、通知消息。 模板消息调用时主要需要...
  • 本篇文章实现模板图文、文本、音乐、图片推送,前提是已经搭建了微信开发环境。读完本文后,实现的主要效果如下
  • 需要发送支付模板消息,通知用户取货的模板消息,于是去查看了微信开放文档,在里面有 选择模板消息,查看目录中有发送模板消息 这里提供了调用的接口,直接出入用户token即可。 在调用的时候发...
  • 一、简介 ...对于每一个POST请求,开发者在响应包中返回特定xml结构,对该消息进行响应(现支持回复文本、图文、语音、视频、音乐)。 三、文本回复 3.1 文本回复xml 结构 <xml> ...
  • 图文消息对象转换为xml时,格式出错 &lt;xml&gt; &lt;ToUserName&gt;oVICC0pcZLLPZUowr_wNAxiwTzeo&lt;/ToUserName&gt; &lt;FromUserName&gt;gh_d6acc2ca6533&lt;/...
  • 关键字:微信公众平台 开发模式 图文消息作者:方倍工作室...我们将只介绍被动回复消息中的图文消息,发送客服消息及高级群发消息接口的发送的图文消息与本文介绍的图文消息的各情况基本一致。 本文分为以下四个部分:
  • 首先: 登录到微信公众平台:https://mp.weixin.qq.com/,在菜单列表选择“模板消息”,接着在模板库选择自己适合的模板,点击添加,回到我的... 接下来我们看下微信模板消息接口的文档,微信公众平台技术文档:点...
  • 前言:最近一直再弄微信扫码推送图文消息和模板消息发送,感觉学习到了不少东西。今天先总结一下微信公众平台模板消息的发送。因为这个自己弄了很久,开始很多地方不明白,所以今天好好总结一下。微信公众平台技术...
  • 由于柳峰老师的新书还没有出来,网上也没有过多介绍基于Java语言的开发微信公众平台模板消息的例子,因此有了本文。由于个人表达能力和编程能力有限,请多多包涵。本文仅介绍拥有模板消息权限的微信公众账号开发。 ...
  • 本文分为以下四个部分:图文消息的定义图文消息的实现图文消息的类型图文消息的回复 一、图文消息的定义在微信公众平台消息中,发送被动响应消息中的图文消息的XML结构如下所示。&lt;xml&gt; &lt;...
  • 该篇为原创,若转载请麻烦注明CSDN的wjbianjason,
1 2 3 4 5 ... 20
收藏数 1,300
精华内容 520
关键字:

微信开发者图文消息模板