开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1224|回复: 4
收起左侧

[求助] 关于VX扫码登陆获取openid的问题

[复制链接]
结帖率:100% (2/2)
发表于 2023-1-7 11:19:04 | 显示全部楼层 |阅读模式   浙江省温州市
各位大佬们好,最近我想用开放平台 做个易语言扫码登陆。登陆之后的回调地址是我用PHP写的直接返回openid。
就是我想咨询一下,我该如何获取我回调信息的json值呢.如我这个例子所示,他状态码405成功之后,就已经回调到我的地址上打印出openid了。我应该怎么来获取到这个openid呢?
问题.png
这是扫码之后回调显示的openid,下面那个是rc4加密的字符串。
下面这个是我demo。
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
子程序名返回值类型公开备 注
__启动窗口_创建完毕  

子程序名返回值类型公开备 注
获取二维码  
变量名类 型静态数组备 注
局_网址文本型 
局_方式整数型 
局_提交cookie文本型 
局_结果字节集 
局_返回文本型 
uuid文本型 
状态码文本型 
i整数型 
二维码地址文本型 
code文本型 
access_token文本型 
openid文本型 
到文本文本型 
局_结果 = 网页_访问_对象 (https://open.weixin.qq.com/conne ... ATE#wechat_redirect, , , , , , , , , , , , , , , , , , )
局_返回 = 到文本 (编码_编码转换对象 (局_结果, , , ))
' [url=https://open.weixin.qq.com/connect/qrconnect?appid=wx60685c85cbbc7bcf&redirect_uri=https%3A%2F%2Fq.i1go.com%2Findex.php%2Findex%2FUser%2FgetUserInfo&response_type=code&scope=snsapi_login&state=STATE#wechat_redirect]https://open.weixin.qq.com/conne ... ATE#wechat_redirect[/url]
uuid = 文本_取出中间文本 (局_返回, “uuid=”, “#引号”, , )
调试输出 (uuid)
如果真 (uuid ≠ “”)
' 加入日志 (“获取二维码成功,请扫码!”)
二维码地址 = https://open.weixin.qq.com/connect/qrcode/ + uuid
' [url=https://open.weixin.qq.com/connect/qrcode/0019hDTi42ZQFa1q]https://open.weixin.qq.com/connect/qrcode/0019hDTi42ZQFa1q[/url]
局_方式 = 0
局_结果 = 网页_访问_对象 (二维码地址, 局_方式, , , , , , , , , , , , , , , , , )
局_返回 = 到文本 (局_结果)
图片框1.图片 = 图片_缩放 (局_结果, 200, 200, )
调试输出 (局_返回)
如果真 (寻找文本 (局_返回, “抱歉,出错了”, , ) = -1)
计次循环首 (40, i)
局_网址 = http://long.open.weixin.qq.com/connect/l/qrconnect?uuid= + uuid
局_方式 = 0
局_结果 = 网页_访问_对象 (局_网址, 局_方式, , , , , , , , , , , , , , , , , )
局_返回 = 到文本 (编码_编码转换对象 (局_结果, , , ))
调试输出 (“回调|” + 局_返回)
状态码 = 文本_取出中间文本 (局_返回, “window.wx_errcode=”, “;window”, , )
如果真 (状态码 = “400”)
调试输出 (“二维码失效重新获取”)
' 加入日志 (“二维码失效重新获取”)
跳出循环 ()
如果真 (状态码 = “404”)
调试输出 (“用户扫码成功 等待手机确认登陆”)
' 加入日志 (“用户扫码成功 等待手机确认登陆”)
如果真 (状态码 = “405”)
' 加入日志 (“登陆成功”)
code = 文本_取出中间文本 (局_返回, “window.wx_code'”, “';”, , )
局_网址 = https://api.weixin.qq.com/sns/oa ... ffbe60dcc3eb3&code= + code + “&grant_type=authorization_code”
' [url=https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code]https://api.weixin.qq.com/sns/oa ... =authorization_code[/url]
局_方式 = 0
局_结果 = 网页_访问_对象 (局_网址, 局_方式, , , , , , , , , , , , , , , , , )
局_返回 = 到文本 (编码_编码转换对象 (局_结果, , , ))
调试输出 (局_返回)
json.解析 (局_返回, , )
access_token = json.取通用属性 (“['access_token']”, )
openid = json.取通用属性 (“openid”, )
调试输出 (access_token)
调试输出 (openid)
跳出循环 ()
如果真 (状态码 = “403”)
调试输出 (“用户取消”)
' 加入日志 (“用户取消扫码,请重新获取!”)
跳出循环 ()
如果真 (状态码 = “408”)
调试输出 (“等待用户扫码”)
' 加入日志 (“等待用户扫码”)
程序_延时 (2, 1)
计次循环尾 ()
返回 ()
子程序名返回值类型公开备 注
_按钮1_被单击  
启动线程 (&获取二维码, , )


i支持库列表   支持库注释   
spec特殊功能支持库
EThread多线程支持库
结帖率:100% (22/22)

签到天数: 18 天

发表于 2023-1-7 11:25:14 | 显示全部楼层   山西省运城市
循环请求你的那个回调接口,设置一定的sleep,然后如果取到了数据,你在你的php删掉这个数据,防止下次还能取到,然后易语言跳出循环(或者说本来就是判断循环)

补充内容 (2023-1-7 11:25):
不知道说清了吗
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)
 楼主| 发表于 2023-1-7 11:31:51 | 显示全部楼层   浙江省温州市
moys520 发表于 2023-1-7 11:25
循环请求你的那个回调接口,设置一定的sleep,然后如果取到了数据,你在你的php删掉这个数据,防止下次还能 ...

开放平台返回的code是一次性的,我的源码里面已经能获取到了code。但是这个获取的code我已经做到了自己回调的接口里面,就等于是扫码之后,直接把中间的获取code,换取access_token都在php里做了。就直接输出openid了
回复 支持 反对

使用道具 举报

结帖率:100% (4/4)

签到天数: 15 天

发表于 2024-3-15 20:37:55 | 显示全部楼层   河南省驻马店市
大佬 现在获取CODE后。最后这个接口失效了么!
VX图片_20240315203604.png
VX图片_20240315203735.png
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)
 楼主| 发表于 2024-3-16 04:34:21 | 显示全部楼层   重庆市重庆市
rsdmishi 发表于 2024-3-15 20:37
大佬 现在获取CODE后。最后这个接口失效了么!

没有失效,可以看VX官方文档
回复 支持 反对

使用道具 举报

  高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表