样式如下,点击获取手机号,小程序就可获取微信绑定的手机号码
<view class="tel"> <input type="number" name="tel" value='{{tel}}' maxlength="11" placeholder="请输入手机号码" placeholder-style="color:#c9c9c9;"/> <button class="gettel" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">获取手机号</button> </view>
getPhoneNumber (e) { var that = this var code = e.detail.code wx.request({ url: 'https://www.xalhsz.cn/wp-json/getphone/v2', method:"post", data:{ code:code }, success:(res)=>{ that.setData({ tel:res.data }) } }) },
wordpress服务端代码如下:
// 获取手机号 add_action('rest_api_init','wp_api_get_phone'); function wp_api_get_phone(){ register_rest_route('getphone','/v2',array( 'methods' => 'POST', 'callback' => 'getphone_callback', )); } function getphone_callback($request_data){ $token = getAccessToken(); $para = $request_data->get_params(); $data['code'] = $para['code']; $url = "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=".$token; $arr = json_encode($data); $info = _request($url,true,'POST',$arr); $tmpinfo = json_decode($info); $code = $tmpinfo->errcode; $phone_info = $tmpinfo->phone_info; $phoneNumber = $phone_info->phoneNumber; if($code == '0'){ return $phoneNumber; }else{ return "not get phoneNumber"; } }
getAccessToken和_request()如下:
/*获取access_token,不能用于获取用户信息的token*/ function getAccessToken() { $appid = "wx46ccf5dfdfd9531f"; $appsecret = "306a8b61dfddfdfddfdfcb035282bf80"; $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret; $con = _request($url); $cont = json_decode($con); return $cont->access_token; } //设置网络请求配置 function _request($curl,$https=true,$method='GET',$data=null){ // 创建一个新cURL资源 $ch = curl_init(); //header('Content-Type:application/json; charset=utf-8'); $headers = [ 'form-data' => ['Content-Type: multipart/form-data'], 'json' => ['Content-Type: application/json'], ]; // 设置URL和相应的选项 curl_setopt($ch, CURLOPT_URL, $curl); //要访问的网站 //启用时会将头文件的信息作为数据流输出。 curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers[$type]); //将curl_exec()获取的信息以字符串返回,而不是直接输出。 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); if($https){ //FALSE 禁止 cURL 验证对等证书(peer's certificate)。 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); //验证主机 } if($method == 'POST'){ curl_setopt($ch, CURLOPT_POST, true); //发送 POST 请求 //全部数据使用HTTP协议中的 "POST" 操作来发送。 curl_setopt($ch, CURLOPT_POSTFIELDS, $data); } // 抓取URL并把它传递给浏览器 $content = curl_exec($ch); //关闭cURL资源,并且释放系统资源 curl_close($ch); return $content; }
坚持的力量
wordpress建站,视频剪辑拍摄,动画制作