首页
接口文档
使用教程
微信登录
wxLogin使用文档
2025-10-24 11:26:53
目录
#custom-toc-container
# 使用说明 ### wxLogin登录使用非常简单,流程如下: 1.扫码登录wxLogin 2.创建一个网站 3.获得appid和key密钥 5.在自己的网站中添加按钮跳转到授权url 6.用户登录成功后会返回到指定的网站回调地址并携带加密的GET数据`data` 7.开发者接收到加密信息解密后就获得了用户资料包含openid等信息 8.登录完成,判断登录储存等 # 登录地址 ### PC扫码登录地址 使用JWT加密: `https://wxlogin.com/jwt?appid=你的appid` 使用 AES-256-CBC 加密: `https://wxlogin.com/connect?appid=你的appid` 适用于PC网站,跳转到二维码登录界面,用户扫码登录后,会返回data数据到后台配置的PC返回地址 ### H5登录地址 使用JWT加密: `https://wxlogin.com/jwth5?appid=你的appid` 使用 AES-256-CBC 加密: `https://wxlogin.com/connecth5?appid=你的appid` 适用于微信h5网页 ,无需扫码,授权登录后会返回后台配置的h5返回地址 ### 请求参数 | 参数 | 说明 | | ------------ | ------------ | | appid | 应用id | | scope | snsapi_userinfo 或 snsapi_base | | tpl | 扫码页面风格ID, 默认是1,可选2,3 scope参数说明: - `snsapi_userinfo` 需要用户点击授权按钮,可获得用户昵称和头像 - `snsapi_base` 静默登录只获取openid # 返回数据 ### 登录成功后返回加密的数据和token > 例子:后台网站设置的PC返回地址为:https://note.5811.cn/main/return data: 是加密数据 token:是当前用户密钥 ``` https://note.5811.cn/main/return?data=ZnpONXZkUlZD***UDgc6XJ&token=sdfwwUUISD234sdfe ``` ## 方法一: 更简单,通过token获取用户信息,无需解密[推荐] 扫码登录后,返回的url里面包含一个token参数,通过token使用下面的接口即可获取当前用户资料,无需解密 ### 通过token获取登录用户资料 接口地址:`https://wxlogin.com/wxuser/userinfo` 请求方式:`POST` head头部:`Content-Type: application/json` 返回数据: ``` { "code": 200, "msg": "获取成功", "data": { "id": "672", "appid": "wxB2WA_9i2KK", "openid": "6a235gjyv2ZpnAuSZ8rMKXHdTygLb7wMAHdfM0KuLURmVwUtuhNdO09bGWBRi1A9", "unionid": null, "nickname": "曹え 5811", "sex": "0", "province": null, "city": null, "country": null, "headimgurl": "https://thirdwx.qlogo.cn/mmopen/vi_32/MxXpDuNtp3LfUlwUM54EicPoV3XahzZzdnWicOQo3Nw93mlPmgHrXxbdZWdBROibXicL4yg2viaZp842DMVoZB6jHEyIa3b9ee46xf8iaItypib0g8/132", "addtime": "2025-03-27 11:16:24", "logintime": "2025-10-24 11:05:27", "wx_openid": "o-B8Qt1OeLeIM2Yh8mJLiT3nulJg", "token": "qIeHaA1kCLfh4Wt0xHK_9FxYxrupjS9e" } } ``` ## 方法二: 解密后得到json > 接收 data 数据,配合应用ke解密得到下面的内容 ``` { "appid":"wx8888888888", "openid":"AZf_FAVqS84myGfwQOuq6oIZZQIv5bU7171580072", "nickname":"\u66f9\u30485811", "headimgurl":"https:\/\/thirdwx.qlogo.cn\/mmopen\/vi_32\/MxXpDuNtp3LfUlwUM54EicPoV3XahzZzdnWicOQo3Nw93mlPmgHrXxbdZWdBROibXicL4yg2viaZp842DMVoZB6jHEyIa3b9ee46xf8iaItypib0g8\/132", "sex":"0" } ``` ### 解密参数说明 | 参数 | 说明 | | ------------ | ------------ | | appid | 应用id | | openid | 用户的openid | |nickname | 微信昵称 | |headimgurl | 微信头像| |sex|性别| # php 解密 ### 简单解密 > 返回的地址执行下面的代码就可以获得用户资料了 ``` $encrypted = $_GET['data']; $encryption_key = "网站key密钥"; $parts = explode('::', base64_decode(urldecode($encrypted))); $decrypted = openssl_decrypt($parts[0], 'aes-256-cbc', $encryption_key, 0, $parts[1]); $userinfo = json_decode($decrypted,true); print_r($userinfo); ``` `$userinfo` 就是用户资料的数组 ### 封装函数 ``` // 解密 两个参数:加密数据,应用密钥 function getBase($encrypted,$encryption_key){ // 从加密数据中分离出IV $parts = explode('::', base64_decode(urldecode($encrypted))); $decrypted = openssl_decrypt($parts[0], 'aes-256-cbc', $encryption_key, 0, $parts[1]); return json_decode($decrypted,true); } ``` ** 使用方法 ** ``` $data = $GET['data']; $r = getBase(urlencode($data),'123qwe456wer4567123qwe456wer4567'); ``` > $r 就是最终的用户数据