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实现微信扫码登陆(三)--微信公众平台配置相关推荐

  1. 集成微信支付的代码。兼容小程序,扫码,app,公众号。h5 支付 ,以及 服务商提现...

      /*** 因为微信总是很多个商户号很多和appid.很多个密钥文件,所以全部改成手动传值的方式,就可以支持多商户调用** @param appId 商户的appid* @param mchId 商 ...

  2. 微信支付(扫码支付)微信公众平台开发教程(6)

    简介 Senparc.Weixin SDK 是由盛派网络(Senparc)团队自主研发的针对微信各模块的 开发套(C#SDK), 已全面支持微信公众号.微信支付.企业号.开放平台.JSSDK.摇一摇周 ...

  3. 微信公众平台使用JSSDK网页调起扫码并获取扫码数据(PHP)

    微信公众平台使用JSSDK网页调起扫码并获取扫码数据 初学者,部分css样式在网上扒下来的,功能实现了,代码很糙,非常糙,望海涵,也希望大神多指导. QQ:961052877,有问题大家一起交流.可以 ...

  4. java实现PC网站实现微信扫码登陆

    近期,开发一个项目要求PC网站可以进行扫码登陆. 1.前期工作 需要先在微信开放平台进行注册(https://open.weixin.qq.com/),并认证一个网站应用. 点击查看按钮,我们需要记录 ...

  5. 第六天 黑马十次方 用户注册、用户登陆掌握js-cookie、微信扫码登陆、nuxt嵌套路由

    学习目标: ** 完成用户注册功能 完成用户登陆功能,掌握js-cookie的使用 完成微信扫码登陆的功能 完成用户中心嵌套布局,掌握nuxt嵌套路由的使用 ** 1 用户注册 1.1 页面构建 创建 ...

  6. 提问:微信网页授权到第三方调用错误、调用微信公众号扫码登陆错误、微信SCOP权限错误或没有权限

    总结: 调用微信扫码,但是微信返回提示SCOP错误,我的微信公众号认证了,也把对应的域名填写了,代码上填写的snsapi的路径是填写在对用网页授权域名下的路径. 错误原因: 应该是微信公众号上的配置错 ...

  7. 利用临时二维码实现在电脑浏览器上的微信扫码登陆功能 - EasyWeChat版

    2019独角兽企业重金招聘Python工程师标准>>> 这个方法最开始用在还没有"微信开放平台"的时候,现在也有不少网站在用,简单说就是生成一个临时二维码放到服务 ...

  8. JAVA微信扫码支付及微信App支付开发(模式二)完整功能实现

    一,准备工作 事前申请一个商家版的微信公众号(目前微信支付只有商家版公众号可开通),然后开通微信支付功能,并做相应的配置. 申请开通微信公众号和开通微信支付需要等待审核,一般都5个工作日左右.开通成功 ...

  9. 【附源码】Java计算机毕业设计扫码点餐微信小程序(程序+LW+部署)

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

最新文章

  1. 一道让你拍案叫绝的算法题
  2. 这几家公司有个梦想:开发AI操作系统,让外行也成为人工智能大师
  3. 绘制分类界面以及性能曲面中的meshgrid函数
  4. Wine 1.0 RC2
  5. Linux下对网络进行配置nmcli、nmtui
  6. jsdiff 比较文本内容差异
  7. C++笔记-初步窥探全局函数在Debug、Release的地址
  8. 输入框禁止输入emoji标签
  9. 2012 Multi-University Training Contest 2
  10. c语言编程变色,【图片】(原创)用纯C变了个变色输出字符的程序。。。【c语言吧】_百度贴吧...
  11. ubuntu安装之后需要做什么
  12. unity3D 最全资源合集分享
  13. 深度森林:常见Warning及解决方案
  14. 小米手环如何连接苹果手机
  15. 解决Visio和office365安装兼容问题
  16. openGauss数据库安全指导手册
  17. 河钢唐钢微尔云计算中心对外签订首个合同
  18. 想学IT的必看!黑马培训javaee
  19. Mac Karabiner 设置
  20. IDEA文档注释(教程+模板)

热门文章

  1. Android支持多行文本省略Ellipsize
  2. 关于ellipsize属性使用的一些细节
  3. 胶水防霉剂能预防贴合材料发霉
  4. [附源码]计算机毕业设计JAVA养老院管理系统
  5. 图的拓扑排序(动图)
  6. XMind 8 破解补丁 XMindCrack.jar注册机激活教程
  7. (C语言)写一个用矩形法求定积分的通用函数, 分别求∫sin(x)dx, ∫cos(x)dx ,∫e^xdx
  8. class.getClassLoader().getResource(xxx)是什么意思啊?最后这个xxx和这个类有什么关系?...
  9. 【医疗人工智能】胃肠内窥镜计算机视觉和机器学习调查
  10. 视频号种草7种玩法,视频号运营人必备!