thinkphp3.2 支付宝生活号获取用户信息

1.  登录支付宝开放平台(蚂蚁金服开放平台)。https://open.alipay.com/  
  2.   进入开发者中心,创建应用,并申请应用上线。   
 3.   签约-获取会员信息功能。   
 4.   设置 授权回调路径 和 接口加签方式(选择RSA2(SHA256)密钥)         密钥 生成 需要下载支付宝提供的生成工具。        下载工具链接 : https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7386797.0.0.iZGFov&treeId=291&articleId=105971&docType=1                选择2048,生成后绑定到支付宝开发中心。 
   5.   下载支付宝SDK    https://doc.open.alipay.com/doc2/detail?treeId=54&articleId=103419&docType=1   
 6.   获取code。
<?php
namespace Admin\Controller;
use Think\Controller;
class AliclubController extends  Controller {  

     public  function  index(){
        
        $appid ='生活号应用的appid';
         $url='**************';
        $redirect_uri = urlencode($url);
        //静默状态scope就用auth_base  用户感知就用 auth_user
        $url ='https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id='.$appid.'&scope=auth_base&redirect_uri='.$redirect_uri;

        header("Location:".$url);
     }
      
     //支付宝跳转
    public  function   receive(){
    
    header("Content-type:text/html;charset=utf-8");
     //引入的SDK
        vendor('alipayclub.AopSdk');
       vendor('alipayclub.aop.AopClient');
       vendor('alipayclub.aop.request.AlipaySystemOauthTokenRequest');
       vendor('alipayclub.aop.request.AlipayUserUserinfoShareRequest');

       $code = $_GET['auth_code'];
   
      //APPID 
      $appid = $_GET['appid'];

      //私钥  文件名(rsa_private_key.pem)
      $rsaPrivateKey = "你的应用私钥";

      //公钥  文件名 (rsa_public_key.pem)
      $alipayrsaPublicKey = "你的支付宝公钥";

      //初始化
      $aop = new \AopClient();
      $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
      $aop->appId = $appid;
      $aop->rsaPrivateKey = $rsaPrivateKey;
      $aop->alipayrsaPublicKey = $alipayrsaPublicKey;
      $aop->apiVersion = '1.0';
      $aop->signType = 'RSA2';
      $aop->postCharset='UTF-8';
      $aop->format='json';

      //获取access_token
      $request = new \AlipaySystemOauthTokenRequest ();
      $request->setGrantType("authorization_code");
      $request->setCode($code);//这里传入 code
      $result = $aop->execute($request);
      $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
      var_dump($result);exit;//静默状态下,到此就可以结束了
      $access_token = $result->$responseNode->access_token;
   
      //获取用户信息
      $request_a = new \AlipayUserUserinfoShareRequest();
      $result_a = $aop->execute ($request_a,$access_token); //这里传入获取的access_token
      $responseNode_a = str_replace(".", "_", $request_a->getApiMethodName()) . "_response";
      var_dump($result_a);
      $user_id = $result_a->$responseNode_a->user_id;   //用户唯一id
      //var_dump($user_id);
      $headimgurl = $result_a->$responseNode_a->avatar;   //用户头像
      $nick_name = $result_a->$responseNode_a->nick_name;    //用户昵称
    }
}

猜你喜欢

转载自blog.csdn.net/wyj1122/article/details/80893782