在进行虚拟支付时,偶尔会有出现调用midasGetBalance返回90009错误的情况。
midasGetBalance接口的签名需要用当前用户的session_key来计算,这个session_key我这边是在用户上一次登录时保存在缓存中,然后下次玩家进入游戏时,先在前端调用wx.checkSession检测当前用户的session_key是否有效,如果session_key有效,则用上一次保存的session_key。最近发现,偶尔有玩家在游戏内进行充值操作时,调用midasGetBalance接口检测余额,接口返回90009错误提示。然后,我们引导玩家重新进行授权后,在代码逻辑没有任何变动的情况下,midasGetBalance接口和midasPay接口能正常执行,因此判断,出现90009错误的原因是session_key失效了。我看了出现这种情况的玩家登录日志和支付日志,这些玩家在登录时,wx.checkSession接口返回是success的。而且,同样的逻辑,绝大部分玩家不会出现这种情况,每天可能会有一两个提示错误的情况。