微信云托管-违法违规内容检查(security.msgSecCheck)

2023-10-07 00:59

本文主要是介绍微信云托管-违法违规内容检查(security.msgSecCheck),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前段时间,微信小程序收到信息提醒,要对用户输入的内容进行检查。而实现这功能需要一台服务器或者使用云开发。经过一轮考虑后,但最终选择微信云托管。
在这里插入图片描述

选择微信云托管的原因

  • 天然鉴权
    微信私有协议自动获取 OpenID、UnionID 等登录态信息;无需维护 access_token 与证书,免鉴权调用微信开放接口;
  • 资源复用
    很多业务情况下,我们需要在多个小程序或公众号中提供统一的后端服务;微信云托管目前支持将一个「小程序/小游戏/公众号」的云托管环境共享给同主体的其他「小程序/小游戏/公众号」。 设置资源复用时,被复用方不需要也开通微信云托管。即从理论上来说,同一个主体的多个小程序/公众号,只需开通一个云托管即可,避免创建过多帐号。
    另外需要注意在小程序端,通过 wx.cloud.callContainer 向你的云托管服务发起请求时,你的服务会在 header 中获得该请求用户的全部信息。
    在这里插入图片描述

云托管环境

小编用的是thinkphp-apache。因为小编是在Windows上开发的,为了方便调试,所以只能舍弃thinphp-nginx,选择thinkphp-apache。但是不可否认,thinkphp-nginx在性能上比thinkphp-apache好。感觉php越来越不行了,或许Python的Django 也是一个不错的选择。

请求web服务器工具的选择

只能使用Guzzlehttp,不能使用curl。因为需要把传输的数据放到body里面,curl没这功能。
补充:guzzlehttp安装命令如下
composer require guzzlehttp/guzzle

核心代码

后端php代码如下,另外需要注意下,敏感内容检查的情景(scene)建议选择“2-评论”。因为这个检查范围最广泛。

use GuzzleHttp\Client;$content = Request::param('content/s', '');
$reuse = Request::param('reuse/b', false);
if ($reuse == true) {// 资源复用的情况$url = 'http://api.weixin.qq.com/wxa/msg_sec_check?from_appid=' . Request::header('x-wx-from-appid');$openid = Request::header('x-wx-from-openid');
} else {$url = 'http://api.weixin.qq.com/wxa/msg_sec_check';$openid = Request::header('x-wx-openid');
}
$http = new Client();
$response = $http->post($url, ['body' => json_encode(['content' => $content,'version' => 2,'openid' => $openid,'scene' => 2], JSON_UNESCAPED_UNICODE),
]);
$apiResult = json_decode($response->getBody());

微信小程序代码

// 资源复用情况下,调用
const c1 = new wx.cloud.Cloud({resourceAppid: 'xxxxxxxxx',resourceEnv: 'prod-xxxxxxxxx',
})
await c1.init()
const res = await c1.callContainer({"config": {"env": "prod-xxxxxxxx"},"path": "/api/msgcheck","header": {"X-WX-SERVICE": "thinkphp-apache-xxxx","content-type": "application/json"},"method": "POST","data": { content: this.data.valueAdd, reuse: true }
})

配置接口

使用云托管需要配置接口,接口名如下: /wxa/msg_sec_check
在这里插入图片描述

吐槽一下

为了减少运营成本,在微信云托管里是可以设计成没流量就自动注销服务器了。而当有流量后又自动开启。而开启需要20秒的时间。这会导致敏感内容检查失败。。。

这篇关于微信云托管-违法违规内容检查(security.msgSecCheck)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/155092

相关文章

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

C#高效实现Word文档内容查找与替换的6种方法

《C#高效实现Word文档内容查找与替换的6种方法》在日常文档处理工作中,尤其是面对大型Word文档时,手动查找、替换文本往往既耗时又容易出错,本文整理了C#查找与替换Word内容的6种方法,大家可以... 目录环境准备方法一:查找文本并替换为新文本方法二:使用正则表达式查找并替换文本方法三:将文本替换为图

Spring Security 前后端分离场景下的会话并发管理

《SpringSecurity前后端分离场景下的会话并发管理》本文介绍了在前后端分离架构下实现SpringSecurity会话并发管理的问题,传统Web开发中只需简单配置sessionManage... 目录背景分析传统 web 开发中的 sessionManagement 入口ConcurrentSess

Spring Security重写AuthenticationManager实现账号密码登录或者手机号码登录

《SpringSecurity重写AuthenticationManager实现账号密码登录或者手机号码登录》本文主要介绍了SpringSecurity重写AuthenticationManage... 目录一、创建自定义认证提供者CustomAuthenticationProvider二、创建认证业务Us

Linux从文件中提取特定内容的实用技巧分享

《Linux从文件中提取特定内容的实用技巧分享》在日常数据处理和配置文件管理中,我们经常需要从大型文件中提取特定内容,本文介绍的提取特定行技术正是这些高级操作的基础,以提取含有1的简单需求为例,我们可... 目录引言1、方法一:使用 grep 命令1.1 grep 命令基础1.2 命令详解1.3 高级用法2

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

最新Spring Security的基于内存用户认证方式

《最新SpringSecurity的基于内存用户认证方式》本文讲解SpringSecurity内存认证配置,适用于开发、测试等场景,通过代码创建用户及权限管理,支持密码加密,虽简单但不持久化,生产环... 目录1. 前言2. 因何选择内存认证?3. 基础配置实战❶ 创建Spring Security配置文件

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

linux批量替换文件内容的实现方式

《linux批量替换文件内容的实现方式》本文总结了Linux中批量替换文件内容的几种方法,包括使用sed替换文件夹内所有文件、单个文件内容及逐行字符串,强调使用反引号和绝对路径,并分享个人经验供参考... 目录一、linux批量替换文件内容 二、替换文件内所有匹配的字符串 三、替换每一行中全部str1为st

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二