微信公众号url认证(服务器认证)

news/2024/12/22 13:06:09/

把下面的代码复制

路由需指定到wx方法

<?php

 

namespace App\Http\Controllers\Wx;

 

use Illuminate\Http\Request;

use App\Http\Controllers\Controller;

 

class WxController extends Controller

{

public function Wx(){

//valid signature , option

if($this->checkSignature()){

$echoStr = $_GET["echostr"];

echo $echoStr;

exit;

}

}

public function responseMsg()

{

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

// $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

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

//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);

$msgType=$postObj->MsgType;

$event=$postObj->Event; //接收事件类型

$time = time();

$textTpl = "<xml>

<ToUserName><![CDATA[%s]]></ToUserName>

<FromUserName><![CDATA[%s]]></FromUserName>

<CreateTime>%s</CreateTime>

<MsgType><![CDATA[%s]]></MsgType>

<Content><![CDATA[%s]]></Content>

<FuncFlag>0</FuncFlag>

</xml>";

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;

}

if($msgType=="event"){

if($event=="subscribe"){

$msgType = "text";

$contentStr = "Welcome to wechat world-----subscribe!";

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

echo $resultStr;

header("Location:http://case.jujiaoweb.com/index/index/sub");

}

}

}

private function checkSignature(){

$signature = $_GET["signature"];

$timestamp = $_GET["timestamp"];

$nonce = $_GET["nonce"];

$token = 'weixin2019';//服务器配置的令牌token

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

sort($tmpArr);

$tmpStr = implode( $tmpArr );

$tmpStr = sha1( $tmpStr );

if( $tmpStr == $signature ){

return true;

}else{

return false;

}

}

}


http://www.ppmy.cn/news/736018.html

相关文章

注册一个微信公众号的测试平台

一.准备工作 1. 注册一个微信公众号的测试平台 具体链接&#xff1a;微信公众号 进入后如下图&#xff1a; [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CWpYYAqH-1664430761450)(en-resource://database/831:1)] 然后扫码注册登录&#xff0c;会…

python 中使用os进行路径处理

假设现有路径为 path /home/test/project/csdn/test.txt1.获取文件名 获取到最后的test.txt文件名 import os path /home/test/project/csdn/test.txt # 两种方式 filename os.path.split(path)[1] filename os.path.basename(path)2.获取无扩展名的文件名 只取test.tx…

leetcode 1313. 解压缩编码列表

题目描述解题思路执行结果 leetcode 1313. 解压缩编码列表. 题目描述 解压缩编码列表 给你一个以行程长度编码压缩的整数列表 nums 。 考虑每对相邻的两个元素 [freq, val] [nums[2i], nums[2i1]] &#xff08;其中 i > 0 &#xff09;&#xff0c;每一对都表示解压后子列表…

电脑PIN码忘记怎么办?

1、情况说明 首先来说明一下我的情况&#xff0c;电脑是联想小新的&#xff0c;之前一直都用的是指纹登陆&#xff0c;这就导致我的PIN和密码都不记得了&#xff0c;但是最开始买来电脑进行设置的时候&#xff0c;设置了密保问题&#xff0c;这个还记得。今天打开电脑的时候显…

Windows10的pin码有几位

Windows10的PIN码有几位呢&#xff1f; WIN 10 的 PIN 码是由用户自行设置的&#xff0c;设置方法如下。 点击开始——设置——账户——登录选项——在右边设置 PIN 密码&#xff08;4 位数&#xff09; win10 pin密码忘记可以重置找回&#xff0c;找回方法如下&#xff1a; …

pin码忘了怎么办?Win11忘记pin码进不了系统?

一些用户进入系统之前设置了PIN码&#xff0c;时间久了之后&#xff0c;忘记了登录系统的PIN码&#xff0c;导致进不了系统&#xff0c;应该怎么处理呢&#xff1f; 纯净之家-win7纯净版系统_win7 ghost 纯净版 方法一&#xff1a; 1、如果我们设置有pin码&#xff0c;就可以使…

Win10忘记pin码以及密码的解决办法(亲测有用)

Win10忘记pin码以及密码怎么办&#xff1f;废话不多说&#xff0c;直接开整&#xff1a; 1、下载一个PE工具&#xff0c;这里推荐微PE http://www.wepe.com.cn/ 2、插入U盘&#xff0c;运行软件&#xff0c;选择安装到U盘 &#xff08;注意&#xff1a;此过程会清除U盘的所有…

荣耀电脑,win11增加pin码登录选项后:电脑出现问题,你的PIN不可用。请单击以重新设置

在网上看到很多人说改了自己的msconfig导致电脑重启后提示pin不可使用。而我非常悲惨的也忘记了自己的密码&#xff0c;指纹解锁不知道为啥被禁用了 官方建议的解决方案&#xff1a; 1.可能是网络不行&#xff0c;pin码需要联网验证&#xff0c;建议用电脑连手机热点登十分钟后…