微信公众平台企业号验证接口、回调 PHP版

微信公众平台企业号验证接口、回调 PHP版,本人为了解决这个企业号的验证和发送消息的问题,整整研究了几天时间,因为微信企业号刚推出来,网上资料太少了!后来在一些朋友的帮助下和本人反复调试完善下,终于整理得到了比较理想的文档,经亲测,实验成功。

include_once "WXBizMsgCrypt.php";
// 第三方发送消息给公众平台
$encodingAesKey = "rpJmhCphnndiCLIcNKcUmhTn2GQBNjISPU9GfsfOlxx";
$token = "xxxxxxx";
$corpId ="wxa9a0031f24631f9x"; //这里已正确填写自己的corpid
//公众号服务器数据
$sReqMsgSig = $sVerifyMsgSig = $_GET['msg_signature'];
$sReqTimeStamp = $sVerifyTimeStamp = $_GET['timestamp'];
$sReqNonce = $sVerifyNonce = $_GET['nonce'];
$sReqData = file_get_contents("php://input");;
$sVerifyEchoStr = $_GET['echostr'];
$wxcpt = new WXBizMsgCrypt($token, $encodingAesKey, $corpId);
if($sVerifyEchoStr){
$sEchoStr = "";
$errCode = $wxcpt->VerifyURL($sVerifyMsgSig, $sVerifyTimeStamp, $sVerifyNonce, $sVerifyEchoStr, $sEchoStr);
if ($errCode == 0) {
print($sEchoStr);
} else {
print($errCode . "\n\n");
}
exit;
}
 //decrypt
$sMsg = "";  //解析之后的明文
$errCode = $wxcpt->DecryptMsg($sReqMsgSig, $sReqTimeStamp, $sReqNonce, $sReqData, $sMsg);
if ($errCode == 0) {
$xml = new DOMDocument();
$xml->loadXML($sMsg);
$reqToUserName = $xml->getElementsByTagName('ToUserName')->item(0)->nodeValue;
$reqFromUserName = $xml->getElementsByTagName('FromUserName')->item(0)->nodeValue;
$reqCreateTime = $xml->getElementsByTagName('CreateTime')->item(0)->nodeValue;
$reqMsgType = $xml->getElementsByTagName('MsgType')->item(0)->nodeValue;
$reqContent = $xml->getElementsByTagName('Content')->item(0)->nodeValue;
$reqMsgId = $xml->getElementsByTagName('MsgId')->item(0)->nodeValue;
$reqAgentID = $xml->getElementsByTagName('AgentID')->item(0)->nodeValue;
switch($reqContent){
case "马云":
$mycontent="您好,马云!我知道您创建了阿里巴巴!";
break;
case "马化腾":
$mycontent="您好,马化腾!我知道创建了企鹅帝国!";
break;
case "史玉柱":
$mycontent="您好,史玉柱!我知道您创建了巨人网络!";
break;
default :
$mycontent="你是谁啊?!一边凉快去!";
break;
}
$sRespData =
"<xml>
<ToUserName><![CDATA[".$reqFromUserName."]]></ToUserName>
<FromUserName><![CDATA[".$corpId."]]></FromUserName>
<CreateTime>".sReqTimeStamp."</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[".$mycontent."]]></Content>
</xml>";
$sEncryptMsg = ""; //xml格式的密文
$errCode = $wxcpt->EncryptMsg($sRespData, $sReqTimeStamp, $sReqNonce, $sEncryptMsg);
if ($errCode == 0) {
//file_put_contents('smg_response.txt', $sEncryptMsg); //debug:查看smg
print($sEncryptMsg);
} else {
print($errCode . "\n\n");
}
} else {
print($errCode . "\n\n");
}
?>

WXBizMsgCrypt.php 文件请点击下面地址下载 :

http://mp.weixin.qq.com/wiki/downloads/SampleCode.zip

时间: 2024-12-24 22:09:09

微信公众平台企业号验证接口、回调 PHP版的相关文章

微信公众平台企业号开发—开启回调模式

2014年9月17日,微信发布了期待已久的企业号.网上关于企业号的教程几乎还是0,所以这里分享一下的我的开发经验. 对比于订阅号和服务号的开发,企业号的开发显得更加复杂一点.这大概也是腾讯考虑到企业信息安全性要求比较高的缘故,在消息的收发和一些验证上都增加了加密解密的操作.这就需要开发者认真去阅读官方说明(其实通过官方说明你可以解决几乎所有问题),接下来我开启回调模式的步骤: 1.申请企业号:这个步骤这里就不详细赘述了,可以参考 http://jingyan.baidu.com/article/

微信公众平台接入第三方接口

前一段时间为本站注册了微信公众平台,同时将消息处理机制接入本站. 方法: 1.在微信公众平台后台绑定接口,如http://www.baidufe.com/data/weixin 这里需要注意的是,人家网站上写的网站接入,可千万别只填写一个自己的域名,这样是不可能成功的,必须得有一个实实在在的接口才行. 2.在baidufe提供这个data/weixin接口,接受微信公众平台的验证 主要就是获取到微信发送过来的参数,然后加密一下再返回给它验证,匹配上就表示验证通过. 3.验证通过后,再修改data

Senparc.Weixin.MP SDK 微信公众平台开发教程(三):微信公众平台开发验证

原文:Senparc.Weixin.MP SDK 微信公众平台开发教程(三):微信公众平台开发验证 要对接微信公众平台的"开发模式",即对接到自己的网站程序,必须在注册成功之后(见Senparc.Weixin.MP SDK 微信公众平台开发教程(一):微信公众平台注册),等待官方审核,审核通过之后,会在后台顶部出现“高级功能”菜单. 使用“高级功能”>“开发模式”之前,必须有一个已经部署在Internet上,可以用80端口访问的网站(域名或IP访问都可以),一些开发的准备工作见文

[转]微信公众平台(测试接口)开发前的准备工作(转载自walkingmanc的专栏)

本文转自:http://blog.csdn.net/jiangweicpu/article/details/21228949 http://blog.csdn.net/walkingmanc/article/details/21457097第二讲 探秘微信公众号 1.   申请微信公众号 我们要进行微信公众平台的开发,第一步当然是要有公众号了.什么?不知道什么是微信公众号,看来你还要先回炉炼炼了,呵呵.通俗的说,我们微信平台就好像是一个大社会,里面有个体人,也有各种组织机构.你自己使用的普通微信

第三方平台可以通过微信公众平台素材管理接口实现同步了

平时运营微信公众平台时有没发现素材管理有点不太好操作,特别是素材一多,找个东西都翻半天.现在好了,微信宣布公众平台新增素材管理接口,对所有认证公众号开放,方便快捷,可以实现同步互通. 微信公众平台素材管理接口具体如下: 新增临时素材 公众号经常有需要用到一些临时性的多媒体素材的场景,例如在使用接口特别是发送消息时,对多媒体文件.多媒体消息的获取和调用等操作,是通过media_id来进行的.素材管理接口对所有认证的订阅号和服务号开放. 通过本接口,公众号可以新增临时素材(即上传临时多媒体文件).但

微信公众平台语义理解接口正式对外开放

siri是个不错的,对着手机说话就可以帮你设置闹钟找酒店等,现在微信也开始实现这些类似的功能了,微信公众平台语义理解接口正式对外开放. 微信公众平台新增语义理解接口 微信公众平台语义理解接口正式对外开放.通过语义接口,接收用户发送的自然语言请求,让系统理解用户的说话内容. 微信语义理解接口提供从用户自然语言输入到结构化解析的技术实现,使用先进的自然语言处理技术给开发者提供一站式的语义解析方案.该平台覆盖多个垂直领域的语义场景,部分领域还可以支持取得最终的展示结果.开发者无需掌握语义理解及相关技术

微信公众平台无高级接口账号获取用户基本信息

获得微信公众平台关注用户的基本信息,包括昵称.头像.性别.国家.省份.城市.语言. 有两个不同的Access Token,他们产生的方式不一样, 一种是使用AppID和AppSecret获取的access_token, 一种是OAuth2.0授权中产生的access_token,方倍工作室分别称为全局Access Token和授权Access Token. 网页授权的两种scope的区别说明 1.以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是

微信公众平台开发(一)---接口介绍及配置

一.公众平台开发接口介绍 公众平台是为微信用户提供服务的平台,而公众平台开发接口则是提供服务的基础,开发者在公众平台网站中创建公众号.获取接口权限后,可以通过阅读本接口文档来帮助开发. 公众平台开发接口提供与用户进行消息交互.自定义菜单交互的能力.对于成功接入公众平台开发接口的公众账号,当用户发消息给公众号,微信公众平台服务器会使用http请求对接入的网址进行消息推送,第三方服务器可通过响应包回复特定结构,从而达到回复消息的目的. 二.注册微信平台公众帐号  (1)注册地址:https://mp

微信公众平台——企业号编辑模式的开启和使用

上篇博客简单介绍了下微信三大公众号的区别,现在主要来看看微信企业号. 微信企业号是微信为企业客户提供的移动服务,旨在提供企业移动应用入口.帮助企业建立员工.上下游供应链与企业IT 系统间的连接.利用企业号,企业或第三方服务商可以快速.低成本的实现高质量的企业移动轻应用,实现生产.管理.协作.运营的移动化.企业号作为企业IT 移动化解决方案,相比企业自己开发APP 具有明显的优势.具体为: 1) 快速移动化办公.企业在开通企业号后,可以直接利用微信及企业号的基础能力,加强员工的沟通与协同,提升企业