社群的魏總問(wèn)我,怎么去取用戶(hù)的微信小程序的唯一ID,昨天也給他解答了。今天把這個(gè)答案沉淀下來(lái)。于是有了這篇。
這個(gè)唯一ID,我們一般叫openid,是唯一標(biāo)定用戶(hù)身份的,每個(gè)微信在這個(gè)小程序中是唯一的。
要獲取到用戶(hù)的OPENID,要通過(guò)一個(gè)叫wx.login獲取到code,然后拿 這個(gè)code去找VFP后端換openid
來(lái)看津津有味的代碼。
首先來(lái)獲取code
wx.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("開(kāi)始獲取OPENID")
oReturn=oWXAPI.getopenid(cJSCODE) &&這樣轉(zhuǎn)換有沒(méi)有必要,多個(gè)值用對(duì)象?
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