微信公众号--资源请求

资源请求

基本流程

请求资源指的是业务服务器主动调用微信接口来执行资源请求等业务行为,核心的业务逻辑流程为

 

 

基于核心流程搭建一个比较安全可靠的服务器结构示例如下

 

 

主要有三个部分:负责业务逻辑部分的服务器,负责对接微信API的API-Proxy服务器,以及唯一的AccessToken中控服务器

1)AccessToken中控服务器:

负责: 提供主动刷新和被动刷新机制来刷新accessToken并存储(为了防止并发刷新,注意加并发锁),提供给业务逻辑有效的accessToken。

优点: 避免业务逻辑方并发获取access_token,避免AccessToken互相覆盖,提高业务功能的稳定性。

2)API-Proxy服务器:

负责:专一与微信API对接,不同的服务器可以负责对接不同的业务逻辑,更可进行调用频率、权限限制。

优点:某台API-proxy异常,还有其余服务器支持继续提供服务,提高稳定性,

避免直接暴漏内部接口,有效防止恶意攻击,提高安全性。

     代码示例

已发送群发消息为例,代码示例如下:

<?php

$appid = 'appid';

$appsecret = 'appsecret';

$data = array(

"touser"=>[

"o2Col0jkMDOqHlAjG-6W2Vs6exD8"

],

"msgtype"=>"text",

"text"=>array("content"=> "hello")

);

$result = $this->http_get('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$appsecret);

$access_token = $json['access_token'];

$this->http_post('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&access_token='.$access_token,self::json_encode($data));

 

posted @   S&L·chuck  阅读(532)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示