LukeDev2K
LukeDev2K
  • 发布:2021-05-15 21:17
  • 更新:2021-05-17 14:43
  • 阅读:613

阿里云函数怎样对接微信的imgSecCheck

分类:uniCloud

有谁实现了吗,从腾讯云很方便就实现了

2021-05-15 21:17 负责人:无 分享
已邀请:
名图客

名图客

只要你能拿得到接口的accessToken,在座机上都能对接。

  • LukeDev2K (作者)

    拿accessToken不是很容易吗,现在是文件拿不到,需要在云空间传微信需要的文件formData,在腾讯云download下来就行,阿里云不行

    2021-05-17 14:39

  • LukeDev2K (作者)

    回复 名图客: 这个只能腾讯云

    2021-05-17 15:02

DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

发送网络请求传输formdata到微信服务器即可,可以使用npm上那个form-data库

  • LukeDev2K (作者)

    用了,就是微信要求的那个media一直传不对

    2021-05-17 15:08

  • DCloud_uniCloud_WYQ

    回复 LukeDev2K:


    // 以buffer为例  
    form.append('media', buffer, { // buffer换成真实文件buffer
    filename: `${Date.now()}.png`, // 替换成真实后缀
    contentType: img.contentType // 替换成文件contentType
    })
    options = { // 传递给httpclient
    content: form.getBuffer(),
    headers: form.getHeaders()
    }

    2021-05-17 17:11

  • LukeDev2K (作者)

    回复 DCloud_uniCloud_WYQ: 谢谢,其实就是这个文件buffer,我不知道怎样在阿里云函数里拿到,我尝试从前端传过去,不过对象类型变成了object,现在也是差这一步

    2021-05-17 17:28

  • 名图客

    回复 LukeDev2K: 如果走前端,可以传bash64过去,我以前就是这样做的。进去之后转格式buffer.from(event.base64,'base64')

    2021-05-18 09:41

  • LukeDev2K (作者)

    回复 名图客: 晚点试试

    2021-05-18 09:44

  • 名图客

    给你完整调用代码,网络请求最烦人的就是参数对位,避免你浪费时间。

    uniCloud.httpclient.request(

    https://api.weixin.qq.com/wxa/img_sec_check?access_token=${result}, {

    dataType: 'json',

    files: [Buffer.from(event.base64, 'base64')]

    })

    2021-05-18 09:45

  • 名图客

    记得当时没走前端是因为绕太多弯了,本地图片还好,网络图片要下载转码上传发送审核回执删除,这太拉跨了。云存储的图片还有跨域问题,h5上不能使用uni.downloadfiles下载,也就不能转码,被这个事情搞疯了。

    2021-05-18 09:54

  • 名图客

    现在有个使用画布生成海报的需求,还被这个云存储禁止跨域问题搞得性能低下。得用云函数下载图片buffer转base64,之后再传给前端。真是无语了,自己的服务空间,运存粗,下载文件还不能跨域,还无法配置跨域。

    2021-05-18 09:58

  • LukeDev2K (作者)

    回复 名图客: 谢谢大佬

    2021-05-18 16:44

  • LukeDev2K (作者)

    回复 名图客: 代码是可以的,十分感谢

    2021-05-18 16:47

该问题目前已经被锁定, 无法添加新回复