token信息在这个目录\application\Portal\Controller\WeixinController.class.php

微信公众号基本配置中 填写的URL需要正确响应微信发送的Token验证

URL一栏应该怎么写

QQ截图20200708165734.jpg (31.62 KB, 下载次数: 0)

2020-7-8 16:57 上传

WeixinController.class.php 内容如下

// +----------------------------------------------------------------------

// | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]

// +----------------------------------------------------------------------

// | Copyright (c) 2013-2014 http://www.thinkcmf.com All rights reserved.

// +----------------------------------------------------------------------

// | Author: Dean

namespace Portal\Controller;

use Common\Controller\HomebaseController;

class WeixinController extends HomebaseController {

public function __construct() {

parent::__construct();

}

function _initialize() {

parent::_initialize();

import('Common.Lib.weixin');

$this->weixin = new \weixin($this->extract[weixin_appid],$this->extract[weixin_key],$this->extract[access_token]);

}

public function index() {

$data2['get']=$_GET;

$data2['post']=$_POST;

$data2['server']=$_SERVER;

//接收传送的数据

$fileContent = file_get_contents("php://input");

//转换为simplexml对象

$xmlResult = simplexml_load_string($fileContent, 'SimpleXMLElement', LIBXML_NOCDATA);

$xmlarray=json_decode(json_encode($xmlResult), true);

$data2['xml']=$xmlarray;

$data['msg']=json_encode($data2);

$data['time']=date('y-m-d H:i:s',time());

M('weixin')->add($data);

define("TOKEN", "zmm");

$echoStr = $_GET["echostr"];

if($this->checkSignature()){

if($xmlarray['Event']=='subscribe'){

$data=array();

$data['openid']=$xmlarray['FromUserName'];

if(!M('user')->where($data)->find()){

if(!M('openid')->where($data)->find()){

$data['code']=$xmlarray['EventKey'];

$data['time']=date('Y-m-d H:i:s',time());

M('openid')->add($data);

}

elseif($xmlarray['EventKey']){

$data['code']=$xmlarray['EventKey'];

$data['time']=date('Y-m-d H:i:s',time());

M('openid')->where(array('openid'=>$data['openid']))->save($data);

}

}

}

ob_clean();

echo $echoStr;

exit;

}

}

public function responseMsg()

{

//get post data, May be due to the different environments

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

//extract post data

if (!empty($postStr)){

/* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,

the best way is to check the validity of xml by yourself */

libxml_disable_entity_loader(true);

$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);

$fromUsername = $postObj->FromUserName;

$toUsername = $postObj->ToUserName;

$keyword = trim($postObj->Content);

$time = time();

$textTpl = "

%s

0

";

if(!empty( $keyword ))

{

$msgType = "text";

$contentStr = "Welcome to wechat world!";

$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);

echo $resultStr;

}else{

echo "Input something...";

}

}else {

echo "";

exit;

}

}

private function checkSignature()

{

// you must define TOKEN by yourself

if (!defined("TOKEN")) {

define("TOKEN", "zmm");

}

$signature = $_GET["signature"];

$timestamp = $_GET["timestamp"];

$nonce = $_GET["nonce"];

$token = TOKEN;

$tmpArr = array($token, $timestamp, $nonce);

// use SORT_STRING rule

sort($tmpArr, SORT_STRING);

$tmpStr = implode( $tmpArr );

$tmpStr = sha1( $tmpStr );

if( $tmpStr == $signature ){

return true;

}else{

return false;

}

}

}

php 限制微信登陆,thinkphp 微信用户登录 设置问题相关推荐

  1. 小程序登录本地服务器,微信小程序实现用户登录模块服务器搭建

    我选用的是node.js来搭建服务器,没有安装的小伙伴可以参考我的node.js其他博客. 服务器安装与配置 初始化项目,将会自动创建package.json配置文件. npm init -y 安装E ...

  2. Spring-Boot整合微信登陆、微信支付、邮箱发送、支付宝支付和阿里云短信

    Spring-Boot整合 1. 发送邮件 2. 支付宝支付 3. 阿里云短信 4. 微信登陆 5. 微信支付 6. Swargger2 前后端API接口信息文档 7. ehcache缓存缓存 8. ...

  3. egret引擎下,微信分包,微信登陆,微信分享例子

    egret引擎下,微信分包,微信登陆,微信分享例子 https://github.com/ChenXianbin/egret_kit/tree/%E5%88%86%E5%8C%85%E5%8A%A0% ...

  4. C语言再学习 -- Ubuntu 12.04 root用户登录设置

    参看:Ubuntu12.04 root用户登录设置 参看:Ubuntu 12.04 root用户登录设置 ubuntu12.04默认是不允许root登录的,在登录窗口只能看到普通用户和访客登录.以普通 ...

  5. ubuntu首次给root用户设置密码和root用户登录设置

    1 ubuntu首次给root用户设置密码 给root用户设置密码输入命令sudo passwd,然后系统会让你输入密码,这时输入的密码就是root用户的密码了,设置完成之后就可以切换root用户登录 ...

  6. Ubuntu12.04 root用户登录设置

    Ubuntu12.04 root用户登录设置 ubuntu12.04默认是不允许root登录的,在登录窗口只能看到普通用户和访客登录.以普通身份登陆Ubuntu后我们需要做一些修改,  www.2ct ...

  7. wps去除登陆_WPS强制用户登录功能,这是要闹哪样?

    我一直都很信赖WPS,也很支持WPS,就是因为wps对之前word个版本之前的兼容很好. 前几天wps强制我更新了版本现在的版本:10.1.0.5850,以为是正常更新,一运行,就跳出登录窗口.因为本 ...

  8. 微信登陆的LOL只有一个服务器,《LOL》哪些区可以微信登陆 可微信登陆大区汇总一览...

    导 读 <英雄联盟>官方今天宣布,部分大区开启了微信登陆功能,玩家可以将微信与QQ绑定,通过扫码登陆,一起来了解一下吧. 官方公告: 我们将于5月6日在征服之海,均衡教派,卡拉曼达,巨龙之 ...

  9. linux 用户禁止登陆,禁止Linux用户登录方法

    我们在做系统维护的时候,希望个别用户或者所有用户不能登录系统,保证系统在维护期间正常运行.这个时候我们就要禁止用户登录. 1.禁止个别用户登录.比如禁止lynn用户登录. passwd -l lynn ...

最新文章

  1. 精通python能干什么-Python学到什么程度才算精通?天津Python培训
  2. 基于注释的Spring Security实战
  3. 图像处理常用边缘检测算子
  4. Linux运维工程师面试-部分题库
  5. 释放广域网潜能的“简单”之道
  6. 电脑基础操作_学电脑到万科!怀集万科电脑培训2019全面招生!
  7. 【转载】究竟什么是POJO?
  8. Redis字符串类型的操作
  9. Rust: 如何在Windows下Atom中配置Rust环境?
  10. 那些年学java遇到的好东西
  11. 计算机报考电子邮箱格式,电子邮箱格式怎么写
  12. 跨平台应用开发进阶(四) :uni-app 实现上传图片
  13. 如何在Mac终端删除U盘的隐藏文件
  14. 云计算 原理与实践期末复习
  15. 疫情可视化(visualization)
  16. 机器学习中的数据级联:被低估的数据,被高估的模型
  17. 【源码学习】正则表达式
  18. 什么是服务器?服务器有哪几种类型?
  19. i3 10100f和i5 9400f哪个好?
  20. zzuli303(奇葩26进制转换)

热门文章

  1. 服务器未能启动w3svc,win10,iis10无法启动,w3svc服务无法启动
  2. 常用的PostMethod及getMethod请求
  3. 基础编程题目集 编程题部分
  4. 力扣每日一题2022-05-04中等题:找出游戏的获胜者
  5. 数论基础,从入门到入门
  6. 试证明:如果X→Y,W→Z ,则 XW→YZ。
  7. Codeforces 1091F New Year and the Mallard Expedition
  8. 网络安全——传输层安全协议(3)
  9. python excel数据处理?
  10. Java面试常考的 BIO,NIO,AIO 总结