1个 社群的魏总问我,怎么去取用户的微信小程序的唯一ID,昨天也给他解答了。今天把这个答案沉淀下来。于是有了这篇。 这个唯一ID,我们一般叫openid,是唯一标定用户身份的,每个微信在这个小程序中是唯一的。 要获取到用户的OPENID,要通过一个叫wx.login获取到code,然后拿 这个code去找VFP后端换openid 来看津津有味的代码。 首先来获取codewx.login({ success: res => { console.log(res); wx.request({ url:'ctl_login.fsp?proc=getopenid', method: "GET", data: { jscode: res.code, sysinfo: JSON.stringify(sysinfo2) }, success: function (res) { console.log(res); if (res.data.errno && res.data.errno != 0) { reject(res.data.errmsg); } that.globalData.openid = res.data.openid;
}, fail: function (err) { wx.showModal({ title: '加菲猫的VFP', content: err.errMsg, showCancel:false }) } }) }, fail: err => { wx.showModal({ title: '加菲猫的VFP', content: err.errMsg, showCancel: false })
VFP后端怎么拿呢?Define Class ctl_login As Session Procedure getOpenid PRIVATE csysinfo,cplatform,unionid,oReturn cJSCODE=httpqueryparams("jscode") csysinfo=httpqueryparams("sysinfo",This.iconnid)
oWXAPI=Newobject("weixinApi","weixinApi.prg") oWXAPI.APPid="" && 你的appid oWXAPI.SECRET="" &&你的secret
oFrmMain.log("开始获取OPENID") oReturn=oWXAPI.getopenid(cJSCODE) &&这样转换有没有必要,多个值用对象?
IF ISNULL(oReturn) ERROR oWXAPI.msg ENDIF
unionid=oReturn.unionid
TEXT TO cReturn NOSHOW TEXTMERGE PRETEXT 1+2 {"openid":"<<oReturn.openid>>"} ENDTEXT Return cReturn ENDPROC ENDDEFINE
|