标签分类
技术文章
当前位置:主页 > 计算机编程 > php > php微信公众平台中验证步骤

php实现微信公众平台中验证步骤功能

  • 发布时间:
  • 作者:码农之家原创
  • 点击:195

php微信公众平台中验证步骤

这篇文章主要知识点是关于php,微信公众平台,验证,php微信公众平台中验证步骤,微信小程序 消息推送php服务器验证实例详解 的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

PHP7内核剖析
PHP7内核剖析原书影印版
  • 类型:PHP7大小:5.6 MB格式:PDF出版:电子工业出版社作者:秦朋
立即下载
PHP开发实例大全:基础卷
  • 类型:PHP开发大小:232 MB格式:PDF出版:清华大学出版社作者:软件开发技术联盟
立即下载

更多相关的学习资源可以参阅 程序设计电子书PHP电子书PHP视频、等栏目。

本文实例讲述了php版微信公众平台开发之验证步骤。分享给大家供大家参考,具体如下:

微信公众平台开发我们现在做得比较多了,这里给各位介绍的是一个入门级别的微信公众平台验证基础知识了,有兴趣的和小编来看看。

开发微信的时候 需要验证一下,在官方开发者中心哪里有可以下源代码,登录到 公众帐号后 看到左边的最下角有一个开发者中心点击,然后填写上你相对应的 Token 和 url 然后就可以验证成功的话就可以开发了.

下载微信php验证源代码在 开发者中心 - 开发者文档 - 接口消息 - 验证消息真实 - 拉到最下面就php演示代码.

下载好后代码如下:

<?php
/**
 * wechat php test
 * update time: 20141008
 */
//define your token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();
class wechatCallbackapiTest
{
 public function valid()
 {
  $echoStr = $_GET["echostr"];
  //valid signature , option
  if($this->checkSignature()){
  echo $echoStr;
  exit;
  }
 }
 public function responseMsg()
 {
 //get post data, May be due to the different environments
 $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
  //extract post data
 if (!emptyempty($postStr)){
    $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
    $fromUsername = $postObj->FromUserName;
    $toUsername = $postObj->ToUserName;
    $keyword = trim($postObj->Content);
    $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(!emptyempty( $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;
  }
 }
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;
}
}
}
?>

其中:TOKEN 修改为你自己想要的 然后在 开发者中心也要写一样的,在验证的过程中 $wechatObj->valid(); 这段代码不能去除这个是验证,验证成功后 我们就可以把 这段 $wechatObj->valid(); 这个注释掉了,然后使用 $wechatObj->responseMsg(); 来进行测试

注意:在开发的时候需要把 $wechatObj->valid(); 给注释掉,不然在手机测试的时候 会没有显示什么.

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

微信小程序 消息推送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(消息加密密钥):(随机生成,自己保存就好了,这个加解密才用)

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

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

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

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

以上就是本次给大家分享的全部知识点内容总结,大家还可以在下方相关文章里找到儿童python编程入门书籍推、 解决axios.interceptors.respon、 vue项目中使用md5加密以及、 等php文章进一步学习,感谢大家的阅读和支持。

上一篇:php实现微信中图片回复功能

下一篇:php从数据库中读取特定的行的方法

展开 +

收起 -

学习笔记
网友NO.818258

PHP实现的微信公众号及网站微信扫码登录功能详解

178 PHP实现的微信公众号扫码模拟登录功能示例 本文实例讲述了PHP实现的微信公众号扫码模拟登录功能。分享给大家供大家参考,具体如下: PHP微信公众号扫码模拟登录功能 功能只是将:https://github.com/huanz/wechat-mp-hack 改成PHP实现罢了. 之前有个休闲豆每日晨报订阅号每天定时群发消息,去年微信突然要求一定要扫码授权才能登录,FK,然后就放弃了,前几天看到早有人使用程序扫码登录,获取token,cookie自动群发了,闲着也是闲着,就将js改成php实现了登录功能. 主要流程如下 1,先访问 https://mp.weixin.qq.com/ ,模拟登录,进入二维码页面 2,带着返回的cookie下载二维码.程序后台一直while循环,等待扫描消息. 3,打开下载的二维码,微信扫码,登录成功,获取token和cookie,然后后面就可以自由发挥了. 供上代码. class WeiSendAuto{ //--------------------------------------------------------LOGIN START private $_apis = [ host = https://mp.weixin.qq.com, login = https://mp.weixin.qq.com/cgi-bin/bizlogin?action=startlogin, qrcode = https://mp.weixin.qq.com/cgi-bin/loginqrcode?action=getqrcodem=4300, loginqrcode = https://mp.weixin.qq.com/cgi-bin/loginqrcode?action=asktoken=lang=zh_CNf=jsonajax=1, loginask = https://mp.weixin.qq.com/cgi-bin/loginqrcode?action=asktoken=lang=zh_CNf=jsonajax=1random=, loginauth = https://mp.weixin.qq.com/cgi-bin/loginauth?action=asktoken=lang=zh_CNf=jsonajax=1, bizlogin =……

网友NO.168032

php使用CURL模拟GET与POST向微信接口提交及获取数据的方法

本文实例讲述了php使用CURL模拟GET与POST向微信接口提交及获取数据的方法。分享给大家供大家参考,具体如下: php CURL函数可以模仿用户进行一些操作,如我们可以模仿用户提交数据也可以模仿用户进行网站访问了,下面我们来介绍利用CURL模拟进行微信接口的GET与POST例子,例子非常的简单就两个: Get提交获取数据 /*** @desc 获取access_token* @return String access_token*/function getAccessToken(){ $AppId = '1232assad13213123'; $AppSecret = '2312312321adss3123213'; $getUrl = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credentialsecret='.$AppSecret; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $getUrl); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURL_SSLVERSION_SSL, 2); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); $data = curl_exec($ch); $response = json_decode($data); return $response-access_token;} post提交获取数据 /*** @desc 实现天气内容回复*/public function testWeixin(){$access_token = $this-getAccessToken();$customMessageSendUrl = 'https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token='.$access_token;$description = '今天天气的详细信息(从第三方获取)。';$url = 'http://weather.com/';$picurl = 'http://weather.com/';$postDataArr = array('touser'='OPENID','msgtype'='news','news'=array( 'articles'=array( 'title'=……

网友NO.239581

php微信开发之关键词回复功能

本文实例为大家分享了php微信开发之关键词回复的具体代码,供大家参考,具体内容如下 ?php/** * wechat php test *///define your tokendefine("TOKEN", "weixin");$wechatObj = new wechatCallbackapiTest();//$wechatObj-valid();$wechatObj-responseMsg();class wechatCallbackapiTest{ public function valid() { $echoStr = $_GET["echostr"]; //valid signature , option if($this-checkSignature()){ echo $echoStr; exit; } } public function responseMsg() { //get post data, May be due to the different environments $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //extract post data if (!empty($postStr)){ $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $fromUsername = $postObj-FromUserName; $toUsername = $postObj-ToUserName; $keyword = trim($postObj-Content); $time = time(); $textTpl = "xml ToUserName![CDATA[%s]]/ToUserName FromUserName![CDATA[%s]]/FromUserName CreateTime%s/CreateTime MsgType![CDATA[%s]]/MsgType Content![CDATA[%s]]/Content FuncFlag0/FuncFlag /xml"; if(!empty( $keyword )) { $msgType = "text"; if($keyword=="1"){ $contentStr = "qiphon";} if($keyword=="2"){ $contentStr = "最新资讯:《环境违法行为举报奖励办法》";} if($keyword=="3"){ $contentStr = "31离婚协议\n32租房合同\n33交通事故协议书";} $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); echo $resultStr; }else{ echo "Input something..."; } }else { echo ""; exit; } } private function checkSignature() { $……

网友NO.841110

PHP实现微信对账单处理

最近要做支付对账,即检查第三方支付与数据库中账单是否一一对应,涉及到微信对账单的处理,成功时,微信账单接口返回数据以文本表格的方式返回,第一行为表头,后面各行为对应的字段内容,字段内容跟查询订单或退款结果一致,具体字段说明可查阅相应接口。 Ps:至于如何调用微信接口下载对账单,在微信的官方SDK包中就有现成的方法,直接调用即可。注意对账单接口一次只能查询一天的数据。代码大致如下: // 引入微信sdk文件require_once APP_DIR . '/ome/lib/wxpay/lib/WxPay.Api.php';require_once APP_DIR . '/ome/lib/wxpay/log.php'; // 实列化下载对账单对象$input = new WxPayDownloadBill();// 对账单日期$input-SetBill_date(date("Ymd", strtotime("-1 day")));// 对账单类型$input-SetBill_type('ALL');// 获取账单信息$downloadBillResult = WxPayApi::downloadBill($input); 打印$downloadBillResult就会发现他是一个数据文本(string),本文程序需要实现的功能就是从这个字符串从提取每一笔订单中的有效信息,参考代码如下: /** * 微信对账单数据处理 * @param $response 对账单数据 * @return array 返回结果 */public function deal_WeChat_response($response){ $result = array(); $response = str_replace(","," ",$response); $response = explode(PHP_EOL, $response); foreach ($response as $key=$val){ if(strpos($val, '`') !== false){ $data = explode('`', $val); array……

<
1
>

Copyright 2018-2019 xz577.com 码农之家

版权责任说明