如何使用沙箱测试用户信息授权(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

目录
相关文章
|
Java 测试技术
Java 中的单元测试和集成测试策略
【4月更文挑战第19天】本文探讨了Java开发中的单元测试和集成测试。单元测试专注于单一类或方法的功能验证,使用测试框架如JUnit,强调独立性、高覆盖率和及时更新测试用例。集成测试则验证模块间交互,通过逐步集成或模拟对象来检测系统整体功能。两者相辅相成,确保软件质量和降低修复成本。
|
5天前
|
前端开发 JavaScript Java
《手把手教你》系列技巧篇(二十五)-java+ selenium自动化测试-FluentWait(详细教程)
【4月更文挑战第17天】其实今天介绍也讲解的也是一种等待的方法,有些童鞋或者小伙伴们会问宏哥,这也是一种等待方法,为什么不在上一篇文章中竹筒倒豆子一股脑的全部说完,反而又在这里单独写了一篇。那是因为这个比较重要,所以宏哥专门为她量身定制了一篇。FluentWait是Selenium中功能强大的一种等待方式,翻译成中文是流畅等待的意思。在介绍FluentWait之前,我们来讨论下为什么需要设置等待,我们前面介绍了隐式等待和显式等待。
28 3
|
7天前
|
Java 测试技术 定位技术
《手把手教你》系列技巧篇(二十三)-java+ selenium自动化测试-webdriver处理浏览器多窗口切换下卷(详细教程)
【4月更文挑战第15天】本文介绍了如何使用Selenium进行浏览器窗口切换以操作不同页面元素。首先,获取浏览器窗口句柄有两种方法:获取所有窗口句柄的集合和获取当前窗口句柄。然后,通过`switchTo().window()`方法切换到目标窗口句柄。在项目实战部分,给出了一个示例,展示了在百度首页、新闻页面和地图页面之间切换并输入文字的操作。最后,文章还探讨了在某些情况下可能出现的问题,并提供了一个简单的本地HTML页面示例来演示窗口切换的正确操作。
29 0
|
8天前
|
安全 Java 数据安全/隐私保护
使用Spring Security进行Java身份验证与授权
【4月更文挑战第16天】Spring Security是Java应用的安全框架,提供认证和授权解决方案。通过添加相关依赖到`pom.xml`,然后配置`SecurityConfig`,如设置用户认证信息和URL访问规则,可以实现应用的安全保护。认证流程包括请求拦截、身份验证、响应生成和访问控制。授权则涉及访问决策管理器,如基于角色的投票。Spring Security为开发者构建安全应用提供了全面且灵活的工具,涵盖OAuth2、CSRF保护等功能。
|
10天前
|
前端开发 JavaScript Java
《手把手教你》系列技巧篇(十九)-java+ selenium自动化测试-元素定位大法之By css下卷(详细教程)
【4月更文挑战第11天】按计划今天宏哥继续讲解css的定位元素的方法。但是今天最后一种宏哥介绍给大家,了解就可以了,因为实际中很少用。
35 2
|
12天前
|
前端开发 JavaScript Java
《手把手教你》系列技巧篇(十八)-java+ selenium自动化测试-元素定位大法之By css中卷(详细教程)
【4月更文挑战第10天】本文主要介绍了CSS定位元素的几种方法,包括ID属性值定位、其他属性值定位和使用属性值的一部分定位。作者提供了示例代码,展示了如何使用这些方法在Java+Selenium自动化测试中定位网页元素。通过CSS选择器,可以更精确地找到页面上的特定元素,如输入框、按钮等,并进行相应的操作,如输入文本、点击等。文章还提供了实际运行代码后的控制台输出和浏览器动作的示例。
48 0
|
13天前
|
前端开发 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代码示例来演示如何在自动化测试中使用这些定位方法。
39 1
|
15天前
|
算法 安全 Java
java代码 实现AES_CMAC 算法测试
该代码实现了一个AES-CMAC算法的简单测试,使用Bouncy Castle作为安全提供者。静态变量K定义了固定密钥。`Aes_Cmac`函数接受密钥和消息,返回AES-CMAC生成的MAC值。在`main`方法中,程序对给定的消息进行AES-CMAC加密,然后模拟接收ECU的加密结果并进行比较。如果两者匹配,输出"验证成功",否则输出"验证失败"。辅助方法包括将字节转为16进制字符串和将16进制字符串转为字节。
|
安全 Java 机器人
Java安全——理解Java沙箱
Java安全——理解Java沙箱 标签: Java 安全 [toc] 什么是沙箱^1 Java安全模型的核心就是Java沙箱(sandbox),什么是沙箱?沙箱是一个限制程序运行的环境。限制程序运行一方面是为了保护系统资源,同时另一方面也为了保护程序自己。沙箱主要限制系统资源访问,那系统
10934 0
|
1天前
|
安全 Java 调度
Java线程:深入理解与实战应用
Java线程:深入理解与实战应用
9 0