微信公纵平台基本配置php_PHP实现微信扫码登陆(三)--微信公众平台配置
1. 公众平台配置
登录微信公众平台
开发--> 基本配置, 将服务器ip12.23.34.45加入到ip白名单中
image.png
验证token
image.png
此时点击提交, 肯定会失败, 因为微信服务器请求PHP服务器, 转发到/accept下, 还没有php路由去处理该请求, 使用laravel编写处理方法, 验证消息的确来自微信服务器
2. 编写验证token逻辑
路由文件web.php
Route::middleware(['weixin.verify'])->group(function (){
// 处理get请求, 验证token, 使用authToken处理
Route::get('accept', 'Auth\WeixinController@authToken');
// 微信服务器发来的post消息, 使用acceptMessage方法处理
Route::post('accept', 'Auth\WeixinController@acceptMessage');
});
中间件weixin.verify, 用于验证消息的确来自微信服务器
app/Http/Middleware/VerifyWeixin.php
namespace App\Http\Middleware;
use Closure;
use Log;
class VerifyWeixin
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
// 获取到微信请求里包含的几项内容
Log::alert($request->all());
$signature = $request->input('signature');
$timestamp = $request->input('timestamp');
$nonce = $request->input('nonce');
// 微信服务器配置中填写的token, 此处应该加入到配置文件中
$token = 'wodetoken';
// 加工出自己的 signature
$our_signature = array($token, $timestamp, $nonce);
sort($our_signature, SORT_STRING);
$our_signature = implode($our_signature);
$our_signature = sha1($our_signature);
Log::alert($our_signature);
// 用自己的 signature 去跟请求里的 signature 对比
if ($our_signature != $signature) {
return fasle;
}
return $next($request);
}
}
注册中间件
app/Http/Kernel.php
protected $routeMiddleware = [
'weixin.verify' => \App\Http\Middleware\VerifyWeixin::class,
];
控制器逻辑
app/Http/Controllers/Auth/WeixinController.php
/**
* 认真编码 快乐生活
* User: helloJiu
* Date: 2018/11/27
* Time: 13:16
*/
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class WeixinController extends Controller
{
// 通过中间件后, 直接将echostr返回, token验证通过
public function authToken(Request $request)
{
return $request->input('echostr');
}
}
重新提交, token完成验证
验证完全可以在public目录下创建一个php文件去实现该功能, 但是后续的接受微信消息, 如订阅, 扫描, 输入事件等, 也需要使用中间件验证是否是微信服务器发来的请求
3. 启用服务器配置
image.png
这样公众号收到消息后, 微信服务器就会通过post的方式推送到我们自己服务器的accept路由下, 使用Auth\WeixinController@acceptMessage去处理
acceptMessage方法后续编写
微信公纵平台基本配置php_PHP实现微信扫码登陆(三)--微信公众平台配置相关推荐
- 集成微信支付的代码。兼容小程序,扫码,app,公众号。h5 支付 ,以及 服务商提现...
/*** 因为微信总是很多个商户号很多和appid.很多个密钥文件,所以全部改成手动传值的方式,就可以支持多商户调用** @param appId 商户的appid* @param mchId 商 ...
- 微信支付(扫码支付)微信公众平台开发教程(6)
简介 Senparc.Weixin SDK 是由盛派网络(Senparc)团队自主研发的针对微信各模块的 开发套(C#SDK), 已全面支持微信公众号.微信支付.企业号.开放平台.JSSDK.摇一摇周 ...
- 微信公众平台使用JSSDK网页调起扫码并获取扫码数据(PHP)
微信公众平台使用JSSDK网页调起扫码并获取扫码数据 初学者,部分css样式在网上扒下来的,功能实现了,代码很糙,非常糙,望海涵,也希望大神多指导. QQ:961052877,有问题大家一起交流.可以 ...
- java实现PC网站实现微信扫码登陆
近期,开发一个项目要求PC网站可以进行扫码登陆. 1.前期工作 需要先在微信开放平台进行注册(https://open.weixin.qq.com/),并认证一个网站应用. 点击查看按钮,我们需要记录 ...
- 第六天 黑马十次方 用户注册、用户登陆掌握js-cookie、微信扫码登陆、nuxt嵌套路由
学习目标: ** 完成用户注册功能 完成用户登陆功能,掌握js-cookie的使用 完成微信扫码登陆的功能 完成用户中心嵌套布局,掌握nuxt嵌套路由的使用 ** 1 用户注册 1.1 页面构建 创建 ...
- 提问:微信网页授权到第三方调用错误、调用微信公众号扫码登陆错误、微信SCOP权限错误或没有权限
总结: 调用微信扫码,但是微信返回提示SCOP错误,我的微信公众号认证了,也把对应的域名填写了,代码上填写的snsapi的路径是填写在对用网页授权域名下的路径. 错误原因: 应该是微信公众号上的配置错 ...
- 利用临时二维码实现在电脑浏览器上的微信扫码登陆功能 - EasyWeChat版
2019独角兽企业重金招聘Python工程师标准>>> 这个方法最开始用在还没有"微信开放平台"的时候,现在也有不少网站在用,简单说就是生成一个临时二维码放到服务 ...
- JAVA微信扫码支付及微信App支付开发(模式二)完整功能实现
一,准备工作 事前申请一个商家版的微信公众号(目前微信支付只有商家版公众号可开通),然后开通微信支付功能,并做相应的配置. 申请开通微信公众号和开通微信支付需要等待审核,一般都5个工作日左右.开通成功 ...
- 【附源码】Java计算机毕业设计扫码点餐微信小程序(程序+LW+部署)
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
最新文章
- 一道让你拍案叫绝的算法题
- 这几家公司有个梦想:开发AI操作系统,让外行也成为人工智能大师
- 绘制分类界面以及性能曲面中的meshgrid函数
- Wine 1.0 RC2
- Linux下对网络进行配置nmcli、nmtui
- jsdiff 比较文本内容差异
- C++笔记-初步窥探全局函数在Debug、Release的地址
- 输入框禁止输入emoji标签
- 2012 Multi-University Training Contest 2
- c语言编程变色,【图片】(原创)用纯C变了个变色输出字符的程序。。。【c语言吧】_百度贴吧...
- ubuntu安装之后需要做什么
- unity3D 最全资源合集分享
- 深度森林:常见Warning及解决方案
- 小米手环如何连接苹果手机
- 解决Visio和office365安装兼容问题
- openGauss数据库安全指导手册
- 河钢唐钢微尔云计算中心对外签订首个合同
- 想学IT的必看!黑马培训javaee
- Mac Karabiner 设置
- IDEA文档注释(教程+模板)
热门文章
- Android支持多行文本省略Ellipsize
- 关于ellipsize属性使用的一些细节
- 胶水防霉剂能预防贴合材料发霉
- [附源码]计算机毕业设计JAVA养老院管理系统
- 图的拓扑排序(动图)
- XMind 8 破解补丁 XMindCrack.jar注册机激活教程
- (C语言)写一个用矩形法求定积分的通用函数, 分别求∫sin(x)dx, ∫cos(x)dx ,∫e^xdx
- class.getClassLoader().getResource(xxx)是什么意思啊?最后这个xxx和这个类有什么关系?...
- 【医疗人工智能】胃肠内窥镜计算机视觉和机器学习调查
- 视频号种草7种玩法,视频号运营人必备!