微信公众号开发(一)打通服务器与微信之间的通信

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 说来惭愧PHP做了这么久,好像就没有从头开发过一个微信公众号,这次刚好有机会从头接入开发一个完整的公众号,也不能说完整,但是这些微信的接口我基本上都试一试~看看大概是什么情况。首先:打通服务器与微信之间的通信。

说来惭愧PHP做了这么久,好像就没有从头开发过一个微信公众号,这次刚好有机会从头接入开发一个完整的公众号,也不能说完整,但是这些微信的接口我基本上都试一试~看看大概是什么情况。

首先:打通服务器与微信之间的通信。

我这里主要使用的框架是thinkphp5

首先,去百度上找一个微信公众号的类。这种资源很多,基本上找一个就行,下边我是用我找的类中的方法介绍,文末有资源可下载。我这里只贴部分这里需要使用到的代码。

Weixin.php

php

复制代码

/**
   * @name: 验证服务器地址有效性
   * @author: camellia
   * @date: 20200711
   * @email:805795955@qq.com
   * @param:  $TOKEN  string  签名字符串
   * @return: data  type  description
   */
  public function valid($TOKEN)
  {
    $res = $this->checkSignature($TOKEN);
    if($res)
    {
      $echostr = $_GET['echostr'];//随机的字符串
      return $echostr;
    }
    else
    {
      return "Error";
    }
  }
  /**
   * @name: 检查签名
   * @desc: 描述
   * @author: camellia
   * @date: 20200711
   * @email:805795955@qq.com
   * @param:  $TOKEN  string  签名字符串
   * @return: data  type  description
   */
  protected function checkSignature($TOKEN)
  {
    if(empty($_GET))
    {
      return false;
    }
    //一、接收微信服务器GET方式提交过来的4个参数数据
    $signature = $_GET['signature'];//微信加密签名
    $timestamp = $_GET['timestamp'];//时间戳
    $nonce = $_GET['nonce'];//随机数
    //二、加密/校验过程
    // 1. 将token、timestamp、nonce三个参数进行字典序排序;
    // bool sort ( array &$array [, int $sort_flags = SORT_REGULAR ] ) 对数组排序
    $tmpArr = array($TOKEN,$timestamp,$nonce);//将上面三个参数放到一个数组里面
    sort($tmpArr,SORT_STRING);
    // 2. 将三个参数字符串拼接成一个字符串进行sha1加密;
    $tmpStr = implode($tmpArr); //将数组转化成字符串
    $signatureStr = sha1($tmpStr);
    // 3. 开发者获得加密后的字符串与signature对比。
    if($signatureStr == $signature)
    {
      return true;
    }
    else
    {
      return false;
    }
  }

调用:

ini

复制代码

/**
     * 验证微信接口
     */
    public function checkSignature()
    {
        $TOKEN = 'es3b3t41mk3matoji1tgortbctcoxiid';
        $weixin = new weixin();
        //var_dump($weixin); die;
        $res = $weixin->valid($TOKEN);
        echo $res;    
    }

上文中设置的$TOKEN的值,需要和微信公众平台开发配置的相同。如下图所示:

image.png

服务器地址配置你刚刚能访问到你调用的接口的地址,令牌(Token)就是一个随机字符串,啥都可以,但是复杂度最好高点,毕竟看着高级点。

当然这部分微信官方是有文档的,但是微信这个文档吧,第一次做能不能看明白,就得看你自己的了,想看请移步《微信官方文档

至此,服务器链接打通。

有好的建议,请在下方输入你的评论。

欢迎访问个人博客 guanchao.site

欢迎访问我的小程序:打开微信->发现->小程序->搜索“时间里的”

目录
相关文章
|
10天前
|
存储 人工智能 自然语言处理
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
ChatMCP 是一款基于模型上下文协议(MCP)的 AI 聊天客户端,支持多语言和自动化安装。它能够与多种大型语言模型(LLM)如 OpenAI、Claude 和 OLLama 等进行交互,具备自动化安装 MCP 服务器、SSE 传输支持、自动选择服务器、聊天记录管理等功能。
77 15
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
|
4月前
|
JavaScript 前端开发 应用服务中间件
【Vue面试题三十】、vue项目本地开发完成后部署到服务器后报404是什么原因呢?
这篇文章分析了Vue项目在服务器部署后出现404错误的原因,主要是由于history路由模式下服务器缺少对单页应用的支持,并提供了通过修改nginx配置使用`try_files`指令重定向所有请求到`index.html`的解决方案。
【Vue面试题三十】、vue项目本地开发完成后部署到服务器后报404是什么原因呢?
|
4月前
|
开发框架 JavaScript 前端开发
震撼!破解 ASP.NET 服务器控件 Button 执行顺序之谜,颠覆你的开发认知!
【8月更文挑战第16天】在ASP.NET开发中,通过Button控件实现先执行JavaScript再触后台处理的需求十分常见。例如,在用户点击按钮前需前端验证或提示,确保操作无误后再传递数据至后台深度处理。此过程可通过设置Button的`OnClientClick`属性调用自定义JavaScript函数完成验证;若验证通过,则继续触发后台事件。此外,结合jQuery也能达到相同效果,利用`__doPostBack`手动触发服务器端事件。这种方式增强了应用的交互性和用户体验。
52 8
|
1月前
|
安全 开发工具 Swift
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发。基础语法涵盖变量、常量、数据类型、运算符、控制流等,高级特性包括函数、闭包、类、结构体、协议和泛型。
30 2
|
1月前
|
关系型数据库 API 数据库
后端开发的艺术:从零到一构建高效服务器
在数字化时代,后端开发是支撑现代互联网应用的基石。本文旨在探讨后端开发的核心概念、关键技术以及如何构建一个高效的服务器。我们将从基础的编程语言选择开始,逐步深入到数据库设计、API开发和性能优化等关键领域。通过实际案例分析,我们将揭示后端开发的复杂性和挑战性,同时提供实用的解决方案和最佳实践。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和启发。
|
2月前
|
网络安全 Docker 容器
VScode远程服务器之远程 远程容器 进行开发(五)
VScode远程服务器之远程 远程容器 进行开发(五)
46 1
|
2月前
|
Java PHP
PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。理解其垃圾回收机制有助于开发高效稳定的PHP应用。
【10月更文挑战第1天】PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。其垃圾回收机制包括引用计数与循环垃圾回收,对提升应用性能和稳定性至关重要。本文通过具体案例分析,详细探讨PHP垃圾回收机制的工作原理,特别是如何解决循环引用问题。在PHP 8中,垃圾回收机制得到进一步优化,提高了效率和准确性。理解这些机制有助于开发高效稳定的PHP应用。
53 3
|
2月前
|
NoSQL PHP Redis
布谷语音app源码服务器环境配置及技术开发语言
布谷语音app源码服务器环境配置及技术语言研发。。
|
2月前
|
Kubernetes 网络安全 容器
VScode远程服务器进行开发(三)
VScode远程服务器进行开发(三)
48 0
|
3月前
|
开发框架 JavaScript 前端开发