支付宝 第三方登录 接口调试

<?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;
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值