使用PHP怎么在后台登录微信小程序

  介绍

这篇文章将为大家详细讲解有关使用PHP怎么在后台登录微信小程序,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

微信小程序官方给了十分详细的登陆时序图,当然为了安全着想,应该加上签名加密。

使用PHP怎么在后台登录微信小程序

<强>微信小程序端

(1)。调用wx。登录获取代码。
2)。调用wx。getUserInfo获取签名所需的rawData,出,encryptData。
3)。发起请求将获取的数据发送的后台。

登录:,函数(e), {   var 才能;that =,;   wx.login({才能   ,,,成功:函数(res) {   ,,var  code =, res.code;,//获取代码   ,,wx.getUserInfo({,//得到rawData,,出,,encryptData   成功,,,:,功能(数据){   ,,,var  rawData =, data.rawData;   ,,,var  signature =, data.signature;   ,,,var  encryptedData =, data.encryptedData;,   ,,,var  iv =, data.iv;   ,,,wx.request ({   ,,,,url:, & # 39;你自己的后台地址& # 39;,   ,,,,数据:,{   ,,,,“code",:,代码,   ,,,,“rawData",:, rawData,   ,,,,“signature",:,签名,   ,,,,& # 39;第四,,:,第四,   ,,,,& # 39;encryptedData # 39;: encryptedData   ,,,,},   ,,,,方法:,& # 39;得到# 39;,,   ,,,,:成功,函数(信息){   ,,,,console.log(信息);   ,,,,}   ,,,})   ,,,}   ,,})   ,,},   })才能   以前,}

<强>服务端

需下载微信官方解密文件。——[用户数据的签名验证和加解密]

1。解压后会出现不同语言的文件包,这里用的是PHP,将文件夹放到供应商目录下。
2。根据登陆凭代码证获取session_key和openid。
3。数据签名校验。
4。数据解密。
5。生成第三方3 rd_session并返回微信小程序端。

/*   *才能登录(调用wx.login获取)   *,才能@param  code 美元;字符串   *,才能@param  rawData 美元;字符串   *,才能@param  signatrue 美元;字符串   *,才能@param  encryptedData 美元;字符串   *,才能@param  iv 美元;字符串   *,才能@return  code 美元;成功码   *,才能@return  session3rd 美元;第三方3 rd_session   *,才能@return  data 美元;用户数据   ,*/,public  function 登录()   ,{//才能开发者使用登陆凭证,code 获取,session_key 和openid   时间=美元才能APPID  & # 39; & # 39;;//自己配置   时间=美元才能AppSecret  & # 39; & # 39;;//自己配置   code 美元;=,才能输入(& # 39;代码# 39;);   时间=美元才能url “https://api.weixin.qq.com/sns/jscode2session?appid=",只APPID 美元;只“,秘密=?只AppSecret 美元;只“,js_code=?只code 美元;只“,grant_type=authorization_code";=美元才能arr  $ this→vget ($ url);,//,一个使用curl实现的得到方法请求   时间=美元才能arr  json_decode (arr美元,,真的);   时间=美元才能openid 美元arr [& # 39; openid # 39;];   时间=美元才能session_key 美元arr [& # 39; session_key& # 39;];//才能,数据签名校验   signature 美元;=,才能输入(& # 39;签名# 39;);=美元才能rawData 要求::实例()→post (& # 39; rawData& # 39;);   时间=美元才能signature2  sha1 (rawData 美元;只session_key美元);   if 才能;(signature 美元;!=,signature2美元),{   ,,return  json((& # 39;代码# 39;,=祝辞,500年,& # 39;味精# 39;,=祝辞,& # 39;数据签名验证失败! & # 39;]);   ,,}   供应商才能(“PHP.wxBizDataCrypt");,//加载解密文件,在官方有下载   encryptedData 美元;=,才能输入(& # 39;encrypteddata # 39;);   iv 美元;=,才能输入(& # 39;第四,);   时间=美元才能pc  new  \ WXBizDataCrypt (APPID美元,,session_key美元);=美元才能errCode  pc→美元decryptData (encryptedData美元,美元四世,元数据),,//其中$ data包含用户的所有数据   时间=美元才能data  json_decode(元数据);   if 才能;(errCode 美元;==,0),{   ,,转储(元数据);   ,,死;//打印解密所得的用户信息   ,,},{else    ,,echo  errCode美元;//打印失败信息   ,,}   ,}      ,public  function  vget ($ url) {   $ info=才能curl_init ();   curl_setopt才能($ info CURLOPT_RETURNTRANSFER真实);   curl_setopt才能($ info CURLOPT_HEADER 0);   curl_setopt才能($ info CURLOPT_NOBODY 0);   curl_setopt才能($ info CURLOPT_SSL_VERIFYPEER,假);   curl_setopt才能($ info CURLOPT_SSL_VERIFYHOST,假);   curl_setopt才能($ info CURLOPT_URL $ url);   美元才能输出=,curl_exec ($ info);   curl_close才能($ info);   null   null

使用PHP怎么在后台登录微信小程序