首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

php微信token验证代码

在微信公众平台开发中,Token验证是确保请求来自微信服务器的重要步骤。以下是一个使用PHP实现的微信Token验证示例代码:

步骤概述

  1. 配置Token:在微信公众平台后台设置一个Token(例如YOUR_TOKEN)。
  2. 接收微信服务器请求:通过PHP脚本接收微信服务器发送的请求。
  3. 验证签名:根据微信提供的签名算法验证请求的合法性。
  4. 响应验证结果:根据验证结果返回相应的响应给微信服务器。

示例代码

代码语言:javascript
复制
<?php
/**
 * 微信Token验证
 */

// 微信公众平台配置的Token
define("TOKEN", "YOUR_TOKEN");

// 获取微信服务器发送的参数
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$echostr = $_GET["echostr"];

// 将TOKEN、timestamp、nonce三个参数进行字典序排序
$tempArr = array($TOKEN, $timestamp, $nonce);
sort($tempArr, SORT_STRING);

// 将排序后的参数拼接成一个字符串
$tempStr = implode($tempArr);

// 使用SHA1算法生成签名
$generatedSignature = sha1($tempStr);

// 验证签名是否匹配
if ($generatedSignature === $signature) {
    // 签名验证通过,返回echostr参数内容
    echo $echostr;
} else {
    // 签名验证失败,返回空或其他错误信息
    echo "";
}
?>

详细说明

  1. 定义Token: define("TOKEN", "YOUR_TOKEN"); 将YOUR_TOKEN替换为在微信公众平台设置的Token。
  2. 获取请求参数: 微信服务器在验证时会发送四个参数:
    • signature:微信加密签名
    • timestamp:时间戳
    • nonce:随机数
    • echostr:随机字符串
  3. 字典序排序并拼接: 将TOKENtimestampnonce三个参数按字典序排序后拼接成一个字符串。 sort($tempArr, SORT_STRING); $tempStr = implode($tempArr);
  4. 生成签名并验证: 使用SHA1算法对拼接后的字符串进行加密,并与微信发送的signature进行比较。 $generatedSignature = sha1($tempStr); if ($generatedSignature === $signature) { echo $echostr; } else { echo ""; }
  5. 响应验证结果: 如果签名验证通过,返回微信发送的echostr参数内容;否则,返回空字符串或其他错误信息。

注意事项

  • 确保服务器时间与微信服务器时间同步,避免因时间差导致签名验证失败。
  • 确保PHP环境支持SHA1加密函数。
  • 在生产环境中,建议对输入参数进行严格的过滤和验证,防止安全漏洞。

通过以上步骤,您可以实现微信公众平台的Token验证,确保只有合法的请求能够访问您的服务器接口。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 微信公众号token验证

    本节来说一下微信公众号token验证问题,关于微信公众号token验证是微信开发前期的必要过程。主要是为了验证服务器是否属于你,也可以理解为你是否拥有使用此服务器的权限。...一、开发流程 接入微信公众平台开发,开发者需要按照如下步骤完成: 1、填写服务器配置 2、验证服务器地址的有效性 3、依据接口文档实现业务逻辑 二、说明 关于此流程微信开发文档介绍的很清晰,在此不做演示...三、示例代码 服务器token验证码代码(Thinkphp5.0)如下: php /**  * Created by PhpStorm.... signature nonce token timestamp echostr         $nonce     = input('get.nonce');         $token     ...echo $echostr;             exit;         }     } } 四、注意事项 1、文件不能含有bom头; 2、服务器校验路径一定要准确; 3、校验是如果确定路径及代码无错

    1.9K30

    微信公众号服务器验证Token的完整步骤

    服务器验证Token验证分为以下及步骤 一,在微信公众号平台上设置 1.1打开微信公众号平台 1.2打开”开发“中的 1.3点击基本配置页面里的修改配置 1.4输入URL: url填写...Token:自主设置,这个token与公众平台wiki中常提的access_token不是一回事。这个token只用于验证开发者服务器。...(注:Token可以随便写 写完记住留着备用) EncodingAESKey:点击随机生成 现在选择提交肯定是验证token失败,因为还需要完成代码逻辑。...(); } } } /// /// 验证微信签名 /// public static bool CheckSignature...点击确定就行了 3.点击应用程序池 4.将刚添加的网站端口从2.0改成4.0 保存即可 再点你添加的网站 击浏览网站 将会出现”服务器错误页面“ 出现这个页面就算已经部署完毕 四,打开微信公众号平台

    9.6K40

    PHP项目微信提现功能代码详解

    Application实例化完成之后, 修改某一个options的值, * 比如服务商+子商户支付回调场景, 所有子商户订单支付信息都是通过同一个服务商的$option 配置进来的, * 当oauth在微信端验证完成之后...php return [     /**      * 账号基本信息,请从微信公众平台/开放平台获取      */     'app_id'  => 'your-app-id',         //...',     ],     /**      * 微信支付      */     'payment' => [         'merchant_id'        => 'your-mch-id...// ...     ],]; $app = new Application($options); $merchantPay = $app->merchant_pay; 企业付款 企业付款使用的余额跟微信支付的收款并非同一账户...$partnerTradeNo = "商户系统内部的订单号(partner_trade_no)"; $merchantPay->query($partnerTradeNo); 知识付费系统的微信功能基本类

    1.2K30
    领券