转载自:https://blog.csdn.net/wang78699425/article/details/78666401

支付宝 APP登录 获取用户信息 PHP(转)

支付宝APP登录服务端流程如下: 
1、换取授权访问令牌 
2、查询用户信息

APP调用sdk组装授权登录请求(系统交互流程),成功后,支付宝会返回 auth_code,利用此 auth_code 请求 PHP,PHP接收到参数后,先利用 auth_code 获取到 授权访问令牌 access_token(接口文档),再根据 access_token 来获取用户信息(接口文档)。

具体代码如下:

try {
$code = trim($_POST['auth_code']);
if (empty($code)) {
throw new Exception('缺少参数', 0);
} //获取access_token
$aop = new AopClient ();
$aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
$aop->appId = $alipay_config['app_id'];
$aop->rsaPrivateKey = trim($alipay_config['application_private']);
$aop->format = 'json';
$aop->charset = 'UTF-8';
$aop->signType = 'RSA2';
$aop->alipayrsaPublicKey = trim($alipay_config['alipay_public']);
$aop->apiVersion = '1.0';
$request = new AlipaySystemOauthTokenRequest();
$request->setGrantType("authorization_code");
$request->setCode($code); $result = $aop->execute($request);
$responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
$resultData = (array) $result->$responseNode;
if (empty($resultData['access_token'])) {
throw new Exception('获取access_token失败', 0);
}
//获取用户信息
$request = new AlipayUserInfoShareRequest ();
$result = $aop->execute ( $request , $resultData['access_token'] );
$responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
$userData = (array) $result->$responseNode;
if (empty($userData['code']) || $userData['code'] != 10000) {
throw new Exception('获取用户信息失败', 0);
}
/**
* user_id 支付宝用户的userId
* avatar 用户头像地址
* province 省份名称
* city 市名称。
* nick_name 用户昵称
* is_student_certified 是否是学生
* user_type 用户类型(1/2) 1代表公司账户2代表个人账户
* user_status 用户状态(Q/T/B/W)。 Q代表快速注册用户 T代表已认证用户 B代表被冻结账户 W代表已注册,未激活的账户
* is_certified 是否通过实名认证。T是通过 F是没有实名认证。
* gender 性别(F:女性;M:男性)。
*
*/ //业务逻辑 echo json_encode(['code' => 1, 'msg' => '登录成功']);
exit;
} catch (Exception $exception) {
echo json_encode(['code' => $exception->getCode(), 'msg' => $exception->getMessage()]);
exit;
}

支付宝 APP登录 获取用户信息 PHP(转)的更多相关文章

  1. app支付宝授权登录获取用户信息

    由后台进行地址的拼接(前台进行授权) // 生成授权的参数 String sign = ""; Long userId1 = SecurityUser.getUserId(); S ...

  2. Android之QQ授权登录获取用户信息

    有时候我们开发的app须要方便用户简单登录.能够让用户使用自己的qq.微信.微博登录到我们自己开发的app. 今天就在这里总结一下怎样在自己的app中集成QQ授权登录获取用户信息的功能. 首先我们打开 ...

  3. Thinkcmf对接支付宝支付和获取用户信息

    一.         登录支付宝开放平台 平台地址:https://open.alipay.com/ 二.         创建应用并申请上线 登录后,[进入我的开放平台],依次点击[开发者中心]-& ...

  4. 微信第三方登陆,无需注册一键登录,获取用户信息,PHP实现方法

    今天讲讲利用微信oauth2实现第三方登陆的实现方法. 先说说前提吧! 首先你得是服务号,并且是经过认证的.这样微信会给你很多第三方接口的权限,如果是订阅号或者没有认证的服务号那就不用想了! 一开始你 ...

  5. Laravel wxxcx 微信小程序获取用户信息

    wxxcx 是Laravel5微信小程序登录获取用户信息扩展 部署 12345678 # 安装$ composer require iwanli/wxxcx# 注册服务# 在 /config/app. ...

  6. 小程序登录&授权&获取用户信息

    一 .登录 时序图如下: wx.login() 获取js_code 示例代码: App({   onLaunch: function() {     wx.login({       success: ...

  7. C# 脚本代码自动登录淘宝获取用户信息

    C# 脚本代码自动登录淘宝获取用户信息   最近遇到的一个需求是如何让程序自动登录淘宝, 获取用户名称等信息. 其实这个利用SS (SpiderStudio的简称) 实现起来非常简单. 十数行代码就可 ...

  8. SharePoint 2013 APP 开发示例 (二)获取用户信息

    SharePoint 2013 APP 开发示例 (二)获取用户信息 这个示例里,我们将演示如何获取用户信息: 1. 打开 Visual Studio 2012. 2. 创建一个新的  SharePo ...

  9. 微信小程序维护登录态与获取用户信息

    前言. 微信小程序的运行环境不是在浏览器下运行的.所以不能以cookie来维护登录态.下面我就来说说我根据官方给出的方法来写出的维护登录态的方法吧. 一.登录态维护 官方的文档地址:https://m ...

  10. 小程序app.onLaunch中获取用户信息,index.onLoad初次载入时取不到值的问题

    问题描述: //app.js App({ globalData:{ nickname:'' }, onLaunch: function () { let that=this; //假设已经授权成功 w ...

随机推荐

  1. ComfyUI插件:ComfyUI Impact 节点(一)

    前言: 学习ComfyUI是一场持久战,而 ComfyUI Impact 是一个庞大的模块节点库,内置许多非常实用且强大的功能节点 ,例如检测器.细节强化器.预览桥.通配符.Hook.图片发送器.图片 ...

  2. 【Mybatis-Plus】制作逆向工具

    官方文档可参考: https://baomidou.com/pages/779a6e/#快速入门 工具需要的依赖 <?xml version="1.0"?> <p ...

  3. 个人的谷歌学术主页:https://scholar.google.co.kr/citations?user=jHvm-VAAAAAJ&hl=en

    主页地址: https://scholar.google.co.kr/citations?user=jHvm-VAAAAAJ&hl=en

  4. 数值优化算法-BFGS

    参考: https://www.cnblogs.com/Leo_wl/p/3367323.html 牛顿法: 使用牛顿法优化函数 f(θ) 最小值时,每次计算获得新的\(θ\)值,即\(θ_{k+1} ...

  5. 浪潮计算平台之AI方向——AI_Station开发环境的使用总结

    概览: 1.   开发环境 使用默认的设置,不改挂载路径: 可以看到在容器内对挂载的目录进行文件操作是可以真实记录到实际的文件目录内的. 对挂载路径的另一种设置: 不使用默认的设置,手动更改挂载路径: ...

  6. Centos7安装mysql8.0教程

    1.背景 centos7安装mysql8.0 2.安装步骤 步骤一:安装准备工作 1.查看是否有安装过mysql rpm -qa | grep -i mysql 2.删除mysql yum -y re ...

  7. Navicat 导入sql文件执行失败问题的处理

    之前有很多次用Navicat执行导出的sql文件,跑着跑着就批量报错,有的报错能看懂,有的报错压根就找不到,很长的记录中翻也不好翻. 现在用命令行执行的话,还是挺好使. 1进入mysql安装路径下的b ...

  8. [学习笔记] 树链剖分(重链剖分) - 图论 & 数据结构

    树链剖分 树链剖分,用于解决一系列的树中链上问题的算法(数据结构).其实对于树链修改和树链求和问题可以使用更加方便的树上差分解决,但是对于像求树链最大(小)权值之类的更复杂的问题,差分就显得不够用了. ...

  9. SMU Summer 2023 Contest Round 13

    SMU Summer 2023 Contest Round 13 A. Review Site 我们总是可以把差评放到另一个服务器,好评和中立放另一个,这样最多投票数就是好评与中立数 #include ...

  10. shell脚本中exit命令

    shell脚本中exit命令使用千次阅读 2020-09-30 10:19:54 exit命令用于退出当前shell,在shell脚本中可以终止当前脚本执行. $ exit --help exit: ...