首页 > 编程语言 >首发:vue开发微信小程序文本内容安全审核php api接口代码完整分享

首发:vue开发微信小程序文本内容安全审核php api接口代码完整分享

时间:2024-07-22 11:28:25浏览次数:15  
标签:vue 微信 api text error curl data cURL CURLOPT

微信小程序的文本内容安全审核,有用户输入内容的小程序都用的上,本人自己项目开发使用的接入代码分享给大家,直接复制粘贴过去就能用,如果用的上记得点赞支持。

上代码,配合之前发的access_token获取接口使用,把下面代码里面的token刷新接口地址换成你的即可。https://blog.csdn.net/sinat_41743732/article/details/140603905 :

<?php
// 读取和刷新AccessToken的函数
function getAccessToken() {
    $tokenPath = 'access_token.txt';
    if (file_exists($tokenPath)) {
        $data = json_decode(file_get_contents($tokenPath), true);
        if ($data['expires_in'] < time()) {
            // Token过期,刷新Token
            $refreshUrl = "https://dk82.com/token.php";// 获取AccessToken的接口
            $curl = curl_init();
            curl_setopt($curl, CURLOPT_URL, $refreshUrl);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
            $response = curl_exec($curl);
            curl_close($curl);
            file_put_contents($tokenPath, $response);
            $data = json_decode($response, true);
        }
        return $data['access_token'];
    }
    return null;
}

// 获取请求数据
$data = json_decode(file_get_contents("php://input"), true);

// 检查是否有文本内容被传入
if (!empty($data['text'])) {
    $text = $data['text'];
    $accessToken = getAccessToken(); // 获取最新的AccessToken

    // 调用微信内容安全接口
    $result = checkContentSafety($text, $accessToken);

    // 直接返回结果
    echo $result;
} else {
    // 没有接收到文本
    echo json_encode(array("error" => "No text provided"));
}

function checkContentSafety($text, $accessToken) {
    $url = "https://api.weixin.qq.com/wxa/msg_sec_check?access_token=" . $accessToken;
// 使用JSON_UNESCAPED_UNICODE标志来防止字符被转义
    $data = json_encode(array("content" => $text), JSON_UNESCAPED_UNICODE);

// 记录POST数据到日志文件(适用于生产环境)
//    file_put_contents('log.txt', "POST Data: " . $data . "\n", FILE_APPEND);

    // 初始化cURL会话
    $curl = curl_init();
    // 设置cURL选项
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));

    // 执行cURL会话
    $response = curl_exec($curl);
    $error = curl_error($curl);
    // 关闭cURL会话
    curl_close($curl);

    // 错误处理
    if ($error) {
        return json_encode(array("error" => "cURL Error #" . $error));
    } else {
        return $response; // 直接返回原始响应
    }
}
?>

使用方法和微信官方的接口一致,新建一个php文件把上面代码保存,替换token地址,然后post请求安全接口地址即可。

这是vue前端调用代码:

// 提交
		submit() {
			// 检查文本内容安全
			    this.checkTextSafety().then(isSafe => {
			        if (isSafe) {
						// 有id后放开即可
						/*
						// #ifdef MP-WEIXIN 
						if (!this.isEnded) {
							return this.adFun(); // 观看广告
						}
						// #endif
						*/
			            this.submitReq(); // 如果检测通过,继续提交请求
			        } else {
			            uni.showToast({
			                title: '文本内容包含敏感信息,请修改后重试',
			                icon: 'none'
			            });
			        }
			    }).catch(err => {
			        console.error('内容检测错误:', err);
			        uni.showToast({
			            title: '内容检测服务异常',
			            icon: 'none'
			        });
			    });
			},
			
			checkTextSafety() {
			    return new Promise((resolve, reject) => {
			        uni.request({
			            url: api.anquan, // 替换成你的后端API地址
			            method: 'POST',
			            data: {
			                text: this.formData.text + " " + this.formData.text2 + " " + this.formData.text3
			            },
			            success: (res) => {
			                if (res.data && res.data.errcode === 0) {
			                    resolve(true);
			                } else {
			                    resolve(false);
			                }
			            },
			            fail: (err) => {
			                reject(err);
			            }
			        });
			    });
		},

内容安全接口接入全部代码分享完毕,直接拿去就能用的,记得点赞支持哦。

标签:vue,微信,api,text,error,curl,data,cURL,CURLOPT
From: https://blog.csdn.net/sinat_41743732/article/details/140604747

相关文章

  • LTC莱特币实时行情API接口
    LTC莱特币实时行情API接口#RestfulAPIhttps://tsanghi.com/api/fin/crypto/realtime?token={token}&ticker={ticker}指定加密货币代码,获取该加密货币的实时行情(开、高、低、收)。更新周期:实时。请求方式:GET。#莱特币测试接口https://tsanghi.com/api/fin/cr......
  • c# swagger api分组
    ConfigureServices修改services.AddSwaggerGen(c=>{c.SwaggerDoc("v1",newOpenApiInfo{Title="SwaggerTest",Version="v1"});c.SwaggerDoc("User",newOpenApiInfo{Title="U......
  • Vue3 - 详解实现网站使用企业微信二维码扫描登录,企业微信授权第三方网站接入企业微信
    前言如果您需要Vue2版本,请访问这篇文章。在vue3|nuxt3网站开发中,详解实现网页集成使用“企业微信扫一扫登录”功能,用户使用手机企业微信app扫描网站的登录二维码后,获取用户身份信息及号码并完成授权登录教程,新手小白完整流程及示例运行代码,支持多种企业微信二......
  • vue非常常用的页面传参、调用(一定要牢牢记住!)
    一.首先,是最基础的在父组件中引入子组件,调用子组件,如下:   1.引入组件   2.注册组件   3.调用组件  父组件parent.vue ↓   子组件child.vue ↓二.然后,我们来学习父组件传递参数给子组件,如下:   1.父组件其实是用v-bind属......
  • 1、Flink 的 Table API & SQL API 概述
    1)概览1.TableAPI&SQLFlink有两种关系型API来做流批统一处理:TableAPI和SQL。TableAPI是用于Scala和Java语言的查询API,它可以用一种非常直观的方式来组合使用选取、过滤、join等关系型算子。FlinkSQL是基于ApacheCalcite来实现的标准SQL。无论输入......
  • Java流的概念及API
    流的概念 流(Stream)的概念代表的是程序中数据的流通,数据流是一串连续不断的数据的集合。在Java程序中,对于数据的输入/输出操作是以流(Stream)的方式进行的。可以把流分为输入流和输出流两种。程序从输入流读取数据,向输出流写入数据。Java中的流可以按如下方式分类:按流的方......
  • 使用vue-router创建一个简单示例
    以下是一个完整的Vue.js应用示例,展示了如何创建一个简单的Vue.js应用,并使用VueRouter实现不同组件页面之间的导航。这个示例包括组件页面、路由配置以及如何构建和搭建这些页面。1.创建项目首先,创建一个新的Vue3项目:npminitvue@latest按照提示完成项目初始化......
  • 毕业设计&毕业项目:基于springboot+vue实现的在线音乐平台
    一、前言        在当今数字化时代,音乐已经成为人们生活中不可或缺的一部分。随着技术的飞速发展,构建一个用户友好、功能丰富的在线音乐平台成为了许多开发者和创业者的目标。本文将介绍如何使用SpringBoot作为后端框架,结合Vue.js作为前端框架,共同实现一个高效、可扩展的......
  • 谷粒商城实战笔记-43-前端基础-Vue-使用Vue脚手架进行模块化开发
    文章目录一,Vue的模块化开发1,目录结构2,单文件组件(SFC)3,模块化路由4,Vuex模块5,动态组件和异步组件6,抽象和复用7,构建和打包8,测试9,文档和注释10,持续集成/持续部署(CI/CD)二,实战1,全局安装webpack2,全局安装vue脚手架3,初始化vue项目4,启动vue项目三,Vue应用原理初探1,m......
  • 基于node+vue的婚纱摄影网站
    博主主页:猫头鹰源码博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询文末联系获取项目介绍: 本系统适合选题:婚纱、摄影、婚......