关于支付宝授权用户信息

news2025/7/20 17:13:30

最近做的一个项目授权支付宝信息 进行报名支付

以下是流程

1、一个首先引进阿里相关配置信息

 2、因为我这边项目是支持 小程序、H5、支付宝  登录 报名的,我这边只展示支付宝代码哦

  对啦 微信不同应用下   unionid  是一样的,所以可以将小程序/H5下的视为同一用户,好啦 接下来说说支付宝吧

3、

 elseif ($data['type'] == ActivityUser::TYPE_ALI) {
    list($res1, $info1) = $this->getALIToken($data['code']);
    if ($res1) {
        list($tres, $info) = $this->getALIUserInfo($info1);
        if ($tres) {
            $info['am_id'] = $data['am_id'];
        }
    }

4、

 public function getALIToken($code)
    {
        //用到其他配置时候自加命名空间
        $this->ali = new AopClient ();
        $this->ali->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
        $this->ali->appId = env('YUDAO_APP_GZH_ALIAPPID');
        $this->ali->rsaPrivateKey = env('YUDAO_APP_GZH_ALIPRI');
        $this->ali->alipayrsaPublicKey = env('YUDAO_APP_GZH_ALIPUB');
        $this->ali->apiVersion = '1.0';
        $this->ali->signType = 'RSA2';
        $this->ali->postCharset = 'UTF-8';
        $this->ali->format = 'json';

        $request = new AlipaySystemOauthTokenRequest();
        $request->setGrantType("authorization_code");
        $request->setCode($code);
        $result = $this->ali->execute($request);

        if (empty($result->alipay_system_oauth_token_response) || empty($result->alipay_system_oauth_token_response->alipay_user_id)) {
            Log::info('ali_gettoken_error', [$result]);
            return [false, ''];
        } else {
            return [true, $result->alipay_system_oauth_token_response->access_token];
        }
    }


    public function getALIUserInfo($accessToken)
    {
        $this->ali = new AopClient ();
        $this->ali->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
        $this->ali->appId = env('YUDAO_APP_GZH_ALIAPPID');
        $this->ali->rsaPrivateKey = env('YUDAO_APP_GZH_ALIPRI');  //私钥 
        $this->ali->alipayrsaPublicKey = env('YUDAO_APP_GZH_ALIPUB');   //支付宝公钥
        $this->ali->apiVersion = '1.0';
        $this->ali->signType = 'RSA2';
        $this->ali->postCharset = 'UTF-8';
        $this->ali->format = 'json';
        $request = new AlipayUserInfoShareRequest();
        $result = $this->ali->execute($request, $accessToken);

        $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
        if (empty($result->$responseNode->code) || $result->$responseNode->code != 10000) {
            Log::info('ali_getinfo_error', [$result]);
            return [false, ''];
        }
        $response = $result->$responseNode;
//        ["[object] (stdClass: {\"code\":\"10000\",\"msg\":\"Success\",\"avatar\":\"https://tfs.alipayobjects.com/images/partner/XXXXXXXX\",\
//        "city\":\"上海市\",\"gender\":\"m\",\"nick_name\":\"豪\",\"province\":\"上海\",\"user_id\":\"208870243-------\"})"]

        $data['openid'] = $response->user_id;
        $data['headimgurl'] = $response->avatar ?? '';
        $data['nickname'] = $response->nick_name ?? '';
        $data['sex'] = isset($response->gender) ? ($response->gender == 'm' ? 1 : ($response->gender == 'f' ? 2 : 0)) : 0;
        $data['type'] = ActivityUser::TYPE_ALI;
        $data['country'] = '';
        $data['province'] = $response->province ?? '';
        $data['city'] = $response->city ?? '';

        return [true, $data];
    }

对啦获取用户信息,一定要在支付宝应用平台签约 获取会员信息功能,还有这个新申请的支付宝应用一定是  审核通过了  已经上线的,否则会报没有权限之类的错误。

通过以上方法就可以获取到 支付宝的信息,接下来就进行相关业务处理入库就好

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/17225.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

UE引擎的UWorld是什么,UWorld与GWorld的关系

UE引擎的UWorld是什么,UWorld与GWorld的关系 UWorld有一些关于游戏的重要信息,比如(PersistentLevel,NetDriver,GameState),没有它,你不能做你想做的大部分事情。 GWorld是个全局指…

m无线通信的调制解调过程的matlab仿真,包括ASK,FSK,PSK

目录 1.算法概述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法概述 传输模拟信号时一样,传输数字信号时也有三种基本的调制方式:幅移键控(ASK)、频移键控(FSK)和相移键控(PSK)。它们分别对应于用载波(正弦波&#xff09…

react-router-dom v6的几个方法

Router是React-Router导航命令的传递者,作为React应用的顶层组件,为应用提供组件化的路由响应能力,如果没有引入Router组件,那么任何路由调整都不会生效。根据接收外部的history对象的不同来提供不同的功能: 如果接收的是browserHistory,得到的BrowserRouter,叫做浏览器…

Linux之Shell编程快速上手

Shell编程快速上手一、Shell编程基础1.1 Shell脚本程序1.2 创建Shell脚本二、Shell的语法2.1Shell的变量2.2 设置环境变量2.3 位置参数变量2.4预定义变量一、Shell编程基础 在linux系统中,shell不仅能够执行命令(启动、挂起、停止甚至编写一些程序),还可…

工业无线呼叫安灯(Andon)系统上线须知

在很多现代化生产制造企业内,工业无线呼叫安灯(Andon)系统是一个非常重要的管理系统。安灯系统本质上是发现问题及时将问题传递给相关人员,将问题阻止在最初的地方并及时解决问题。安灯系统是一种提高制造质量和生产效率的最有效手…

重建恐龙化石,摄影测量在古生物学中有怎样的意义?

一直以来,恐龙都是很多人喜欢的对象,各种恐龙主题的影视作品也是层出不穷,特别是《侏罗纪公园》系列电影,将恐龙推上了电影明星的位置。各种收藏恐龙巨型化石的博物馆也相当受欢迎。 随着三维重建的普及,建模打印和恐龙…

http请求和响应格式说明,http的get和post请求方式说明,http的请求体body的几种数据格式

HTTP内容说明 请求报文 一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成, 请求报文的一般格式 <request-line> <headers> &am…

Firefly RK3399 PC pro开发板资料

一. 基本介绍 产品介绍:Firefly | 让科技更简单,让生活更智能开发板规格书:https://download.t-firefly.com/product/Board/RK3399/Document/Hardware/ROC-RK3399-PC%20Pro/Specification/ROC-RK3399-PC%20Pro%20%E4%BA%A7%E5%93%81%E8%A7%84…

AES实现接口的安全性

文章目录Maven项目结构图引入依赖AESUtilsEnDecryptUtilEncryptPropertiesEncryptAutoConfigurationspring.factories打成jar包,供其他项目 / 人使用打成jar 包导入 jar 包测试application.yamlUser类HelloController 测试代码地址: 链接:htt…

深入理解java虚拟机:类文件结构(1)

文章目录1. 概述2. Class类文件的结构2.1 魔数与Class文件的版本2.2 常量池2.3 访问标志2.4 类索引、父类索引与接口索引集合2.5 字段表集合1. 概述 如果计算机的CPU指令集就只有x86一种,操作系统就只有Windows一种,那也许就不会有Java语言的出现。Java…

云原生:容器与微服务

目录 一、虚拟化与容器 1.1 虚拟机 1.2 容器 1.3 Docker 1.4 Docker代码示例 二、微服务 2.1 微服务的概念 2.2 微服务的特点 三、为什么使用微服务 3.1 微服务的优缺点 3.2 云原生的支持服务 云原生技术使组织能够在新式动态环境(如公有云、私有云和混…

攻防世界-pwnCTFM-Off_By_one漏洞与Tcachebin绕过

攻防世界-pwnCTFM-Off_By_one漏洞与Tcachebin绕过 保护机制 healerhealer-virtual-machine:~/Desktop/pwnCTFM/attachments$ checksec pwn [*] /home/healer/Desktop/pwnCTFM/attachments/pwnArch: amd64-64-littleRELRO: Full RELROStack: Canary foundNX: …

线性判别分析(机器学习)

目录 线性判别分析的原理 LDA的降维过程如下 线性判别分析(LDA) 是一种有监督的线性降维算法。 与PCA不同,LDA是为了使降维后的数据点尽可能地容易被区分 线性判别分析的原理 线性判别分析是对于给定的训练集,设法将样本投影到…

基于HTML+CSS+JavaScript+Bootstarp响应式健身网站(web前端期末大作业)

网站题目> 🏀校园篮球网页设计、⚽足球体育运动、🤽体育游泳运动、🏓兵乓球 、🎾网球、等网站的设计与制作。 二、✍️网站描述> 🏷️ 大学生校园运动静态HTML网页设计作品,采用DIV CSS布局制作&am…

数据结构体进阶链表【带头双向循环链表,单向链表的优化,从根部解决了顺序表的缺点】一文带你深入理解链表

前言: 对于链表,上一篇的单链表解决了顺序表的一部分缺陷,但并没有彻底的解决顺序表的问题,比如在进行单链表尾插尾删的时候还是需要进行遍历找尾,并没有达到全部的O(1),并且在头插的时候还要分情况来考虑&…

【ASM】字节码操作 工具类与常用类 AdviceAdapter 介绍 打印方法进入 和 方法退出 的参数

文章目录 1.概述2. AdviceAdapter类2.1 class info2.2 fields2.3 constructors2. 4 methods2.案例2.1 打印方法参数3.总结1.概述 在上一篇文章:【ASM】字节码操作 工具类与常用类 Printer、ASMifier、Textifier 介绍 我们简单的介绍了 Printer、ASMifier、Textifier 三个类的…

idea2021版本创建一个javaweb项目(含额外知识--添加tomcat相关jar包)

前言: 建立一个javaweb项目需要用到JDK、idea、Tomcat 1. JDK是11版本的 2.IDEA是2021版本的 3.Tomcat是8.5版本的 这些下载在我的其他文章里面也有讲到下载和应用,大致都是殊途同归的 一、打开ided,按照以下步骤点击创建一个工程项目…

X11 Xlib截屏代码所遇问题及初步分析

综合了两篇博客中的例程并做一定修改&#xff0c;得到了基于X11 Xlib的截屏代码。 两篇博客链接分别如下&#xff1a; X11 截图与鼠标事件-SkyMei777-ChinaUnix博客 xlib实现截图报错-编程语言-CSDN问答 C代码如下&#xff1a; #include <stdio.h> #include <std…

[附源码]SSM计算机毕业设计自治小区物业设备维护管理系统JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

TK选品技巧 | 听说TikTok畅销品都是这样来的

9月16日消息&#xff0c;TikTok Shop发布东南亚99大促战报&#xff0c;此次战报数据包含了马来西亚、新加坡、菲律宾、越南和泰国五国销售数据&#xff0c;战报显示&#xff0c;此次东南亚99大促总GMV增幅达156%&#xff0c;总live GPM增幅达130%&#xff0c;订单量增幅达128%&…