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

目录
相关文章
|
25天前
|
Java 测试技术 Maven
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
67 2
|
2月前
|
Java 流计算
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
43 1
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
|
2月前
|
Java 程序员 测试技术
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
24 5
|
2月前
|
存储 人工智能 Java
将 Spring AI 与 LLM 结合使用以生成 Java 测试
AIDocumentLibraryChat 项目通过 GitHub URL 为指定的 Java 类生成测试代码,支持 granite-code 和 deepseek-coder-v2 模型。项目包括控制器、服务和配置,能处理源代码解析、依赖加载及测试代码生成,旨在评估 LLM 对开发测试的支持能力。
38 1
|
2月前
|
XML Java Maven
在 Cucumber 测试中自动将 Cucumber 数据表映射到 Java 对象
在 Cucumber 测试中自动将 Cucumber 数据表映射到 Java 对象
56 7
|
2月前
|
分布式计算 Java 大数据
大数据-122 - Flink Time Watermark Java代码测试实现Tumbling Window
大数据-122 - Flink Time Watermark Java代码测试实现Tumbling Window
36 0
|
3月前
|
SQL JavaScript 前端开发
基于Java访问Hive的JUnit5测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Java、来开发Hive应用的方法,产生的代码如下
73 6
|
2月前
|
算法 Java 测试技术
数据结构 —— Java自定义代码实现顺序表,包含测试用例以及ArrayList的使用以及相关算法题
文章详细介绍了如何用Java自定义实现一个顺序表类,包括插入、删除、获取数据元素、求数据个数等功能,并对顺序表进行了测试,最后还提及了Java中自带的顺序表实现类ArrayList。
25 0
|
4月前
|
IDE Java 测试技术
揭秘Java高效编程:测试与调试实战策略,让你代码质量飞跃,职场竞争力飙升!
【8月更文挑战第30天】在软件开发中,测试与调试对确保代码质量至关重要。本文通过对比单元测试、集成测试、调试技巧及静态代码分析,探讨了多种实用的Java测试与调试策略。JUnit和Mockito分别用于单元测试与集成测试,有助于提前发现错误并提高代码可维护性;Eclipse和IntelliJ IDEA内置调试器则能快速定位问题;Checkstyle和PMD等工具则通过静态代码分析发现潜在问题。综合运用这些策略,可显著提升代码质量,为项目成功打下坚实基础。
63 2
|
4月前
|
XML Java 测试技术
Selenium WebDriver自动化测试(基础篇):不得不掌握的Java基础
关于Selenium WebDriver自动化测试的Java基础篇,涵盖了Java的变量、数据类型、字符串操作、运算符、流程控制、面向对象编程、关键字用法、权限修饰符、异常处理和IO流等基础知识点,为进行自动化测试提供了必要的Java语言基础。
110 1