云函数获取当前用户IP归属地的极简代码:
const cloud = require('wx-server-sdk')
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV })
exports.main = async () => {
const wxContext = cloud.getWXContext()
let opt = {
uri: 'https://apis.map.qq.com/ws/location/v1/ip',
qs: {
ip: wxContext.CLIENTIP,
key: 'HCDBZ-OHMA3-IMQ3R-*****-*****-YNBVU'//在这里获取这个key:https://lbs.qq.com
},
json: true
}
return await rp(opt)
}
10行代码,简单地实现了该功能。还不需要申请wx.getLocation接口。
看了下文章里的接口,个人开发者每日调用次数上限是1万次,企业开发者300万次,应该能满足基本需求。
https://lbs.qq.com/service/webService/webServiceGuide/webServiceQuota
建议使用这样的方式获取ip:
var ip = wxContext.CLIENTIP?wxContext.CLIENTIP:wxContext.CLIENTIPV6;
参考文章:https://developers.weixin.qq.com/community/develop/article/doc/000e2ca85f0e5821bdedd6efb51413