如何使用沙箱测试用户信息授权(php版)

简介: 说明:   用户信息授权主要是为了获取支付宝用户ID(USER_ID)、授权令牌(access_token),便于开发者处理自身业务逻   辑的时候使用。   测试环境:Apache2.4.23 +php 5.

说明: 
  用户信息授权主要是为了获取支付宝用户ID(USER_ID)、授权令牌(access_token),便于开发者处理自身业务逻 
  辑的时候使用。 
  测试环境:Apache2.4.23 +php 5.6.25 
  开发文档地址:【查看】 
  服务端SDK地址:【下载】 
  如何判断自己使用的接口需要签约:[url]https://openclub.alipay.com/read.php?tid=1793&fid=46[/url]

支持授权方式: 
  PC端授权和H5授权页面授权(H5只支持在使用支付宝钱包进行授权) 

参数解读: 
  1.scope说明:[url]https://openclub.alipay.com/read.php?tid=1795&fid=43[/url]
  2.redirect_uri说明: 
    1)URLENCODE转义 的url链接(url必须以http或者https开头) 
    2)授权回调地址,一定要配置(如下图)的值 

测试流程: 
  1.用户信息授权URL拼接 
   注意:正式环境请修改网关去掉链接中的dev 

[url]https://openauth.alipaydev.com/oauth2/publicAppAuthorize.htm?app_id=[/url]填写沙箱的appid&scope=auth_user&redirect_uri=填写授权回调地址

  2.获取auth_code 
    1)访问浏览器访问拼接授权URL 

    2)选择授权 

    3)授权成功跳转回调页面,查看授权地址栏返回信息获取auth_code,选择复制 

    注意: 
      auth_code:临时授权码,一次性有效,同时若超过有效期未使用,则会失效。 
      有效期目前至少为5分钟,最长为24小时。 
     4)放到如下代码中(使用auth_code换取接口access_token及用户userId): 
    

<?php
//第一步拼接授权链接.注意scope=auth_user的值一定要为auth_user 传别的值会报错无效授权令牌
//https://openauth.alipaydev.com/oauth2/publicAppAuthorize.htm?app_id=2016072800109035&scope=auth_user&redirect_uri=https%3A%2F%2Fwww.alipay.com
require_once 'AopSdk.php';
$aop = new AopClient();
$aop->appId = '填写你的沙箱appid';
$aop->rsaPrivateKey = '填写您的原始私钥';
$aop->alipayrsaPublicKey='填写您的支付宝公钥';
$aop->gatewayUrl = 'https://openapi.alipaydev.com/gateway.do';
$aop->apiVersion = '1.0';
$aop->postCharset='utf-8';
$aop->format='json';
$aop->signType = 'RSA2';
//第二步使用auth_code换取接口access_token及用户userId
$request = new AlipaySystemOauthTokenRequest();
//请求的必传信息
$request->setGrantType("authorization_code");
$request->setCode("4cea6ad64013486db6df44b18828SX77");
$result = $aop->execute($request);
var_dump($result);

  5)请求成功返回 

public 'alipay_system_oauth_token_response' =>
   object(stdClass)[10]
     public 'access_token' => string 'authusrB10494a8d6a77483c94092ff47af20B24' (length=40)
     public 'alipay_user_id' => string '2088102168729244' (length=16)
     public 'expires_in' => int 600
     public 're_expires_in' => int 660
     public 'refresh_token' => string 'authusrB188acaecd9fa478a807087f39f666X24' (length=40)
     public 'user_id' => string '2088102168729244' (length=16)
 public 'sign' => string 'xxxxxxxxxxxxxxxxxxxxxxxx'

至此,用户信息授权流程已结束,如果只想拿到user_id 和access_token(支付宝用户唯一标识符)。 

DEMO分享(
声明:demo仅做参考使用):
download:AlipaySystemOauthToken-UTF-8.zip

有什么问题欢迎在帖子下面追问

目录
相关文章
|
17天前
|
Web App开发 SQL 安全
PHP--DCN沙箱平台实验
PHP--DCN沙箱平台实验
15 2
|
4天前
|
测试技术 PHP 开发工具
php性能监测模块XHProf安装与测试
【10月更文挑战第13天】php性能监测模块XHProf安装与测试
10 0
|
1月前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
35 2
|
1月前
|
设计模式 人工智能 算法
PHP中的设计模式:策略模式的深入解析与实践软件测试中的人工智能革命:提升效率与准确性的新篇章
在PHP开发中,理解并运用设计模式是提升代码质量和可维护性的重要途径。本文聚焦于策略模式(Strategy Pattern),一种行为型设计模式,它允许在运行时选择算法或业务规则。通过本文,我们将深入探讨策略模式的定义、结构、使用场景以及如何在PHP项目中有效地实现和利用策略模式。不同于性能优化等技术性摘要,本文着重于提供对策略模式全面而实用的理解,助力开发者编写出更加灵活和可扩展的应用程序。 本文深入探讨了人工智能在软件测试领域的应用,揭示了其如何显著提高测试过程的效率和准确性。通过实际案例分析,展示了AI技术在自动化测试、缺陷检测及结果分析中的关键作用,并讨论了实施AI测试策略时面临的挑
20 3
|
2月前
|
PHP
【Azure Developer】PHP网站使用AAD授权登录的参考示例
【Azure Developer】PHP网站使用AAD授权登录的参考示例
|
3月前
|
测试技术 PHP 开发者
原生php单元测试示例
通过上面的示例,我们可以看到,即使在缺乏专门测试框架的情况下,使用原生PHP代码进行基本的单元测试也是完全可行的。当然,对于更复杂的项目,利用像PHPUnit这样的专业工具将带来更多的便利和高级功能。不过,理解单元测试的基本概念和能够手工编写测试是每个PHP开发者的宝贵技能。
33 4
|
3月前
|
测试技术 PHP 开发者
原生php单元测试示例
通过上面的示例,我们可以看到,即使在缺乏专门测试框架的情况下,使用原生PHP代码进行基本的单元测试也是完全可行的。当然,对于更复杂的项目,利用像PHPUnit这样的专业工具将带来更多的便利和高级功能。不过,理解单元测试的基本概念和能够手工编写测试是每个PHP开发者的宝贵技能。
20 1
|
3月前
|
数据库
基于PHP+MYSQL开发制作的趣味测试网站源码
基于PHP+MYSQL开发制作的趣味测试网站源码。可在后台提前设置好缘分, 自己手动在数据库里修改数据,数据库里有就会优先查询数据库的信息, 没设置的话第一次查询缘分都是非常好的 95-99,第二次查就比较差 , 所以如果要你女朋友查询你的名字觉得很好 那就得是她第一反应是查和你的缘分, 如果查的是别人,那不好意思,第二个可能是你。
57 3
|
3月前
|
测试技术 PHP 开发者
原生php单元测试示例
通过上面的示例,我们可以看到,即使在缺乏专门测试框架的情况下,使用原生PHP代码进行基本的单元测试也是完全可行的。当然,对于更复杂的项目,利用像PHPUnit这样的专业工具将带来更多的便利和高级功能。不过,理解单元测试的基本概念和能够手工编写测试是每个PHP开发者的宝贵技能。
21 0
|
4月前
|
PHP 数据安全/隐私保护
PHP企业授权管理系统网站源码
PHP企业授权管理系统网站源码 带代理、工单、盗版检测管理等功能
47 2