PHP微信定制开发-接口配置校验

PHP微信开发-链接微信接口配置 微信接口配置需要用到http开头的域名,然后将自己的api.php路径填写正确 如下 下面是api.php文件的代码 <?php /** * wechat php test */ include "WeChat_message.php"; header('Content-type:text'); //define your token //定义TOKEN密钥 define("T... 阅读详情

纵观微信公众平台开发的各类书籍,基本上微信定制开发都是从微信消息开始的,主要是服务器被动回复消息这块为主,这个模块也算微信的核心,这次将以验证微信消息来自微信服务器为例,分享下我的代码

一  入口的切入点

我们知道做微信开发需要处理来自用户、微信服务器的各类的消息,查阅微信文档可总结出的规律是 验证消息来自微信服务器为GET请求,其他微信消息的推送是POST请求 , 根据这一规律我们就可以将校验和消息推送统一进行处理

二 代码的实现

1 php可以通过$_SERVER['REQUEST_METHOD']获取请求的类型

2 按照流程程序需要校验signature的有效性并返回正确signature

3 计算signature,php的步骤是  数组排序、把数组转成字符串、sha1计算出signature(非常重要)

对于第三部php还算比较简单,但是像java的话就比较复杂,这里先贴出php的算法

function checkSignature()
    {
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];

        $tmpArr = array(
            TOKEN,
            $timestamp,
            $nonce
        );
        sort($tmpArr, SORT_STRING);
        $tmpStr = implode($tmpArr);
        $tmpStr = sha1($tmpStr);

        if ($tmpStr) {
            return $tmpStr;
        } else {
            return "";
        }
    }

开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数如下表所示:

参数描述
signature微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
timestamp时间戳
nonce随机数
echostr随机字符串

这个是从微信开发文档上摘抄过来的,给大家做参考,详细的可查阅微信开发文档

function isValid()
    {
        $signature = $_GET["signature"];
        if ($signature == $this->checkSignature()) {
            return true;
        } else {
            return false;
        }
    }

上述两个方法我写到了名为WeixinHandler的类里面,TOKEN是定义好的常量

define("TOKEN", "weixinCourse");


// 步骤
// 1 判断请求方法,get请求一般为消息验证,post为其他消息交互
// 2 验证signature是否正确(消息来自微信服务器)
$handler = new WeixinHandler();
$reqMethod = strtolower($_SERVER["REQUEST_METHOD"]);
if ("get" == $reqMethod && !empty($_GET["echostr"])) {
    if ($handler->isValid()) {
        $echostr = $_GET["echostr"];
        echo $echostr;
        exit();
    }
} else {
    //判断消息类型,返回"你发送的是xxx消息"
    $handler->responseMessage();
}

responseMessage用来处理各类的消息,因为这次主要是入门,这个方法下次的博客分享会给出来,到这里校验消息来自微信服务器的功能已经完成了,但是还是需要注意一下几点

1 填写的URL需要外网可以访问且越简单越好,不建议url为带参数的形式;可使用花生壳、ngrok等

2 Token必须和程序定义的保持一致

java的消息校验可参考这个,因为本人是搞java的,就忍不住多啰嗦一下

https://blog.youkuaiyun.com/lyq8479/article/details/8944988

PHP微信公众平台开发:配置、微信api接入验证 主要记录php微信公众号开发的基础和对于代码的理解,本篇基础涉及微信公众平台开发者基本配置,功能初始化,包含微信api接入验证 阅读详情

相关推荐

php网站对接小程序,简单几步 让你的WordPress网站对接微信小程序

近期将手上的一个WordPress做成了微信小程序,步骤也非常简单,借助jianbo大佬在GitHub开源的代码,即可轻松完成网站与小程序的对接。本篇文章对制作过程简单地做个教程,希望能给和我同样想搭建小程序的朋友一定帮助。准备工作Wordpress首先要完成一下准备工作:全站开启Https。微信小程序的强制要求,若不开启将无法在手机的微信里使用小程序。具体开启过程可以参考我的博客这篇文章Word...

weixin_39827304的博客 2792

ThinkPHP6(TP6) 微信接口 EasyWechat

PHP 微信对接

丶Melody 1712

微信公众平台消息接口校验与消息接口响应实例 - PHP技巧

通过正确地校验消息的签名,并根据消息类型进行相应的处理,我们可以与微信服务器进行安全、可靠的消息交互。在开发微信公众号时,我们经常需要与微信服务器进行消息的交互,包括接收用户的消息和回复消息。该函数会将Token、timestamp和nonce进行排序,并将它们拼接成一个字符串,然后对该字符串进行SHA1加密,最后与接收到的签名进行比对,以判断消息的有效性。解析后的XML数据中包含了消息的类型(MsgType),我们根据不同的消息类型进行相应的处理。在代码的主体部分,我们首先校验消息的有效性。

BUG?不存在的! 307

微信公众平台开发接口配置URL index.php和token,

最近在帮别人做个小项目,要用到微信公众平台,虽然以前也做过微信开发,但是没有深入的自己去搞一套微信开发的东西(也搞不了,那时候没能力,也弄不到微信公众号),最近开始搞,第一步就是配置微信基本配置(账号注册我就不赘述了)。 我们首先要启用服务器配置,并填写URL,token,AESKey,加密方式 那么URL怎么填写呢? 网上有很多种教程,最靠谱的一种是去新浪云注册个免费的PHP服务器,

qq_22362139的博客 6771

企业微信接口PHP开发实战代码详解

企业微信作为腾讯推出的企业级通讯与办公平台,提供了丰富的开放API接口,支持企业实现内部系统与企业微信的深度集成。开发者可通过调用这些API实现消息推送、用户管理、应用配置等功能。调用API前需完成身份认证,获取Access Token,并遵循企业微信的请求格式与签名机制。本章将深入讲解API调用的基本流程、认证方式与通用规则,为后续使用PHP进行接口开发奠定基础。// 自定义Token获取方式// 设置缓存时间略小于有效期});逻辑分析:通过Predis。

weixin_35045970的博客 1285

微信跳转系统设计与PHP实现

微信OAuth2.0授权流程主要分为两个阶段:用户授权与信息获取。整个流程涉及多个接口调用,包括构造授权链接、获取授权码(code)、使用code换取access_token,以及最终获取用户信息。开发者需根据业务需求选择不同的授权类型,如snsapi_base和snsapi_userinfo。通过PHP实现微信网页跳转逻辑,开发者需要精准构造跳转URL、处理用户授权回调,并确保与前端JavaScript的无缝交互。

weixin_36073714的博客 1080

【微信JS-SDK集成全攻略】:PHP开发者不可错过的8个关键步骤

掌握微信JS-SDK集成难题?本php微信开发教程详解8个关键步骤,覆盖授权配置、接口调用与常见问题,助PHP开发者快速实现分享、拍照、支付等功能。方法实用,适配性强,值得收藏。

LiteCode的博客 330

PHP后端快速接入微信小程序:安全解密手机号+自动获取openid双功能实现

一套开箱即用的PHP代码包,专为微信小程序后端对接设计。包含WechatController.class.php和WxBizDataCrypt.php两个核心文件,前者通过小程序传来的code调用微信接口换取用户唯一标识openid,后者基于AES-128-CBC算法对getPhoneNumber接口返回的encryptedData进行标准解密,还原真实手机号。所有加解密逻辑严格遵循微信官方文档规范,不依赖额外PHP扩展,兼容主流PHP版本(7.2+)。内置PKCS#7填充校验、session_key生成与

code8的博客 227

手把手教你微信第三方平台开发

本文适合想接入第三方平台开发的同学,通过真实经验大致讲解一下相关业务,建议收藏以备不时之需。 一、什么是微信开放平台 微信开放平台地址 微信开发平台实际上就是给微信外部人员提供微信能力的平台,我们可以在这个平台创建相关的应用,管理对应的认证、授权信息,然后通过开放接口对接微信提供的种种能力。 其中,账号的申请需要公司主体的相关信息。 二、如何接入微信第三方平台的开发 2.1 注册开放平台账号 注册账号需要邮箱(这个邮箱贼恶心,不能是微信绑定过的,也不能是公众号平台绑定的,小程序平台绑定的也不行),.

MClink的博客 9893

PHP开发的在线名片定制平台源码,含3000+商用模板与完整后台管理功能

直接部署就能用的PHP名片设计系统,用户可在线挑模板、改文字、换头像、调颜色、预览效果并下单。内置3000多个可商用名片模板,覆盖各行各业,还附带2000+真实设计案例供参考借鉴。前端界面简洁易操作,支持拖拽式编辑和实时预览;后端提供订单管理、模板增删改查、用户信息维护、内容配置等全套功能。部署环境要求低,兼容主流LAMP或WAMP组合,解压后放进Web根目录,修改数据库连接参数即可运行。后台入口为/Dimanage,初始账号Admin,密码Admin888,登录后可统一管理模板库、客户订单、注册用户及网站

html8的博客 202

滤波算法-呼吸心跳信号检测方法(四)

呼吸心跳信号检测系列文章:信号滤波处理

yjh_2019的博客 6269

php企业微信回调url校验失败,企业微信第三方服务商回调URL无法通过验证

我用的环境PHP 版本:7.0.12overtrue/wechat 版本:4.0.36是否使用了框架?框架名称:thinkphp5.0.20问题及现象模块: 企业微信第三方服务商创建本地应用时需填入"数据回调URL"和"指令回调URL",并通过通过检验如果按文档配置好后, 回调验证无法通过.按文档配置, 使用开发者工具进行调试, 能正确返回明文.当suite_id的值改为corp_id的值,则检验...

weixin_42160424的博客 2062

adas硬件_ADAS智能辅助驾驶系统硬件在环(HIL)测试之硬件介绍

这篇主要分享的是ADAS融合系统的HIL测试系统的硬件结构及其作用,其主要包括上位机、机柜、雷达模拟器系统、雷达暗箱系统以及视频暗箱。 上位机 上位机主要运行HIL测试系统的相关软件,测试人员所有的前期准备工作与测试操作均在上面进行,并监控测试结果,其通过网口实现与NI实时机的通信,上位机将VeriStand项目工程下载至NI实时机运行。机柜 机柜主要由可编程电源...

weixin_39580748的博客 2242

nodejs+php+vue五官科鼻炎在线预约挂号评价系统微信小程序的设计与开发

HDFS放宽了POSIX的要求,可以以流的形式访问文件系统中的数据。2、同时增加文字触发提醒,设置提醒语,有相同字段的数据,会触发弹框提醒,例如设置状态提醒:特急/加急/一般 增加自定义提醒语(如:库存不足,请补货)8、AI续写、AI优化、AI校对、AI翻译:新增AI接口,编辑器接入AI,可以实现AI续写、AI优化、AI校对、AI翻译,可以帮你实现自动化,ai帮你完成文档。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。

bishe288的博客 426

LabVIEW+数据库应用系列保姆级教程,第一篇数据库连接

目录LabVIEW连接数据库的方法连接MySQL连接Oracle,SQL Server,Access等 LabVIEW连接数据库的方法 1、创建udl(Universal Data Link)是通用数据连接文件。界面操作,简单快捷。 2、编写连接字符串。需要熟悉连接字符串的结构,容易出错。 3、其他… 本教程教你使用第1种方法,也是最简单、最常用的方法。 连接MySQL 1、在MySQL Installer内安装MySQL Connector/ODBC,建议安装32位(X86),如下图: 2、创建ODBC

wwplh5520370的博客 1万+

深入解析FDTD Script中的farfieldpolar3d命令:复电场计算与应用

本文深入解析了FDTD仿真中`farfieldpolar3d`命令的核心功能与应用。作为`farfield3d`的复数版本,该命令能计算并返回球坐标系下的复电场矢量,完整保留振幅与相位信息,为光学天线设计、近远场变换及偏振态分析等高级应用提供了关键数据基础。

grafana6viz的博客 286

基于小程序开发的私人定制私家衣橱衣柜系统(Vue-java-Python-Django PHP+hbuiderx)

MySQL数据库、Node.js、Django、Spring Boot、thinkphp ssm语言、vue等相关技术的发展已经非常成熟了,服务层还使用 Node.js、Django、Spring Boot、thinkphp ssm技术,大大降低了开发本系统的难度,并且使得编程代码易于理解,方便修改与完善,方便测试人员和维护人员对系统的测试与维护,为系统提供了必要的技术支持。随着微信小程序的出现,以其无需安装、使用便捷、庞大用户群、开发成本低等诸多优势,迅速吸引大量的用户,占据软件市场。

QQ188083800的博客 859

MTK Android 12 Clone Project 克隆项目

本文介绍了如何使用MTK Android 12 Clone Project 克隆一个新的项目。通过使用绝对路径执行Perl脚本,并根据需要选择升级或降级位数,可以成功地生成一个新的项目并进行编译。希望本文对xdm有所帮助。

我其实什么都不会 942

微信小程序PHP校园学生生活朋友圈分享系统

2、同时增加文字触发提醒,设置提醒语,有相同字段的数据,会触发弹框提醒,例如设置状态提醒:特急/加急/一般 增加自定义提醒语(如:库存不足,请补货)秒速登进去,特别省事。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。AI续写、AI优化、AI校对、AI翻译:新增AI接口,编辑器接入AI,可以实现AI续写、AI优化、AI校对、AI翻译,可以帮你实现自动化,ai帮你完成文档。此信息只能使用查看,可以登录进去操作,就是类似于真机调试,

QQ_1963288475的博客 405

LVGL在单色屏上运行

本文主要讲述LVGL在单色屏应用中的实现思路,并已验证通过。网上关于lvgl移植的文章有很多了,本文不加以赘述。

weixin_43278295的博客 4462

C 语言多文件编程 : 大型程序的组织与管理

本文介绍了C语言多文件编程的核心概念与实践方法。主要内容包括:1. 多文件编程的必要性:解决单文件编程在大型项目中的维护和协作问题;2. 文件组织方式:头文件(.h)负责声明接口,源文件(.c)实现具体功能;3. 编译链接过程:分阶段编译和链接多个源文件;4. 头文件设计原则:包含接口声明、使用保护机制、保持自包含性;5. 模块化实践:通过示例展示学生信息管理系统的模块划分;6. 构建工具:介绍Makefile的编写和使用方法。文章还提供了创建静态库和动态库的指导,并强调了模块化设计、信息隐藏等软件工程原则

2503_91057718的博客 1947

自助定制旅游系统 微信小程序SpringBoot-flask-Django-ssm-php-Node.js

从软件方面看,MySQL数据库、Node.js、Django、Spring Boot、thinkphp ssm语言、vue等相关技术的发展已经非常成熟了,服务层还使用 Node.js、Django、Spring Boot、thinkphp ssm技术,大大降低了开发本系统的难度,并且使得编程代码易于理解,方便修改与完善,方便测试人员和维护人员对系统的测试与维护,为系统提供了必要的技术支持。通过观察者模式,可以实现松耦合的模块间通信,当事件发生时,只需要通知相关的观察者模块,而不需要显式地编写耦合的代码。

QQ3166678367的博客 1179

D457深度相机调试记录(max96712+max9295A)

使用max96712解串器解4路D457相机。采集深度相机Depth和RGB流。

navy2015_163的博客 1267

仅剩3天!PHP微信模板消息迁移订阅消息倒计时解决方案

解决PHP微信模板消息迁移难题,提供完整订阅消息升级方案。涵盖适用场景、接口调整方法与权限配置技巧,助力开发者高效对接新规则。结合实战案例讲解php微信开发教程,平稳过渡不掉坑,值得收藏。

FuncInk的博客 453

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

微信小程序云开发使用教程

微信小程序云开发是腾讯云提供的免服务器后端解决方案,包含云数据库、云存储、云函数等核心功能。开发者无需搭建服务器即可实现数据存储、文件管理和业务逻辑处理。本文详细介绍了云开发的环境搭建、数据库操作(增删查改)、文件上传下载、云函数编写等实战应用,并提供了完整代码示例。通过云开发,开发者可以降低运维成本,专注于业务逻辑开发,快速构建高质量小程序。文章还包含安全建议和常见问题解答,帮助开发者高效使用云开发服务。

程序员陆通 2223

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

乡镇外卖跑腿小程序开发实战:基于PHP的乡镇同城O2O

本文介绍了基于PHP的乡镇O2O外卖跑腿系统开发方案。系统采用ThinkPHP6.x+微信小程序的技术架构,集成腾讯地图和微信支付。重点设计了用户认证、订单处理、智能配送等核心功能模块,并针对乡镇市场特点优化了商品分类。通过多层缓存、消息队列等技术解决了高并发难题,采用容器化部署确保系统稳定性。该方案为乡镇数字化服务提供了实用参考,帮助本地商家实现线上转型。

2509_93184100的博客 1252

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: php7实现http和https请求web服务-通用工具类
下一篇: PHP微信定制开发-消息的识别和消息工具类的封装
青蛙小王子
博客等级 码龄16年 239粉丝 311原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值