宝哥软件园

php微信公众平台开发的微信群发信息

编辑:宝哥软件园 来源:互联网 时间:2021-09-07

1.目的

在微信微信官方账号完成群发。这只是一个简单的文本发送。还可以发送语音图片等。但发送数据的格式不同。下面有链接可以查询数据类型的数据发送格式。

2.分组发送短信的过程

获取测试公众账号(如果你有账号,就不需要测试账号,但是有比较正规的账号限制)。用户关注以上公共账号,通过appid和appsecret获取我们的access_token。通过access_token发送短信。

3.获取考试公众账号,关注微信官方账号

1)、公开测试账号获取

访问以上连接,选择“申请接口测试号”直接打开http://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo? Action=show info=沙盒/索引即可在微信客户端扫码登录。

登录后,您可以获得一个测试公共帐户的信息。主要有两个参数,appId和appsecret,会唯一标记一个微信官方账号,需要作为参数获取用户信息。

2)配置接口信息

这一步可以参考微信访问说明。这个页面提供了一个php下载的例子。修改用户定义的TOKEN,然后将验证页面放在自己的服务器上,这非常简单。

这里我举一个例子:

准备资源:

域名空间(我的是sae空间域名),php文件仅供验证

我在域名指向的空间根目录中创建了一个wx_sample.php

wx_sample.php

?php/***微信PHP test *///定义你的tokendefine('TOKEN ',' weixin ');$微信bj=new微信callbackapitet();$微信对象-有效();class微信callbackapist { public function valid(){ $ echoStr=$ _ GET[' echoStr '];//有效签名,option if($ this-CheckSignature()){ echo $ echoStr;退出;} } public function responseMsg(){//获取post数据,可能是由于环境不同$ postStr=$ GLOBALS[' HTTP _ RAW _ POST _ DATA '];//提取post dataif(!empty($ postStr)){/* libxml _ disable _ Entity _ loader是为了防止xml eXternal Entity Injection,最好的方法是自己检查XML的有效性*/libxml _ disable _ Entity _ loader(true);$ PostObj=simple XML _ load _ string($ PostStr,' SimpleXMLElement ',LIBXML _ NOCData);$ from username=$ PostObj-from username;$ Tousername=$ PostObj-Tousername;$关键字=trim($ PostObj-Content);$ time=time();$textTpl='xmlToUserName![CData[% s]]/TouseNameFromUserName![CData[% s]]/from usernamecreatetime % s/CreateTimeMsgType![CDATA[%s]]/MsgTypeContent![CData[% s]]/ContentFuncFlag0/FuncFlag/XML ';if(!empty($关键字)){ $ msgType=' text$contentStr='欢迎来到微信世界!';$resultStr=sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$ content str);echo $ resultStr}else{echo 'Input某物.';} } else { echo“”;退出;} }私有函数checkSignature(){//必须自己定义TOKEN if(!已定义(' TOKEN '){引发新异常(' TOKEN未定义!');} $ signature=$ _ GET[' signature '];$时间戳=$_GET['时间戳'];$ nonce=$ _ GET[' nonce '];$ token=TOKEN$tmpArr=array($token,$timestamp,$ nonce);//使用SORT_STRING rulesort($tmpArr,SORT _ STRING);$tmpStr=内爆($ TMParr);$ TMPstr=sha1($ TMPstr);if($ TMPstr==$ signature){返回true} else { return false}}}?然后填写配置信息token(必须与上面wx_sample.php中的Token一致)和URL(wx _ sample.php的地址)

那就提交吧

如果提示失败,请检查Token和URL[如果是自己的域名和空间,请存档;百度sae和新浪sae需要自己申请并通过认证(也就是拍一张自己的身份证照片上传,非常简单,只需要2天就可以了)。这一步必须是]

3)配置JS接口安全域名

填写此域名时,不得携带协议。例如,http://www.sagosoft.com/错了。这是一个网址,不是域名

域名应该和www.sagosoft.com类似[否则微信js-sdk访问时会提示网址域无效]

4)关注微信官方账号

用户只有关注这个微信官方账号,才能授权第三方登录,通过打开与微信官方账号信息的链接获取用户信息。所以我们也需要用我们的微信去关注微信号。操作如下:

是成功登录后跳转的同一个页面。我们可以看到这一页有一个二维码。我们可以通过扫描这个二维码来关注,关注成功登录后右侧“用户列表”中会多一个用户的信息。如下图所示:

5)配置回调函数

当我们在微信客户端访问第三方网页(即我们自己的网页)时,可以使用微信网页授权机制。我们不仅需要之前获取的appid和appsecret,还需要用户授权后回调的域名设置,也就是用户授权后页面会跳转到哪里。具体配置如下:

还是在刚才的页面上,有一个“网页授权获取用户基本信息”,点击以后修改即可

填写回拨的域名:

域名是上面配置的根域名。如果上面“接口配置信息”中填写的网址是zcr.sinaaappc.com/wx_sample.php,只需在这里填写zcr.sinaaappc.com即可。

如果您的网站没有被列入黑名单,它将出现在顶部

注意:

1.这里填写的是域名(是字符串),不是网址,所以请不要添加协议头,比如http://。2.授权回叫域名的配置规范为全域名。例如,需要网页授权的域名是www.qq.com。配置后,此域名下的页面可以由http://www.qq.com/music.html和http://www.qq.com/login.html.的OAuth2.0进行身份验证。但是,http://pay.qq.com、http://music.qq.com和http://qq.com无法对OAuth2.0进行身份验证

在这里,我们完成了微信官方账号测试账号的获取和配置,用户关注了微信微信官方账号。

4.通过appid和appsecret获取我们的access_token

Access_token是微信官方账号唯一的全局账单,微信官方账号在调用各个接口时需要用到access_token。开发人员需要妥善保管。至少应保留512个字符空间用于存储access_token。access_token的有效期目前为2小时,需要定期刷新。重复获取将使上次获取的access_token无效。

获取方法:

Http请求方法: GEThttps://api.weixin.qq.com/cgi-bin/token?格兰特_ type=client _ credential appid=APPIDsecret=APPSECRET

参数描述:

回到描述

正常情况下,微信会将以下JSON包返回微信官方账号:

复制的代码如下: { ' access _ token ' : ' access _ token ',' expires _ in' :7200}

出现错误时,微信会返回错误代码等信息。JSON数据包的例子如下(这个例子是无效的AppID错误):

复制的代码如下: {'errcode' :40013,' errmsg' : '无效appid'}

示例:

获取访问令牌:

按照以下方式复制代码代码:https://api.weixin.qq.com/cgi-bin/token?格兰特_ type=client _ credentialpid=wx4 D1 CB 8 DBD 827 a 16 e 9 secret=d 462d 4c 36 b 116795 D1 d 99 DCF 0547 af 5443d

返回数据:

{ ' access _ token ' : ' qr5uk2vm F5 athv8e-ub 10 fzw 0 catzm _ 1kb kue4op k2ilvvnaoa 7 plzywqluamx6sjq17 pkhrvatug0 _ 1mpkqmdfokm 2750 kalwnk 59 ds-idopjxompjtxa 3 whbn 5 fkr Wnhadevar ',' expires _ in' : 7200} 5。通过access_token发送短信

在公共平台网站上,订阅号每天提供一个群发权限,服务号每月(自然月)提供四个群发权限。对于一些有开发能力的微信官方账号运营商来说,可以通过先进的群发接口实现更灵活的群发能力。

请注意:

1.对于认证订单号,一天可以成功调用一次群发接口,这个群发可以发送给所有用户或者某个群;2.对于认证服务号,虽然开发者每天使用高级群发接口的调用次数限制在100次,但用户每个月只能收到4条群发消息,无论是在公共平台网站上还是使用接口群发,超过4条群发消息将无法发送给用户;3.有微信支付权限的微信官方账号在使用群发界面上传和群发图文消息类型时,可以使用A标签加入外链;4.开发人员可以使用预览界面对消息样式和布局进行校对,并将编辑好的消息发送给指定用户,通过预览界面查看效果。

1)按分组分组发送[认证后可同时使用订单号和服务号]

调用接口:

复制代码如下:http请求方法: POSThttps://api.weixin.qq.com/cgi-bin/message/mass/sendall?访问_令牌=访问_令牌

正文增加以下数据(以JSON格式发送)——以其他格式发送数据,只需更改里面的参数信息,详情查看官方微信文档:

{ ' filter ' : { ' is _ to _ all ' : false,' group _ id' :2 ',' text ' : { ' content ' : ' content ' },' msgtype' :' text'}参数说明:

示例:发送给每个人

url:

复制代码代码如下:https://api.weixin.qq.com/cgi-bin/message/mass/sendall? access _ token=KBoNONaJZ4-KhafQVJoQ6VBX0F-bls7nasjbn 8 fy7 glwav 4 be 1 lrjcob 1 hh 6 ww 35 ixxfwkjnzfnc-on9eqitg 3 xeww7o 2 yyyvw9 nadknu6pqx9 fnsmqcr 8 ojtk8 ug-HDTcAAABXN

发送的Json数据:发送给每个人

{ ' filter ' : { ' is _ to _ all ' : true },' text ' : { ' content ' : ' content ' },' msgtype' :' text'}返回数据:

{'errcode' : 0,' errmsg' : '发送作业提交成功',' msg _ id' : 100000003}参数含义:

错误代码及其查询:

全局错误代码解析

使用postman模拟https请求发送,如下图所示:

2)根据OpenID列表,【订单号不可用,但认证后服务号可用】

发送的http请求的Url:(注意:与上面不同)

复制代码如下:http请求方法: POSThttps://api.weixin.qq.com/cgi-bin/message/mass/send?访问_令牌=访问_令牌

数据格式:

复制的代码如下: {'touser' : ['OpenID 1 ',' OpenID 2'],' msgtype' :' text ',' text ' : { ' content ' : ' boxer您好'}}

OPENID1和OPENID2是我们要发送的微信用户OPENID(用户的唯一标识)。

示例:

发送“of 3pcssnsrmijzewalzzbafwqpxci”和“of 3pcshh1cuihr _ wyau6swipzlw”。

内容:你好,来自boxer.a href=' www.baidu.com '欢迎来到百度/a

url:

复制代码代码如下:https://api.weixin.qq.com/cgi-bin/message/mass/send? access _ token=wrytbnsiu 18 ssehmplf 4 bdfet-bt6e 6 tgr 4 cqgvlbipcryjpkdakpyfm6-qkkuhun8 urkjh6x VM 0 ouadfgqoo 8 ru 8 hod XL-cgc 9 BH-ezjb2 zujsnqk 2416 zi8 kbeofogydafarjb

Json数据:

{ ' touser ' :[' of 3pcsnsrmijzewalzzbafwqpxci ',' of 3pcshh1cuihr _ wyau6swipzlw'],' msgtype' :' text ',' text ' : { ' content ' : ' hello from boxer

{'errcode' : 0,' errmsg' : '发送作业提交成功',' msg _ id' : 3147483654}使用postman模拟发送请求,如下所示:

微信号接收的内容:

谢谢:谢谢阅读!

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

更多资讯
游戏推荐
更多+