我在研究用PHP调用微信企业号接口发送通知信息时,遇到了一个问题,就是汉字编码的问题。在用POST提交的数据如果是用数组型时,要先用json_encode将数组型数据转成josn字串,但数据中如果有汉字就会出现问题:json_encode不能序列化GB2312编码的汉字,若是UTF-8编码的汉字在用json_encode转换后也成了无法识别的乱码,微信企业号的接口也无法接收这些乱码。该怎么办呢?经过反复研究、反复调试终于找出了两种方法:
第一种方法(数组型数据):
1、将页面代码转存成UTF-8编码;
2、用urlencode将汉字编码;
3、用json_encode将数组型数据转成josn字串
4、用urldecode将josn字串型数据解码;
5、再将解码后的josn字串型数据发送给微信企业号接口即可。
第二种方法(字串型数据):
1、将页面代码转存成UTF-8编码;
2、将要传递的POST数据用字串拼接的型连接起来;
3、再将拼接好的字串型数据发送给微信企业号接口即可。
为了代码简单,我用了第二种方法,代码如下:
<?php function curlPost($url,$data=""){ $ch = curl_init(); $opt = array( CURLOPT_URL => $url, CURLOPT_HEADER => 0, CURLOPT_POST => 1, CURLOPT_POSTFIELDS => $data, CURLOPT_RETURNTRANSFER => 1, CURLOPT_TIMEOUT => 20 ); $ssl = substr($url,0,8) == "https://" ? TRUE : FALSE; if ($ssl){ $opt[CURLOPT_SSL_VERIFYHOST] = 1; $opt[CURLOPT_SSL_VERIFYPEER] = FALSE; } curl_setopt_array($ch,$opt); $data = curl_exec($ch); curl_close($ch); return $data; } $corpid="请修改为你企业号的corpid"; $corpsecret="请修改为你企业号的corpsecret"; $Url="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$corpid&corpsecret=$corpsecret"; $res = curlPost($Url); $ACCESS_TOKEN=json_decode($res)->access_token; $Url="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$ACCESS_TOKEN"; $msg='要发送的文字信息'; $data="{\"touser\":\"要发给的用户ID\",\"msgtype\":\"text\",\"agentid\":你的应用ID,\"text\":{\"content\":\"$msg\"},\"safe\":0}"; $res = curlPost($Url,$data); $errmsg=json_decode($res)->errmsg; if($errmsg==="ok"){ echo "发送成功!"; }else{ echo "发送失败,".$errmsg; } ?>
更多介绍:http://www.cnblogs.com/jisheng/archive/2012/02/13/2350040.html
相关推荐
主要功能是完成了对微信企业号API的封装,目前还在不断完善中,通过调用本项目的类库和函数,可以实现调用微信企业号API,降低了开发成本,开发者可以不用再自己动手去编写底层代码,且本项目在token的获取和使用...
主要功能是完成了对微信企业号API的封装,目前还在不断完善中,通过调用本项目的类库和函数,可以实现调用微信企业号API,降低了开发成本,开发者可以不用再自己动手去编写底层代码,且本项目在token的获取和使用...
集成了官方API接口的工具类,实例化Wechat后,调用相应方法即可,支持企业号和公众号的网页版开发 PS: 企业号与公众号切换过程中,需修改对应的接口请求地址,即常量API_URL_PREFIX,对应修改如下: 企业号: ...
在回调模式下,企业不仅可以主动调用企业号接口,还可以接收用户的消息或事件。当你开启应用的回调模式时,企业号会要求你填写应用的URL、Token、EncodingAESKey三个参数。 此源码为自用已验证源码。供参考。
主要功能是完成了对微信企业号API的封装,目前还在不断完善中,通过调用本项目的类库和函数,可以实现调用微信企业号API,降低了开发成本,开发者可以不用再自己动手去编写底层代码,且本项目在token的获取和使用...
易语言 企业微信 WXBizMsgCrypt 类函数调用例程.VerifyURL, DecryptMsg, EncryptMsg三个接口
配置这两个地方就可以了! //1.在index.php中第3行设置JSSDK参数.......企业号填权限管理中的CorpID和Secret 订阅号和服务号填...微信webApp调用JSSDK需要设置可以可信域名,然后将这个demo上传的可信域名就可以使用了!
3.4 接口权限及调用频率 33 3.5 微信网页开发样式库 35 3.6 小结 37 第4章 常用调试方法及工具 4.1 微信测试号 38 4.2 接口在线调试 41 4.3 微信Web开发者工具 42 4.3.1 微信网页授权调试 43 4.3.2...
3.4 接口权限及调用频率 33 3.5 微信网页开发样式库 35 3.6 小结 37 第4章 常用调试方法及工具 4.1 微信测试号 38 4.2 接口在线调试 41 4.3 微信Web开发者工具 42 4.3.1 微信网页授权调试 43 4.3.2...
本书主要内容有微信公众平台介绍、订阅号的开发、地理位置应用、API 调用、数据库操作、微网站搭建、缓存处理、服务号多客服功能使用、企业号开发、第三方接口等,涵盖微信公众平台开发的各种基础应用。本书在编写...