微信小程序获取openid异步问题 有时候获取不到问题

微信小程序获取openid异步问题 有时候获取不到问题,第1张

获取 openid 我是直接使用小程序云函数中的login函数,在开发中,我是直接写在主页面的js中,很多函数都需要openid的值,有时候能获取到,有时候又不行,调试之后发现是获取getopenid的函数是异步,不能通过 onLoad() 方法直接获取,当onload函数启动后,下面直接顺序执行,openid还没获取到,下面的函数已经在执行了,这就是异步问题了。

我们要在 APP.js 中调用获取 openid 云函数

openid为空意思是:微信支付时没有获取到付款用户唯一标识openid。这个参数是公众号支付时的必传参数。

openid是公众号的普通用户的一个唯一的标识,只针对当前的公众号有效,只要获得OpenID,就可以相继获得用户的一些信息,如:所在城市、国家、姓别等,应该是没有绑定身份z和手机号。

OpenID协议提供了一个基本的认证机制。目前还有基于OpenID的其它可用协议:AttributeExchange:OpenID属性交换是一种用于在端点之间交换标识信息OpenID服务扩展。其提供了对标识信息的接收和存储。

我遇到的情况是:{ errMsg: "cloud.callFunction:ok", result: null }

方法一:先检查是否在开发前安装好nods.js和npm;

在cmd输入:

node -v

npm -v

可以看到安装好的对应版本;

云函数中使用 wx-server-sdk 需在对应云函数目录下安装 wx-server-sdk 依赖,可通过:

npm install --save wx-server-sdk@latest安装;

最后会提示:+wx-server-sdk@版本号。

成功安装依赖后,相应的云函数文件夹将生成一个package-lock.json文件。

再次上传并部署云函数:所有文件。

方法二:

在云端和本地上都要删除函数,再重新创建和上传,也许问题就会解决了!

方法三:

在云端上删除已经部署过的login函数:再次上传的时候可能会出现:

"Code": "ResourceNotFound.Function", "Message": "未找到函数版本,请创建后再...

然后此时在云端上新建函数,如下图:

再次上传并部署云函数,此时提醒函数已存在,不能重复上传,此时编译一下。

发现原本获取openid值为null的,现在能够成功获取到了用户的openid。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8048718.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存