php 接入微信 验证,PHP实现微信公众平台企业号验证接口

这篇文章主要介绍了PHP编程之微信公众平台企业号验证接口,是通过回调操作实现的企业号验证功能接口,需要的朋友可以参考下

本文实例讲述了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 =

"

".sReqTimeStamp."

";

$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");

}

?>

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/357689.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【APICloud系列|37】 银联支付的实现

正式使用请与银联签约端调用方法:xlUnionPayapi.require(xlUnionPay); xlUnionPay .xlUnionPay({params},callback(ret,err))params: spId :银联保留参数,默认为null(Android用) sysProvider :银联保留参数…

NGUI 3.5教程(二)Label 标签 (Hello world)、多行文本

写在前面: 本文将创建NGUI的第一个样例。依照编程传统,第一个样例,就是做一个Hello world 显示出来。NGUI。我们用Label来实现 。欢迎大家纠错、拍砖!原创非常辛苦,如有转载,请注明出处:htt…

【APICloud系列|38】 微信登录分享、QQ登录分享实现方法

对微信登录分享、QQ登录分享进行一个流程性的讲解。在微信分享经常是分享不成功或者图片不显示,主要问题是图片过大或者是没有本地化。 1、流程:使用auth进行授权--->getToken获取用户信息---->同步至服务端 注意:在安卓端可以提示用户没有安装微信端,但是ios端切…

PHP发送数据到指定方法,php通过header发送自定义数据方法_php技巧

下面小编就为大家分享一篇php通过header发送自定义数据方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧本文将介绍如何通过header发送自定义数据。发送请求时,除了可以使用$_GET/$_POST发送数据,也可以把数据…

JavaScript高级程序设计学习笔记第二十章--JSON

1.JSON:JavaScript Object Notation, JavaScript 对象表示法。 2.最重要的是要理解它是一种数据格式,不是一种编程语言。虽然具有相同的语法形式,但 JSON 并不从属于 JavaScript。而且,并不是只有 JavaScript 才使用 J…

jboss-5.1.0_JBoss AS 7.1.0.Final“ Thunder”发布-Java EE 6 Full Profile认证!

jboss-5.1.0在JBoss AS7上进行了大约一年的开发后,我们现已发布7.1.0.Final“ Thunder” ! 可从此处的通常位置下载该文件。 对于JBoss AS7团队来说,这是一个非常大的成就,我们为此版本感到非常自豪。 这个版本包含了7.1.0.CR1b的…

java编程一般类抽象类的定义,Java编程基础抽象类

本文主要是讲述Java编程基础-抽象类,更多Java技术知识,请登陆疯狂软件教育官网。  抽象类:  抽象:不具体,看不明白关键字abstract  抽象类的特点:  1.抽象方法只能定义在抽象类中,抽象类…

蓝牙手柄按键码

/*------------------------------------------------------------------------------ ZetaGC串口码与键码对应关系: 上 0x60 -> 0x26 \ 下 0x30 -> 0x28 | 此4键只能相邻按键组合按下 左 0x20 -> 0x25 | 右 …

【APICloud系列|39】实现人脸识别,人脸登录,人脸信息获取

场景:大部分的APP的注册、登录模式都是采用手机号和密码进行登录或者注册,当然这种模式并没有任何不妥,只是不能快速的实登录或者注册,减少手误或者慢的问题。 资源:现在我们可以通过人脸识别进行登录和注册,比如使用一登SDK集成,或者Facecore SDK集成,前后者都需要编程…

将PostgreSQL PL / Java安装为PostgreSQL扩展

在2011年,我在PostgreSQL PL / Java上写了一系列文章。 基本信息仍然可靠,但是现在有了一种从源代码安装PL / Java的简便方法。 这也消除了依赖第三方来创建软件包的需要。 这些注释将非常简短,因为我认为我的读者已经对git和maven熟悉了。 …

linux下php可以实现哪些功能,基于Linux的远程管理系统的设计与实现(PHP)

基于Linux的远程管理系统的设计与实现(PHP)来源:2BYSJ.cn 资料编号:2SJ260700 资料等级:★★★★★ %D7%CA%C1%CF%B1%E0%BA%C5%A3%BA2SJ260700以下是资料介绍,如需要完整的请充值下载. 本资料已审核过,确保内容和网页里介绍一致. 密 惠1.无需…

MySQL 5.6 my.cnf 参数说明(转)

1 # 以下选项会被MySQL客户端应用读取。2 # 注意只有MySQL附带的客户端应用程序保证可以读取这段内容。3 # 如果你想你自己的MySQL应用程序获取这些值。4 # 需要在MySQL客户端库初始化的时候指定这些选项。5 6 #7 [client]8 #password [your_password]9 port MYSQL_TCP_PORT…

java dto entity,entity与DTO完全一致时

完全一致指的是entity与DTO之间参数名、参数类型、参数个数全部相同的情况entity代码package com.hxd.simple.domain.entity;import java.io.Serializable;import java.time.LocalDateTime;/*** author hxd*/public class User implements Serializable {/*** 用户id*/private …

【APICloud系列|41】融云单聊及消息的处理的对接与实现

包含了单聊及消息的处理。主要分三个页面处理完成,入口首页(index)、消息列表页(message)、会话页面(chat) index.html var rong;apiready=function(){rong = api.require(rongCloud2);//判断用户登录成功后执行方法rongCloud();}function rongCloud(){//初始化init();/…

SQL2000中@@ERROR的使用提醒

SQL SERVER 2000中不支持TRY, CATCH语法&#xff0c;所以对于异常的捕捉处理只可以根据ERROR来判断&#xff1b; 经常的用法是在执行语句后直接判断ERROR <> 0 看是不是执行成功。 然而日前因为存储过程的多并发调用&#xff0c;对一个表插入数据&#xff0c;产生主键冲突…

tostring 16进制_ToString:身份哈希码的十六进制表示形式

tostring 16进制我以前在方便的Apache Commons ToStringBuilder上写过博客&#xff0c;最近有人问我&#xff0c;在生成的String输出中出现的看似神秘的文本是什么构成的。 询问该问题的同事正确地推测出他正在查看的是哈希码&#xff0c;但与他的实例的哈希码不匹配。 我解释说…

uctools.php,discuz 论坛UCenter无法登录,闪退的终极8种解决办法

最近论坛的UCenter无法登录&#xff0c;闪退的解决办法(密码是正确的)在Discuz官方论坛寻找了无数的解决方法&#xff0c;总结有以下几种&#xff1a;1. 直接在Uc_server修改创始人密码改UC创始人密码。修改UC配置文件 /uc_server/data/config.inc.php对应两行换掉define(UC_FO…

前端工程师应该掌握哪些技能才方便找工作?

作为前端工程师,必须掌握到一定的技能才方便找工作,找高薪工作,你需要掌握这些技能。 高清思维导图下载:https://download.csdn.net/download/weixin_41937552/14752706 目录 HTML5+CSS3 移动Web网页开发

dictionary 用linQ排序

Dictionary<string, int> letterWordTotalNum wordsMrg.GetAllLetterTotalNum();var dicSort from d in letterWordTotalNum orderby d.Key select d;foreach (string key in dicSort.Keys){s Response.Write(dicSort[key] "<br />");}按key进行升…

延迟分析中的案例研究:锁定与同步

特别是在这篇文章中&#xff0c;我们将讨论&#xff1a; java.concurrent.Lock创建的垃圾 比较锁与同步 如何以编程方式测量延迟 争用对锁和同步的影响 协调遗漏对延迟测试的影响 回到我最喜欢的主题之一&#xff0c;垃圾创建/分配。 有关此主题的更多详细信息&#xff0…