<?php
/**
* Created by PhpStorm.
* User: Time
* Date: 2020/3/30
* Time: 11:54
*/
namespace App\Http\Controllers\common\zhifubao;
include __DIR__."/aop/AopClient.php";
include __DIR__."./aop/request/AlipaySystemOauthTokenRequest.php";
include __DIR__."./aop/request/AlipayUserInfoShareRequest.php";
use AlipaySystemOauthTokenRequest;
use AlipayUserInfoShareRequest;
use AopClient;
class ali_user_info
{
private static function client()
{
//获取登录client
$client= new AopClient;
$client->gatewayUrl = "https://openapi.alipay.com/gateway.do";
$client->appId = env('ALIPAY_APP_ID');
$client->rsaPrivateKey = env('APP_RSA_PRIVATE_KEY') ;
$client->format = "json";
$client->charset = "GBK";
$client->signType= "RSA2";
$client->alipayrsaPublicKey = env('ALIPAY_RSA_PUBLIC_KEY');
return $client;
}
/**
* @dse 登录
* @throws \Exception
*/
public static function access_token($code)
{
//获取access_token
$info_request = new AlipaySystemOauthTokenRequest ();
$info_request->setGrantType("authorization_code");
$info_request->setCode($code);//这里传入 code
$result = self::client()->execute($info_request);
//验证ali返回code
$array_result = null;
if (array_has($result,'alipay_system_oauth_token_response')){
$array_result = $result->alipay_system_oauth_token_response;
}
//验证返回的user_id 和 access_token
$user_id = null;
$access_token = null;
$refresh_token = null;
if (array_has($array_result,['user_id','access_token']) )
{
$user_id = $array_result->user_id;
$access_token = $array_result->access_token;
$refresh_token = $array_result->refresh_token;
}
//返回数据
if ($user_id && $access_token)
{
return $access_token;
}
return null;
}
/**
* @des 获取用户信息
* @throws \Exception
*/
public static function user_info($access_token)
{
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.user.userinfo.share
$request= new AlipayUserInfoShareRequest();
//授权类接口执行API调用时需要带上accessToken
$response= self::client()->execute($request,$access_token);
if (array_has($response , 'alipay_user_info_share_response')){
return $response->alipay_user_info_share_response;
}
return null;
}
}