| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | 
							- <?php
 
- namespace App\Service\Wx;
 
- use Illuminate\Support\Facades\Redis;
 
- class WxService extends Service
 
- {
 
- //    public $appid = 'wx4e1324c600df37a6';
 
- //    public $secret = '72f8c912d462b0f4ff46cbedac0c80bf';
 
-     public $appid = 'wx4e1324c600df37a6';
 
-     public $secret = 'cec65770bf168a57dc8e5a012d4c9537';
 
-     public function getOpenid($code){
 
-         $appid = $this->appid;
 
-         $secret = $this->secret;
 
- //        $code = '0b1tFv100Sm91Q1kko0004vZGu0tFv12';
 
-         $url = 'https://api.weixin.qq.com/sns/jscode2session?appid='.$appid.'&secret='.$secret.'&js_code='.$code.'&grant_type=authorization_code';
 
-         list($status,$res) = $this->wx_return($url);
 
-         if($status) return [true,$res['openid']];
 
-         else return [false,$res];
 
-     }
 
-     public function getToken(){
 
-         $token_key = $this->appid.'_wx_token';
 
-         $token = Redis::get($token_key);
 
-         if(!empty($token)){
 
-             return [true,$token];
 
-         }
 
-         $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$this->appid.'&secret='.$this->secret;
 
-         list($status,$res) = $this->wx_return($url);
 
-         if($status) {
 
-             Redis::setex($token_key,7100,$res['access_token']);
 
-             return [true,$res['access_token']];
 
-         }
 
-         else return [false,$res];
 
-     }
 
-     public function getMobile($code){
 
-         list($status,$token) = $this->getToken();
 
-         $url = 'https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token='.$token;
 
-         $post = [
 
-             'post'=>json_encode([
 
-                 'code' => $code,
 
-             ]),
 
-         ];
 
-         $post['header'][] = "Content-Type:application/json";
 
-         list($status,$res) = $this->wx_return($url,$post);
 
-         if($status) return [true,$res['phone_info']['phoneNumber']];
 
-         else return [false,$res];
 
-     }
 
-     private function wx_return($url,$data=[]){
 
-         $res = $this->curlOpen($url,$data);
 
-         $res = json_decode($res,true);
 
-         if(isset($res['errcode'])&&$res['errcode'] !== 0) return [false,$res['errmsg']];
 
-         return [true,$res];
 
-     }
 
- }
 
 
  |