云函数中获取微信公众号数据,IP不在白名单问题
发布于 5 年前 作者 lzhao 15948 次浏览 来自 问答
  • 当前 Bug 的表现(可附上截图)

昨天的时候,云函数访问外网,他的IP还是固定的。

但是今天,云函数IP一直变化,基本每次调用都是不同的IP。这样就导致访问公众号数据时,出现IP不在公众号白名单中。无法获取公众号数据。

  • 预期表现

如何解决?可否把IP固定下来?或者如何取消公众号ip白名单?或者如何在代码里面搞一个代理IP?

  • 复现路径
  • 提供一个最简复现 Demo
4 回复

希望在云函数里面可以调用公众号接口,最好还能够接受微信服务器的消息。。。

一年了,还没有解决办法吗?

if (usage == “getProxy”){

//get wx token

if (nowTime < expiryTime + wxTimeStamp) {

console.log(‘wx token is OK’)

}

else {

console.log(‘updating wx token’)

var value = {

method: ‘GET’,

uri: https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid= + wxAppId + ‘&secret=’ + wxSecret,

json: true

}

if (proxyOn) value.proxy = ‘http://’ + proxyIP;

const newTokenData2 = await rp(value)

if (newTokenData2.access_token == null)

{

return {

validToken:false,

proxyIP: proxyIP,

proxyOn: proxyOn,

}

}

console.log('newToken2 is: ’ + newTokenData2.access_token)

await db.collection(‘token’)

.where({ secret: tokenData.data[0].secret })

.update({

data:

{

wxTimeStamp: parseInt(new Date().getTime() / 1000),

wxAccessToken: newTokenData2.access_token,

},

})

console.log(‘get wx new token finished’)

}

return {

validToken: true,

proxyIP: proxyIP,

proxyOn: proxyOn,

}

}

看看路由设置里的dhcp有没有自动分配

回到顶部