赞
踩
要通过Fastadmin的API获取微信小程序的用户openid和手机号码,需要进行以下步骤:
在Fastadmin后台管理系统中,创建一个新的API接口。在添加API接口的过程中,需要将“请求方式”设置为“POST”,“返回参数类型”设置为“Json”,并设置“请求头”中的“Content-Type”为“application/json”。
在“请求参数”中,添加一个参数名为“code”的参数。这个参数将会接收微信小程序的登录凭证,用来获取用户的openid和session_key。
在“请求参数”中,再添加一个参数名为“encryptedData”的参数和一个参数名为“iv”的参数。这两个参数是用来解密用户的手机号码的。
在“返回参数”中,添加一个参数名为“openid”的参数和一个参数名为“mobile”的参数。这两个参数将会返回给小程序端。
在Fastadmin后台管理系统中,打开“系统管理”->“小程序管理”,获取需要的小程序的“AppID”和“AppSecret”。
在小程序端的代码中,调用微信小程序的wx.login
函数,获取用户的登录凭证code。
在小程序端的代码中,编写一个函数,在该函数中调用Fastadmin的API接口,向Fastadmin发送一个POST请求。在请求的“data”数据中,包含三个字段:code(用户登录凭证)、encryptedData(加密的用户手机号码)和iv(解密用户手机号码所需要的加密算法初始向量)。
在接收到Fastadmin返回的数据之后,解析出其中的openid和手机号码,并将它们保存到小程序端的全局变量中。
下面是具体的代码实现,供您参考:
在Fastadmin中创建一个新的API接口:
请求方式:POST
请求地址:/api/wx_login
返回参数类型:JSON
请求头:
Content-Type: application/json
请求参数:
code: String
encryptedData: String
iv: String
返回参数:
openid: String
mobile: String
在小程序端代码中的实现:
function wx_login(code, encryptedData, iv) {
wx.request({
url: 'https://your.fastadmin.host/api/wx_login',
method: 'POST',
data: {
code: code,
encryptedData: encryptedData,
iv: iv
},
success: function(res) {
console.log(res.data);
// 解析并保存openid和mobile
}
});
}
在后台接口文件中的实现:
public function wx_login($code = '', $encryptedData = '', $iv = '') { $appid = 'your_appid'; $appsecret = 'your_appsecret'; $url = 'https://api.weixin.qq.com/sns/jscode2session?appid='.$appid.'&secret='.$appsecret.'&js_code='.$code.'&grant_type=authorization_code'; $res = file_get_contents($url); $res = json_decode($res, true); $openid = $res['openid']; $session_key = $res['session_key']; $pc = new WXBizDataCrypt($appid, $session_key); $errCode = $pc->decryptData($encryptedData, $iv, $data); if ($errCode == 0) { $mobile = json_decode($data, true)['phoneNumber']; } else { $mobile = ''; } return json(['openid' => $openid, 'mobile' => $mobile]); }
其中“WXBizDataCrypt”是一个用于解密微信小程序加密数据的类,需要先在文件中进行引用。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。