PHP:抖音小程序获取用户手机号

在上一篇笔记中,波波贴了php开发抖音小程序时对接的相关接口代码。参见:《PHP抖音小程序下单支付及订单推送DEMO》。

PHP抖音小程序下单支付及订单推送

今天补充一个抖音小程序获取用户手机号的接口对接,由于我是基于前面的代码写的,因此代码中code2session的方法属于直接调用。以免阅读本篇笔记的朋友产生误解。

代码片段:

  1. /**
  2.      * 解密手机号
  3.      * @param $code
  4.      * @param $iv
  5.      * @param $encrypt
  6.      * @return array
  7.      * @throws \think\db\exception\DbException
  8.      */
  9.     public static function getPhone($code,$iv,$encrypt){
  10.         $phone = '';
  11.         $result = $this->code2Session($code);
  12.         if ($result['error'] == 0){
  13.             $key = $result['session_key'];
  14.             //$openid = $result['openid'];
  15.             //解密数据
  16.             $phone = openssl_decrypt(base64_decode($encrypt,true), 'AES-128-CBC', base64_decode($key), OPENSSL_RAW_DATA, base64_decode($iv));
  17.             if (!$phone){
  18.                 return ['code'=>404,'msg'=>'手机号解密失败','data'=>[]];
  19.             }else{
  20.                 $phone = json_decode($phone,true)['phoneNumber'];
  21.                 return ['code'=>200,'msg'=>'手机号解密成功','data'=>['phone'=>$phone]];
  22.             }
  23.         }else{
  24.             return ['code'=>500,'msg'=>'网络异常,请稍后再试','data'=>[]];
  25.         }
  26.     }

需要注意的细节:

1、解密手机号时不止需要前端传回加密数据encryptData和IV加密向量,同时也需要传值静默获取的code,以便后端获取session_key。

2、前端获取code需要在获取加密数据之前,而不能在获取加密之后获取code,否则会导致解密失败。

3、code有效期5分钟。

你想把广告放到这里吗?

发表评论

您必须 登录 才能发表留言!