tp5微信公众号开发,申请公众号配置token验证

进入微信公众帐号测试号申请系统

申请测试账号https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

开发之前要申请微信接入,填写服务器配置,验证服务器地址的有效性。

必须拥有自己的服务器
在这里插入图片描述
因为我项目用的是tp5,用到了一系列诸如上传素材,关键字自动回复等功能,就以tp5为例说明。

公众号服务器配置URL:  http(https)://域名/www.qixiao.ltd/index.php/wxindex

token:这个随意字符,但是需要注意的是需要跟验证代码中的token保持一致。

代码必须提交到服务器上!!切记!!

tp5代码如下

路由
在这里插入图片描述
控制器
在这里插入图片描述
话不多说直接上代码:

<?php

namespace app\api\controller\index;

use app\common\controller\Api;
use think\Db;
use think\Config;
use think\Validate;
use think\Request;
// 允许跨域
header('Access-Control-Allow-Origin:*');//允许跨域
header("Content-type: text/html; charset=utf-8"); 
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
    header('Access-Control-Allow-Headers:x-requested-with,content-type,token');//浏览器页面ajax跨域请求会请求2次,第一次会发送OPTIONS预请求,不进行处理,直接exit返回,但因为下次发送真正的请求头部有带token,所以这里设置允许下次请求头带token否者下次请求无法成功
    exit("ok");
}
public function index(){
        $this->valid(); 
    }
 
    //微信验证
    public function valid(){ 
        $echoStr = $_GET["echostr"]; 
        if($this->checkSignature()){ 
         echo $echoStr; 
         exit; 
        } 
    }
    
    /** 扫码回调*/
    private function checkSignature()
    {
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];
        $token = Config::get('site.wxgzh_token');
        $tmpArr = array($token, $timestamp, $nonce);
        sort($tmpArr, SORT_STRING);
        $tmpStr = implode( $tmpArr );
        $tmpStr = sha1( $tmpStr );
        
        if( $tmpStr == $signature ){
            return true;
        }else{
            return false;
        }
    }

然后在微信公众号进行配置:
在这里插入图片描述点击提交,完事。

失败几点可能原因:1,填写的URL是否能访问到(测试方法,在wxtoken文件夹头部echo随机字符串,访问域名看能否正确输出)

2,公众平台填写的token跟代码文件define 的token是否一致

3,多提交几次,一般提交3-5次基本都会成功

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

于先生吖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值