第一步需要将支付宝SDK下载放在vendor,并且重命名为“Alipay”

下一步直接上代码:

   /*** 获取协议* @return type*/public function get_http_type(){$http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://';return $http_type;}/*** 支付宝授权登录*/public function aliLogin(){//根据自己的项目获取支付宝对应的参数应用的APPID,应用私钥,支付宝公钥$item = db('setting')->where('id',1)->find();$item = json_decode($item['data'],true);$app_id = $item['app_id'];//应用的APPID$rsaPrivateKey = $item['private_key'];//应用私钥$alipayrsaPublicKey = $item['public_key'];//支付宝公钥//Step2: 使用auth_code换取apauth_tokenif(isset($_REQUEST["state"])){$auth_code = $_REQUEST["auth_code"];//存放auth_codevendor("Alipay.AopClient"); //引入sdk$aop = new \AopClient();$aop->gatewayUrl="https://openapi.alipay.com/gateway.do";$aop->appId=$app_id;$aop->rsaPrivateKey=$rsaPrivateKey;$aop->alipayrsaPublicKey=$alipayrsaPublicKey;$aop->apiVersion='1.0';$aop->signType='RSA2';$aop->postCharset='utf-8';$aop->format='json';//根据返回的auth_code换取access_tokenvendor("Alipay.request.AlipaySystemOauthTokenRequest");$request = new \AlipaySystemOauthTokenRequest();$request->setGrantType("authorization_code");$request->setCode($auth_code);$result = $aop->execute($request);$access_token = $result->alipay_system_oauth_token_response->access_token;//Step3: 用access_token获取用户信息vendor("Alipay.request.AlipayUserInfoShareRequest");//调用sdk里面的AlipayUserInfoShareRequest类$request = new \AlipayUserInfoShareRequest();$result = $aop->execute ( $request, $access_token);$responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";$resultCode = $result->$responseNode->code;if(!empty($resultCode)&&$resultCode == 10000){$user_data = $result->$responseNode;$user_data = json_decode(json_encode($user_data),true);//某个参数可能不存在,需要进行判断,防止报错$member = array("nickname"=>isset($user_data['nick_name'])?$user_data['nick_name']:"","ali_id"=>isset($user_data['user_id'])?$user_data['user_id']:"","gender"=>isset($user_data['nick_namgendere'])&&$user_data["gender"]=="m"?0:1,"avatar"=>isset($user_data['avatar'])?$user_data['avatar']:"","address"=>(isset($user_data['province'])?$user_data["province"]:"").(isset($user_data['city'])?$user_data["city"]:""));$m = Member::getUserInfoByAliID($member["ali_id"]);if(empty($m)){$member['ip']=getIp();$member['salt'] = random(8);$member['invitation_code'] = random(6);$member['create_time'] = TIMESTAMP;$member['pet_jihua'] = date('Ymd');$uid = Member::addInfo($member);$m  = Member::getUserInfoById($uid);}Cookie::set('member',base64_encode($m));header('Location: /home/account.html');} else {header('Location: /home/auth/login.html');}}else{//【成功授权】后的回调地址$my_url = $this->get_http_type().$_SERVER['HTTP_HOST']."/home/auth/aliLogin.html";//Step1:获取auth_code//state参数用于防止CSRF攻击,成功授权后回调时会原样带回//拼接请求授权的URL$url = "https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id={$app_id}&scope=auth_user&redirect_uri={$my_url}&state=init";$url = "alipays://platformapi/startapp?appId=20000067&url=".urlencode($url);return $url;}}

支付宝H5授权登录PHP版本相关推荐

  1. 微信H5授权登录PHP版本

    直接上代码: public function weixinLogin(){$item = db('setting')->where('id',1)->find();$item = json ...

  2. redirect_uri 参数错误 公众号H5授权登录原理

    redirect_uri 参数错误,这个错误请检查网页授权,大部分是回调的授权域名配置问题 公众号H5授权登录 在微信公众号里获取微信用户信息分两种方式 注意:以下所有操作,都需要再公众号配置网页授权 ...

  3. 【微信公众号H5授权登录】

    微信公众号H5授权登录 废话不多,直接上代码(这里只写代码的实现) 废话不多,直接上代码(这里只写代码的实现) 页面进来判断微信环境 onShow() {//设置初始值为false,微信环境下才能打开 ...

  4. java支付宝网页授权登录界面_支付宝开发平台之第三方授权登录与获取用户信息...

    对于第三方登录,我们常见了,很多应用可以进行第三方登录,我常用的有:QQ.微信.新浪.支付宝等等,今天我们就一起来简单学习一下支付宝第三方授权登录. 打开支付宝开发平台,注册成为开发者,点击开发者中心 ...

  5. java微信H5授权登录

    微信h5页面的授权登录,首先你要申请一个测试公众号 微信公众平台 在配置里的网页服务-网页账号输入自己的ip地址+端口,如127.0.0.1:8080 第一步:前端拉起授权,用户同意,获取code,前 ...

  6. 前后端分离后解决微信授权跨域、微信H5授权登录跨域的问题解决

    前言: 我们之前做的微信授权登录流程是: 1.第一步:用同意授权,并获取code 2.第二步:通过code换取网页授权access_token 3.第三步:刷新access_token(如果需要) 4 ...

  7. java支付宝网页授权登录界面_网页版的支付宝授权登录(vue+java)

    api接口文档:https://docs.open.alipay.com/289/105656 后台管理系统原本是用账号密码登录的,不过需求要改成支付宝授权, 前端仅仅需要改登录页,以及添加一个授权返 ...

  8. qq授权登录【网站应用】-java版本

    第一步:先去qq互联进行创建网站应用:QQ互联 如下图: 第二步:引入qq的jar包,这里采用maven方式引用 <!--QQ坐标--><dependency><grou ...

  9. 微信授权登录(H5为例)

    导入依赖: com.auth0 java-jwt 3.4.0 登录类: package com.beagledata.gaea.securitydoc.controller; import com.a ...

最新文章

  1. 广东2021高考成绩查询6,2021全国高考6月10日全部结束 预计最快6月23日可查高考成绩...
  2. python编程从入门到精通pdf-终于晓得python编程从入门到精通
  3. 确保***测试计划成功的10个秘诀(语录)
  4. 蓝懿IOS学习UICollectionView实战轮播图
  5. java -jar 和 java -cp用法
  6. 红心大战c语言程序设计教程课后答案,[原创]Windows 红心大战随机发牌程序分析...
  7. thymeleaf比较符号问题
  8. 怎样对待一个延期的项目
  9. 用Html5制作的一款数学教学程序Function Graphics(绘制函数图的程序)
  10. 联想17TV语音遥控教程 语音点播更方便
  11. apache cxf 测试webservice接口
  12. 查询硬盘序列号(serialNumber),系统安装日期等
  13. Reportlab生成图文并茂的pdf报告
  14. Java实现多元t分布函数(Multivariate t distributions)
  15. pynq z1+ov5640
  16. 谈谈登录注册的如何实现
  17. 工兵扛军旗游戏新玩法
  18. 瓶子机器人diy制作大全_塑料瓶回收改造成电动机器人玩具
  19. dfema规则_六步搞定DFMEA表格
  20. 明天是程序员节,程序员的过节姿势大全抢先看

热门文章

  1. Cloneable接口
  2. GDI和CDC是什么
  3. 社会网络中的心理学-----社交焦虑症
  4. Linux 内存管理 —— 高端内存
  5. Hexo+Github博客:新建菜单,并在该菜单内添加单篇/多篇文章
  6. Edge收藏夹的导出导入
  7. vue 项目打包通过命令修改 vue-router 模式,修改 API 接口前缀
  8. 考研初试总分不过线可以申请“破格复试”!
  9. 植树节小报word手抄报模板来啦
  10. 华清远见-重庆中心-JAVA前端JavaScript阶段技术总结