项目中有个客服会话功能
用户授权成功,会话按钮才会显示.
在已授权的情况下,进入小程序必须要点两次会话按钮才可以进入客服会话页面.
如果已打开小程序,就是说进入了会话再退出会话返回首页,然后点击会话按钮,一次就可以进入.
如果用户没打开小程序,再打开小程序点击进入会话 要点击两次才可以进入.
请问这是什么原因?
代码如下:
<view class='btn_foot'>
<button wx:if="{{isShouQuan}}" class='btn1' open-type='contact'>点击咨询</button>
<button wx:else class='btn1' open-type="getUserInfo" bindgetuserinfo="getUserInfo" lang='zh_CN'>点击咨询</button>
</view>
我猜这是你服务器自己授权逻辑的问题。
逻辑没有问题,就挺简单的.授权成功返回信息后就把变量 isShouQuan 改为true 否则就是false
你检查一下,getUserInfo是在wx.login之前还是之后调用的。
wx.getUserInfo一定要在wx.login之后调用,否则第二次login会刷新session_key,导致其中的signature第一次校验失败,第二次成功。
在wx.login之后,因为wx.login 在onload函数里. getUserInfo是点击才会触发 我代码发出来 您看看
Page({
data: {
isShouQuan:false,
code:''
},
onLoad: function () {
var that=this;
wx.login({
success:function(res){
that.setData({
code:res.code
})
}
})
},
getUserInfo:function(e){
var that=this;
if(e.detail.errMsg=='getUserInfo:ok'){
that.setData({
isShouQuan:true
})
}
}
})
从这里看不出什么问题,你还是做一下代码片段,这样才能看出来。
如果是要依赖你自己服务器授权access_token的,你可以通过日志来查看一下第一次点击发生了什么。
如果你是单纯客户端的,你可以检查一下第一次点击有没有发生什么。
好的,非常感谢!我试试
大家都没遇到过这样的问题吗?