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

简介: 说明:  本帖是利用支付宝沙箱测试获取会员信息接口,demo中会配置个人的沙箱账号信息,方便大家测试。  测试环境:JAVA1.6+,eclipse  接口文档:【查看】  沙箱环境测试改正式环境测试请修改网关为下方值 正式环境网关:[url]https://openapi.


说明: 
 本帖是利用支付宝沙箱测试获取会员信息接口,demo中会配置个人的沙箱账号信息,方便大家测试。 
 测试环境:JAVA1.6+,eclipse 
 接口文档:【查看】 
 沙箱环境测试改正式环境测试请修改网关为下方值 

正式环境网关:[url]https://openapi.alipay.com/gateway.do[/url]

demo示例代码下载:download:获取会员信息demo.zip 

测试流程(声明:demo仅做参考使用): 

1.生成应用,配置密钥可参考该文档:
[url]https://read.php?tid=1606&fid=25[/url] 


2.正式环境URL拼接规则:[url]https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=APPID&scope=SCOPE&redirect_uri=ENCODED_URL[/url] 


a). redirect_uri :在你创建的应用中进行查看,授权回调地址是自己配置自己所想要访问的地址, 


   将授权回调地址encode方能进行使用; 
      如: 
           授权回调地址为:[url]https://www.baidu.com/[/url] 
           则redirect_uri内容为:https%3A%2F%2Fwww.baidu.com%2F 

b).关于scope的说明可参考该贴:[url]https://read.php?tid=1795&fid=43[/url] 


以下是我以沙箱为例拼接的url: 

[url]https://openauth.alipaydev.com/oauth2/publicAppAuthorize.htm?app_id=2016101800718925&scope=auth_user[/url],auth_base&redirect_uri=https%3A%2F%2Fwww.baidu.com%2F

3.将拼接好的url进行访问授权获取auth_code 




注:每次用户授权完成,回调地址中的auth_code将不一样,auth_code只能使用一次,一天未被使用自动过期。

4.将auth_code放入code中,使用auth_code换取接口access_token及用户userId 

package com.alipay.demo;   import com.alipay.api.AlipayApiException;import com.alipay.api.AlipayClient;import com.alipay.api.DefaultAlipayClient;import com.alipay.api.request.AlipaySystemOauthTokenRequest;import com.alipay.api.response.AlipaySystemOauthTokenResponse;import com.alipay.config.AlipayConfig;   /** * alipay.system.oauth.token(换取授权访问令牌) * 参考文档:[url]https://docs.open.alipay.com/api_9/alipay.system.oauth.token[/url] * @author wb-wly251833 * */public class alipaySystemOauthToken {           public static void main(String[] args) throws AlipayApiException {        AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, AlipayConfig.format, AlipayConfig.charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type);        AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();        //值为authorization_code时,代表用code换取;值为refresh_token时,代表用refresh_token换取        request.setGrantType("authorization_code");        //授权码,用户对应用授权后得到。        request.setCode("b5300073ee7c4dae8b00e060d161UC75");        //刷新令牌,上次换取访问令牌时得到,即:AccessToken        //request.setRefreshToken("43e3bee07f354cc5a7780446412bSX75");        try {            AlipaySystemOauthTokenResponse oauthTokenResponse = alipayClient.execute(request);            //访问令牌。通过该令牌调用需要授权类接口            System.out.println("访问令牌AccessToken:"+oauthTokenResponse.getAccessToken());            System.out.println(oauthTokenResponse.getBody());                       } catch (AlipayApiException e) {            //处理异常            e.printStackTrace();        }    }}

运行结果: 

访问令牌AccessToken:composeB9de83fb7e93f4c5ea985113c774d5X75{"alipay_system_oauth_token_response":{"access_token":"composeB9de83fb7e93f4c5ea985113c774d5X75","alipay_user_id":"2088102169462753","expires_in":600,"re_expires_in":660,"refresh_token":"composeBab117bfd2a85430d8f08906843d97X75","user_id":"2088102169462753"},"sign":"Rz9D2c0frNntC7mORRlJUHXC2p5m0gGHKVRxbsbcfH/kyma14GflU6qkSXfBw0I3pkukCMNUwJ2tU1ZnLilBescQC9W0JCwU13e8aORCesljVk70NdGzCX9Ui9avMQYaVAsqqMq5iUiZjy5u4Y8dW0Of9ldfyLeDI6PxyHZvhQK86U82B86mS81/TnitgVDyiCUlHjYtySfNruljInb3BJb8ejm/nW1tF7F2ZeAb/eKiv4YwiI72znyIA5WIqeyvSLqUA10xrOPjgWCO4rL/bWDcOSU4zqjQ8HsBvOLBfbwzA7V4Q2fM4Em17Kn8D6jIP+DzkHXKfuNAfFXsPSDrcA=="}

cope=auth_base,到这一步就可以获取到用户的userId

目录
相关文章
|
29天前
|
Java 计算机视觉
java实现人脸识别源码【含测试效果图】——前台页面层(login.jsp)
java实现人脸识别源码【含测试效果图】——前台页面层(login.jsp)
12 0
|
16天前
|
Web App开发 前端开发 Java
《手把手教你》系列技巧篇(九)-java+ selenium自动化测试-元素定位大法之By name(详细教程)
【4月更文挑战第1天】 这篇教程介绍了如何使用Selenium Webdriver通过name属性来定位网页元素,作为系列教程的一部分,之前讲解了id定位,后续还会有其他六种定位方法。文中以百度搜索为例,详细说明了定位搜索框(name="wd")并输入关键词“北京宏哥”的步骤,包括手动操作流程、编写自动化脚本以及代码实现。此外,还提供了查看和理解Selenium源码的方法,强调了`open implementation`选项用于查看方法的具体实现。整个过程旨在帮助读者学习Selenium的元素定位,并实践自动化测试。
37 0
|
28天前
|
Web App开发 存储 JavaScript
《手把手教你》系列技巧篇(八)-java+ selenium自动化测试-元素定位大法之By id(详细教程)
【2月更文挑战第17天】本文介绍了Web自动化测试的核心——元素定位。文章首先强调了定位元素的重要性,指出找不到元素则无法进行后续操作。Selenium提供八种定位方法,包括By id、name、class name等。其中,By id是最简单快捷的方式。文章还阐述了自动化测试的步骤:定位元素、操作元素、验证结果和记录测试结果。此外,讨论了如何选择定位方法,推荐优先使用简单稳定的方式,如id,其次考虑其他方法。最后,作者提供了Chrome浏览器的开发者工具作为定位元素的工具,并给出了通过id定位的代码示例。
49 0
|
11天前
|
前端开发 Java 测试技术
《手把手教你》系列技巧篇(十二)-java+ selenium自动化测试-元素定位大法之By link text(详细教程)
【4月更文挑战第4天】本文介绍了link text在自动化测试中的应用。Link text是指网页中链接的文字描述,点击可跳转至其他页面。文章列举了8种常用的定位方法,其中着重讲解了link text定位,并通过实例展示了如何使用Java代码实现点击百度首页的“奥运奖牌榜 最新排名”链接,进入相应页面。如果link text不准确,则无法定位到元素,这说明linkText是精准匹配,而非模糊匹配。文章还提到了partial link text作为link text的模糊匹配版本,将在后续内容中介绍。
35 4
|
9天前
|
Java 测试技术
SpringBoot整合单元测试&&关于SpringBoot单元测试找不到Mapper和Service报java.lang.NullPointerException的错误
SpringBoot整合单元测试&&关于SpringBoot单元测试找不到Mapper和Service报java.lang.NullPointerException的错误
15 0
|
10天前
|
XML 前端开发 Java
《手把手教你》系列技巧篇(十四)-java+ selenium自动化测试-元素定位大法之By xpath上卷(详细教程)
【4月更文挑战第6天】按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath。xpath 的定位方法, 非常强大。使用这种方法几乎可以定位到页面上的任意元素。xpath 是XML Path的简称, 由于HTML文档本身就是一个标准的XML页面,所以我们可以使用Xpath 的用法来定位页面元素。XPath 是XML 和Path的缩写,主要用于xml文档中选择文档中节点。基于XML树状文档结构,XPath语言可以用在整棵树中寻找指定的节点。
41 0
|
2天前
|
安全 Java 数据安全/隐私保护
使用Spring Security进行Java身份验证与授权
【4月更文挑战第16天】Spring Security是Java应用的安全框架,提供认证和授权解决方案。通过添加相关依赖到`pom.xml`,然后配置`SecurityConfig`,如设置用户认证信息和URL访问规则,可以实现应用的安全保护。认证流程包括请求拦截、身份验证、响应生成和访问控制。授权则涉及访问决策管理器,如基于角色的投票。Spring Security为开发者构建安全应用提供了全面且灵活的工具,涵盖OAuth2、CSRF保护等功能。
|
7天前
|
前端开发 JavaScript Java
《手把手教你》系列技巧篇(十七)-java+ selenium自动化测试-元素定位大法之By css上卷(详细教程)
【4月更文挑战第9天】本文介绍了CSS定位方式的使用,包括它的优势和8种常用的定位方法。CSS定位相比XPath定位更快、更稳定。文章通过示例详细讲解了如何使用CSS定位元素,包括通过id、name、class name、tag name、link text、partial link text以及XPath进行定位。还提供了Java代码示例来演示如何在自动化测试中使用这些定位方法。
37 1
|
27天前
|
Java
java面向对象高级分层实例_测试类(main方法所在的类)
java面向对象高级分层实例_测试类(main方法所在的类)
9 1
|
29天前
|
Java 数据库连接 mybatis
mybatis简单案例源码详细【注释全面】——测试层(UserMapperTest.java)
mybatis简单案例源码详细【注释全面】——测试层(UserMapperTest.java)
9 0