当前位置:   article > 正文

微信小程序如何通过fastadmin的api获取openid和手机号码?_fastadmin 获取openid

fastadmin 获取openid

要通过Fastadmin的API获取微信小程序的用户openid和手机号码,需要进行以下步骤:

  1. 在Fastadmin后台管理系统中,创建一个新的API接口。在添加API接口的过程中,需要将“请求方式”设置为“POST”,“返回参数类型”设置为“Json”,并设置“请求头”中的“Content-Type”为“application/json”。

  2. 在“请求参数”中,添加一个参数名为“code”的参数。这个参数将会接收微信小程序的登录凭证,用来获取用户的openid和session_key。

  3. 在“请求参数”中,再添加一个参数名为“encryptedData”的参数和一个参数名为“iv”的参数。这两个参数是用来解密用户的手机号码的。

  4. 在“返回参数”中,添加一个参数名为“openid”的参数和一个参数名为“mobile”的参数。这两个参数将会返回给小程序端。

  5. 在Fastadmin后台管理系统中,打开“系统管理”->“小程序管理”,获取需要的小程序的“AppID”和“AppSecret”。

  6. 在小程序端的代码中,调用微信小程序的wx.login函数,获取用户的登录凭证code。

  7. 在小程序端的代码中,编写一个函数,在该函数中调用Fastadmin的API接口,向Fastadmin发送一个POST请求。在请求的“data”数据中,包含三个字段:code(用户登录凭证)、encryptedData(加密的用户手机号码)和iv(解密用户手机号码所需要的加密算法初始向量)。

  8. 在接收到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 
    }
  });
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在后台接口文件中的实现:

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]);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

其中“WXBizDataCrypt”是一个用于解密微信小程序加密数据的类,需要先在文件中进行引用。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/132009
推荐阅读
相关标签
  

闽ICP备14008679号