TP3.2校验微信公众号、小程序 服务器地址
来源:互联网 发布:查日本经济数据的网站 编辑:程序博客网 时间:2024/06/05 18:16
1、在TP3.2里面,写一个控制器,用来校验微信公众号、小程序的服务器地址
1.<?php 2.namespace Home\Controller; 3.use Think\Controller; 4.header('Content-type:text'); 5.define("TOKEN", "x**");
6.class XiaoKeFuController extends Controller { 7.public function index(){ 8.if (isset($_GET['echostr'])) { 9.$this->valid(); 10.}else{ 11.$this->responseMsg(); 12.} 13.}
14.public function valid() 15.{ 16.$echoStr = $_GET["echostr"]; 17.if($this->checkSignature()){ 18.header('content-type:text'); 19.echo $echoStr; 20.exit; 21.}else{ 22.echo $echoStr.'+++'.TOKEN; 23.exit; 24.} 25.}
26.private function checkSignature() 27.{ 28.$signature = $_GET["signature"]; 29.$timestamp = $_GET["timestamp"]; 30.$nonce = $_GET["nonce"];
31.$token = TOKEN; 32.$tmpArr = array($token, $timestamp, $nonce); 33.sort($tmpArr, SORT_STRING); 34.$tmpStr = implode( $tmpArr ); 35.$tmpStr = sha1( $tmpStr );
36.if( $tmpStr == $signature ){ 37.return true; 38.}else{ 39.return false; 40.} 41.}
42.public function responseMsg() 43.{ 44.$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
45.if (!empty($postStr)){ 46.$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); 47.$fromUsername = $postObj->FromUserName; 48.$toUsername = $postObj->ToUserName; 49.$keyword = trim($postObj->Content); 50.$time = time(); 51.$textTpl = "<xml> 52.<ToUserName><![CDATA[%s]]></ToUserName> 53.<FromUserName><![CDATA[%s]]></FromUserName> 54.<CreateTime>%s</CreateTime> 55.<MsgType><![CDATA[%s]]></MsgType> 56.<Content><![CDATA[%s]]></Content> 57.<FuncFlag>0</FuncFlag> 58.</xml>"; 59.if($keyword == "?" || $keyword == "?") 60.{ 61.$msgType = "text"; 62.$contentStr = date("Y-m-d H:i:s",time()); 63.$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); 64.echo $resultStr; 65.} 66.}else{ 67.echo ""; 68.exit; 69.} 70.} 71.}
2、服务器地址URL:
https://m.*.com/index.php/Home/XiaoKeFu/index
token:x**
PHP原生实现,校验微信公众号||小程序服务器地址
1、原生的.php文件: test.php
1.<?php 2.header('Content-type:text'); 3.define("TOKEN", "weixin");
4.$wechatObj = new wechatCallbackapiTest(); 5.if (isset($_GET['echostr'])) { 6.$wechatObj->valid(); 7.}else{ 8.$wechatObj->responseMsg(); 9.}
10.class wechatCallbackapiTest 11.{ 12.}public function valid() 13.{ 14.$echoStr = $_GET["echostr"]; 15.if($this->checkSignature()){ 16.header('content-type:text'); 17.echo $echoStr; 18.exit; 19.} 20.}
21.private function checkSignature() 22.{ 23.$signature = $_GET["signature"]; 24.$timestamp = $_GET["timestamp"]; 25.$nonce = $_GET["nonce"];
26.$token = TOKEN; 27.$tmpArr = array($token, $timestamp, $nonce) 28.sort($tmpArr, SORT_STRING); 29.$tmpStr = implode( $tmpArr ); 30.$tmpStr = sha1( $tmpStr );
31.if( $tmpStr == $signature ){ 32.return true; 33.}else{ 34.return false; 35.} 36.}
37.public function responseMsg() 38.{ 39.$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
40.if (!empty($postStr)){ 41. $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); 42.$fromUsername = $postObj->FromUserName; 43.$toUsername = $postObj->ToUserName; 44.$keyword = trim($postObj->Content); 45.$time = time(); 46.$textTpl = "<xml> 47.<ToUserName><![CDATA[%s]]></ToUserName> 48.<FromUserName><![CDATA[%s]]></FromUserName> 49.<CreateTime>%s</CreateTime> 50.<MsgType><![CDATA[%s]]></MsgType> 51.<Content><![CDATA[%s]]></Content> 52.<FuncFlag>0</FuncFlag> 53.</xml>"; 54.if($keyword == "?" || $keyword == "?") 55.{ 56.$msgType = "text"; 57.$contentStr = date("Y-m-d H:i:s",time()); 58.$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); 59.echo $resultStr; 60.} 61.}else{ 62.echo ""; 63.exit; 64.} 65.} 66.} 67.?>
2、拿去直接用,放在/目录下即可。
公众号服务器地址URL:
https://m.****.com/test.php
token:weixin
阅读全文
0 0
- TP3.2校验微信公众号、小程序 服务器地址
- 微信公众号接口配置信息失败 tp3.2
- 小程序开发接口,微信公众平台开发地址
- tp3.5 微信公众号群发图文消息
- 接入微信公众号:验证服务器地址的有效性
- 小白版微信公众号开发第一节---服务器配置
- Java 微信公众号菜单关联小程序
- 微信公众号与小程序数据互通
- 微信公众号、小程序错误汇总
- 微信公众号快速注册小程序
- 如何用微信公众号快速注册小程序
- 小程序与微信公众号的区别
- Java开发微信公众号(二)——开发请求校验程序
- 微信公众号菜单添加小程序,miniprogram,pagepath参数详解,php开发公众号
- java微信公众号开发入门(2)--微信官方到本地校验
- 微信公众号如何关联小程序(小程序如何开发)
- 微信token校验以及服务器地址验证
- 微信公众号开发学习地址
- 解决svn图标不显示的各种问题
- 不同的方式的实现Table不换行省略号显示
- Session hijacking(会话劫持)
- vb.net版机房重构--存储过程的使用
- 数字电路中的时序分析(一)
- TP3.2校验微信公众号、小程序 服务器地址
- 剑指Offer_面试题15_链表中倒数第k个结点
- mysql中bigint、int、mediumint、smallint 和 tinyint的取值范围
- R语言-循环方式
- flowable任务监听器获取spring bean
- ubuntu下修改MYSQL数据库密码
- 算法为什么那么难?——算法学习秘籍
- CC26XX SBL
- Leetcode 628(Java)