微信小程序 消息推送php服务器验证实例详解


Posted in PHP onMarch 30, 2017

微信小程序 消息推送php服务器验证实例详解

微信文档(靠下有个“接入指引”):https://mp.weixin.qq.com/debug/wxadoc/dev/api/custommsg/callback_help.html

设置页面(“设置”>>“开发设置”):

https://mp.weixin.qq.com/wxopen/initprofile?action=home&lang=zh_CN

1.设置服务器域名

比如:https://hosts.com

注意http和https协议的不同。

2.设置消息推送

2.1 在你的服务器里添加服务器接口test.php,test.php接口内容主要是通过token验证消息是否为微信发来的,代码参照官方的例子:

define("TOKEN","xxxxx");/ 后台填写的token
$wechatObj = new wechatAPI();
$wechatObj->isValid();
class wechatAPI
{
public function isValid()//验证微信接口,如果确认是微信就返回它传来的echostr参数
{
 $echoStr = $_GET["echostr"];
 if ($this->checkSignature()) {
 echo $echoStr;
 exit;
 }
}
private function checkSignature() //官方的验证函数
{
 $signature = $_GET["signature"];
 $timestamp = $_GET["timestamp"];
 $nonce = $_GET["nonce"];
 $token = TOKEN;
 $tmpArr = array($token, $timestamp, $nonce);
 sort($tmpArr, SORT_STRING);
 $tmpStr = implode( $tmpArr );
 $tmpStr = sha1( $tmpStr );
 if( $tmpStr == $signature ){
 return true;
 }else{
 return false;
 }
}
};

2.2 设置小程序后台消息推送相关信息

URL(服务器地址):https://hosts.com/xx/test.php

Token: 任意符合规范的字符串,如上面定义的"xxxxx"

EncodingAESKey(消息加密密钥):(随机生成,自己保存就好了,这个加解密才用)

消息加密方式:暂时选择明文,不用去考虑加密解密的问题。

数据格式:根据需求选择。

提交,如果没有问题就会成功了。(如果有问题你可以用假的数据通过浏览器测试)

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
如何分别全角和半角以避免乱码
Oct 09 PHP
PHP在字符串中查找指定字符串并删除的代码
Oct 02 PHP
PHP 获取客户端真实IP地址多种方法小结
May 15 PHP
php写的简易聊天室代码
Jun 04 PHP
php引用地址改变变量值的问题
Mar 23 PHP
php的闭包(Closure)匿名函数初探
Feb 14 PHP
CI框架常用方法小结
May 17 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
Jun 10 PHP
PHP strripos函数用法总结
Feb 11 PHP
PHP正则判断一个变量是否为正整数的方法
Feb 27 PHP
Yii框架ACF(accessController)简单权限控制操作示例
Apr 26 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
Apr 23 PHP
Yii2使用$this->context获取当前的Module、Controller(控制器)、Action等
Mar 29 #PHP
PHP的反射机制实例详解
Mar 29 #PHP
php面向对象之反射功能与用法分析
Mar 29 #PHP
PHP命名空间namespace的定义方法详解
Mar 29 #PHP
php mysql_list_dbs()函数用法示例
Mar 29 #PHP
php json相关函数用法示例
Mar 28 #PHP
php使用PDO下exec()函数查询执行后受影响行数的方法
Mar 28 #PHP
You might like
PHP 存储文本换行实现方法
2010/01/05 PHP
Zend Framework中的简单工厂模式 图文
2012/07/10 PHP
PHP文件下载实例代码浅析
2016/08/17 PHP
使用Yii2实现主从数据库设置
2016/11/20 PHP
Laravel框架基于ajax和layer.js实现无刷新删除功能示例
2019/01/17 PHP
javascript比较两个日期相差天数的方法
2015/07/24 Javascript
创建自己的jquery表格插件
2015/11/25 Javascript
Javascript将JSON日期格式化
2016/08/23 Javascript
基于JQuery实现的跑马灯效果(文字无缝向上翻动)
2016/12/02 Javascript
使用bootstraptable插件实现表格记录的查询、分页、排序操作
2017/08/06 Javascript
JS实现判断图片是否加载完成的方法分析
2018/07/31 Javascript
解决vue+ element ui 表单验证有值但验证失败问题
2020/01/16 Javascript
python使用xmlrpclib模块实现对百度google的ping功能
2015/06/02 Python
python 搜索大文件的实例代码
2019/07/08 Python
python 同时读取多个文件的例子
2019/07/16 Python
Django工程的分层结构详解
2019/07/18 Python
简单介绍python封装的基本知识
2019/08/10 Python
Python 合并多个TXT文件并统计词频的实现
2019/08/23 Python
Python timer定时器两种常用方法解析
2020/01/20 Python
python实现猜拳游戏
2020/03/04 Python
python读取hdfs并返回dataframe教程
2020/06/05 Python
html5 div布局与table布局详解
2016/11/16 HTML / CSS
加拿大领先的优质厨具产品在线购物网站:Golda’s Kitchen
2017/11/17 全球购物
存储过程和函数的区别
2013/05/28 面试题
电子商务专员岗位职责
2013/12/11 职场文书
大学毕业生个人自荐信范文
2014/01/08 职场文书
大学四年个人自我小结
2014/03/05 职场文书
教师党员岗位承诺书
2014/05/29 职场文书
党旗在我心中演讲稿
2014/09/15 职场文书
2014年销售内勤工作总结
2014/12/01 职场文书
招标保密承诺书
2015/01/20 职场文书
2016秋季校长开学典礼致辞
2015/11/26 职场文书
创业计划书之香辣虾火锅
2019/09/23 职场文书
Python破解极验滑动验证码详细步骤
2021/05/21 Python
python通过函数名调用函数的几种方法总结
2021/06/07 Python
Mysql中有关Datetime和Timestamp的使用总结
2021/12/06 MySQL