国产精品一区二区三区……-大杳蕉伊人欧美一本遒在饯-日本不卡一区免费在线观看-国产亚洲欧美中文字幕

400-800-9385
網(wǎng)站建設(shè)資訊詳細(xì)

微信小程序開發(fā)應(yīng)用之靜默登錄

發(fā)表日期:2022-04-08 10:24:09   作者來源:劉紅旺   瀏覽:7055   標(biāo)簽:微信小程序開發(fā)    
1.微信小程序開發(fā)靜默登入,通過獲取用戶的open_id來實(shí)現(xiàn)靜默登入,獲取open_id,不需要用戶同意,獲取code再通過code獲取微信的open_id。
   wx.login({
              success(res) {
                _this.setData({
                  code:res.code,
                });
                console.log(res.code);
              }
            });
獲取code后用code去獲取用戶的open_id
/**獲取open_id */
 public function weixin_login($code) {
      $ret['code'] = 200;
      $app_id = 'xxxx';
      $app_secret = 'xxxx';
      $code = $code;//微信前端登陸獲取的CODE
      //server調(diào)用微信提供的jsoncode2session接口獲取openid, session_key
      $url = "https://api.weixin.qq.com/sns/jscode2session";
      $params = array(
          'appid' => $app_id,
          'secret' => $app_secret,
          'js_code' => $code,
          'grant_type' => 'authorization_code'
      );
      $res = makeRequest($url, $params);//curl 
      if ($res['code'] !== 200 || !isset($res['result']) || !isset($res['result'])) {
          $ret['code'] = 500;
          $ret['msg'] = '調(diào)用jsoncode2session失敗';
         
      }
      $reqData = json_decode($res['result'], true);
      if (!isset($reqData['session_key'])) {
          $ret['code'] = 500;
          $ret['msg'] = '獲得session_key失敗';
          $ret['error'] = $reqData;
      }
      //$ret['session_key'] = $reqData['session_key'];
      $ret = $reqData['openid'];
      return $ret;
}
 
2.獲取用戶頭像、昵稱 信息
 getUserProfile() {
    const app = this
    console.log("wx.canIUse('getUserProfile')",wx.canIUse('getUserProfile'));
 
    wx.canIUse('getUserProfile') && wx.getUserProfile({
      lang: 'zh_CN',
      desc: '獲取用戶相關(guān)信息',
      success({
        userInfo
      }) {
        console.log('用戶同意了授權(quán)')
        console.log('userInfo:', userInfo)
        App.getUserInfo(userInfo, () => {
          // 跳轉(zhuǎn)回原頁面
           app.onNavigateBack(1)
        });
      },
      fail() {
        console.log('用戶拒絕了授權(quán)')
      }
    })
  },
 
 /**
   * 授權(quán)登錄
   */
  getUserInfo(userInfo, callback) {
    let App = this;
    wx.showLoading({
      title: "正在登錄",
      mask: true
    });
    // 執(zhí)行微信登錄
    App._post_form('Member/userInfo', {
      user_info:JSON.stringify(userInfo),
    }, result => {
      // 執(zhí)行回調(diào)函數(shù)
      callback && callback();
    }, false, () => {
      wx.hideLoading();
    });
  },
3. 獲取用戶手機(jī)號(hào),新版的必須要用戶點(diǎn)擊button才能觸發(fā)獲取手機(jī)
通過code 在去獲取手機(jī)
 <button class="btnAuthorize" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber" >去授權(quán)</button>
  getPhoneNumber (e) {
       let _this=this  
        // app.wx_login(e.detail.code);
        app._post_form('Member/get_phone', {
          phone_code:e.detail.code,
        }, result => {
        }, false, () => {
          wx.hideLoading();
        });
      },
    

獲取手機(jī)號(hào)碼

先獲取access_token
/**獲取AccessToken */
   function access_token(){
    $app_id = 'xxxx';
    $app_secret = xxxx;
    $url = "https://api.weixin.qq.com/cgi-bin/token";
      $params = array(
          'appid' => $app_id,
          'secret' => $app_secret,
          'grant_type' => 'client_credential'
      );
      $res = makeRequest($url, $params);
      $reqData = json_decode($res['result'], true);
      return $reqData['access_token']; 
   }
通過access_token 和code 獲取手機(jī)
 public function weixin_phone($code) {
        // $ret['code'] = 200;
            $key=$this->access_token();
            $url = "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=".$key;
            $params = array(
                'code' => $code,   
            );
            $res = makeRequest($url, $params,'json');//curl params數(shù)據(jù)必須是json
            $reqData = json_decode($res['result'], true);
            return $reqData['phone_info']['phoneNumber'];    
}
 
 
  • 消息訂閱,這里以狀態(tài)審核為例子

消息訂閱

消息通知

紅圈就是發(fā)送數(shù)據(jù)的鍵名
public function submessage(){
    /** @var *
     * 微信小程序消息訂閱
     */
  
    $access_token = $this->access_token();
    $url_2="https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=".$access_token;
    $template_id = "xxx";//模板id
    $data['touser'] = $openid ;//open_id
    $data['template_id'] = $template_id ;
    $data['page'] = "pages/login/index" ; //用戶點(diǎn)擊消息跳轉(zhuǎn)頁面
    $data['data'] = array(
        'thing7'=>array('value'=>$realname),
        'phrase2'=>array('value'=>'審核通過'),//字?jǐn)?shù)不能超過5個(gè)
        'time3'=>array('value'=>date('Y-m-d H:i', time())),
        'thing4'=>array('value'=>'身份驗(yàn)證審核'),
        );
      //$data['data'] = json_encode($data['data']);
     //跳轉(zhuǎn)小程序類型:developer為開發(fā)版;trial為體驗(yàn)版;formal為正式版;默認(rèn)為正式版
     $data['miniprogram_state'] = 'trial';
     //print_r($data);
     $result = $this->posturl($url_2,$data);
     if($result['errmsg']=='ok'){
      return 1;
     }else{
      return   $result['errmsg'] ;
     }
   
 
}

審核結(jié)果

如沒特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請(qǐng)注明來自http://pdcharm.com/news/6387.html
相關(guān)網(wǎng)站設(shè)計(jì)案例
固始县| 海丰县| 宜阳县| 中山市| 二连浩特市| 潼关县| 潍坊市| 贡觉县| 萨迦县| 晋州市| 禄丰县| 高要市| 肥城市| 当阳市| 洪泽县| 南昌县| 许昌市| 平乡县| 仲巴县| 谷城县| 尼勒克县| 吴旗县| 广水市| 敦化市| 高雄市| 宽城| 遂川县| 民和| 台前县| 类乌齐县| 瑞金市| 丰顺县| 岚皋县| 军事| 宝丰县| 新津县| 葫芦岛市| 郧西县| 汤原县| 休宁县| 大石桥市|