微信云托管-违法违规内容检查(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

相关文章

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

springboot依靠security实现digest认证的实践

《springboot依靠security实现digest认证的实践》HTTP摘要认证通过加密参数(如nonce、response)验证身份,避免明文传输,但存在密码存储风险,相比基本认证更安全,却因... 目录概述参数Demopom.XML依赖Digest1Application.JavaMyPasswo

Python进行word模板内容替换的实现示例

《Python进行word模板内容替换的实现示例》本文介绍了使用Python自动化处理Word模板文档的常用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录技术背景与需求场景核心工具库介绍1.获取你的word模板内容2.正常文本内容的替换3.表格内容的

MySQL使用EXISTS检查记录是否存在的详细过程

《MySQL使用EXISTS检查记录是否存在的详细过程》EXISTS是SQL中用于检查子查询是否返回至少一条记录的运算符,它通常用于测试是否存在满足特定条件的记录,从而在主查询中进行相应操作,本文给大... 目录基本语法示例数据库和表结构1. 使用 EXISTS 在 SELECT 语句中2. 使用 EXIS

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

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