微信小程序如何通过fastadmin的api获取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 
    }
  });
}

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

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”是一个用于解密微信小程序加密数据的类,需要先在文件中进行引用。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Design JBY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值