wx.uploadFile 无法直接上传到 内容安全 接口?
发布于 5 年前 作者 guona 8785 次浏览 来自 问答

(内容看起来有点长,但实际上只会花费你2-3分钟左右)

你好,我在文档:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/sec-check/imgSecCheck.html

进行内容安全开发。

业务需求是:1. 用户上传头像 2. 用户选择文章题图  3. 用户在文章内上传图

这3个场景中用户可以上传图片。

所以我们想使用 imgSecCheck 进行安全检查,如果是违法违规的图片。就拒绝提交。

我的代码实现是

1- 上传图片到七牛

2- 通过参数拼接,把图片的尺寸降低到 750x1344 大小以下(文档中说了图片宽高限制)

例子:https://img.example.com/ + res.qiniu_url + ‘?imageView2/2/w/740/h/1324’;

    3. 用 wx.downloadFile 把这个图片下载下来

    4. wx.uploadFile 把上一步的图片 + access_token 传给微信内容安全接口

var url = `https://api.weixin.qq.com/wxa/img_sec_check?access_token=${access_token}`

wx.uploadFile({

url: url,

    5. 内容安全接口会返回是否合规。

到上文说的部分目前为止,一切正常。

后来发现在开发者工具里是 OK 的,但是在真机上是不行的。

因为开发者工具里勾选了 “不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书

于是我把开发者工具取消勾选了 不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书

看到报错信息如下:


__
__

问题

正确的做法是否是通过自己的后端来上传图片到 imgSecCheck 接口?

而不是直接在微信小程序里通过 wx.uploadFile 做(因为会导致 “不在 uploadFile 合法域名列表” 中)

如果是这样,麻烦在文档里补充提醒一下。避免其他人犯和我一样的错。浪费时间。

谢谢阅读

1 回复

你可以通过云函数上传

微信的接口不允许 在小程序端调用

因为这样不安全  特别是有acc token  秘钥之类的 接口

回到顶部