java后端获取支付宝会员的基本信息
java后端获取支付宝的基本信息
- app绑定支付宝其实大部分都是由后端来完成的,绑定支付宝总共需要三步
- 第一步
public static String querySign() {String token=System.currentTimeMillis()+new Random().nextInt()+"";String targetId=null;try {MessageDigest md=MessageDigest.getInstance("md5");byte[] md5=md.digest(token.getBytes());BASE64Encoder base64Encoder = new BASE64Encoder();targetId = base64Encoder.encode(md5);System.out.println(targetId);} catch (NoSuchAlgorithmException e) {e.printStackTrace();}StringBuffer asd=new StringBuffer();SortedMap<String,String > map = new TreeMap<String,String >();map.put("apiname","com.alipay.account.auth");map.put("method","alipay.open.auth.sdk.code.get");map.put("app_id", APP_ID);map.put("app_name","app名称");map.put("biz_type","openservice");map.put("pid","app的pid");map.put("product_id","APP_FAST_LOGIN");map.put("scope","kuaijie");map.put("target_id",targetId);map.put("auth_type","AUTHACCOUNT");map.put("sign_type","RSA");String signStr = AlipaySignature.getSignContent(map);String sign = null;try {sign = AlipaySignature.rsaSign(signStr,APP_PRIVATE_KEY, CHARSET);String s=PayUtil.getSignEncodeUrl(map,true) + "&sign=" + URLEncoder.encode(sign,CHARSET);String s1 = map.toString();String replace = s1.replace(", ","&");return replace.substring(1,replace.length()-1)+s;} catch (AlipayApiException e) {e.printStackTrace();return "";} catch (UnsupportedEncodingException e) {e.printStackTrace();return "";}}
这一步执行成功后会返回
apiname=com.alipay.account.auth& app_id=*******& app_name=*****& auth_type=AUTHACCOUNT& biz_type=openservice& method=alipay.open.auth.sdk.code.get& pid=*******& product_id=APP_FAST_LOGIN& scope=kuaijie& sign_type=RSA& target_id=7UC8vDI78pXKaJLGKVTIJg==&sign=ZirsWxWPq9T6RvV65W9Vh1%2BEU1%2FywcSfz3HU4XlNb%2BLHY4LbhJ15%%2B1z0J%2F4yYBwxq4ehIodZdaxfwl8JXmA0hZlDNSERsMXWmDUUETE0gLAhFkKFJNO18928envJf%2B52vRaUNghvubxmILQ4UhIl2hLNnpKX8mxRZ3deAno1bCrs2E5Mfh8OC4CHSOUGtTWwPvlG0jDn9DrwY2kxpQ7VIrBKvKokyI7uTt5zBeZpWZA%3D%3D
app端(安卓,ios)都可以,拿这个数据与支付宝进行交互,来获取auth_code
- 第二步,拿auth_code与支付宝交互,来换取auth_token。
APP_PRIVATE_KEY 是支付宝公钥,上传应用私钥到支付宝平台支付宝自动生成
public static JSONObject findAuthToken(String auth_code) {AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();request.setCode(auth_code);request.setGrantType("authorization_code");try {AlipaySystemOauthTokenResponse oauthTokenResponse = alipayClient.execute(request);return findUserInfo(oauthTokenResponse.getAccessToken());} catch (AlipayApiException e) {//处理异常e.printStackTrace();}return null;}
- 第三步,用auth_token交换用户的基本信息(不包括用户的手机号,用户账号)
public static JSONObject findUserInfo(String authToken){AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");AlipayUserInfoShareRequest request = new AlipayUserInfoShareRequest();try {AlipayUserInfoShareResponse userinfoShareResponse = alipayClient.execute(request, "kuaijieB9eb8d912d2694957bf01d710b5bf5X69");String body = userinfoShareResponse.getBody();return JSONObject.parseObject(body);} catch (AlipayApiException e) {//处理异常e.printStackTrace();return null;}}
看了支付宝的官方文档也米看明白,最后在网上找到一篇帖子
地址 https://my.oschina.net/bddiudiu/blog/834607
希望帮助到大家。
java后端获取支付宝会员的基本信息相关推荐
- java后端获取客户端(用户)真实ip,原理
java后端获取客户端真实ip,原理: 一般都是下面代码中的做法:但很多人只知道这样能拿到,稍微有改动就不知道怎么办了 看看网上的各种说法,接下来容我一一讲解,如有纰漏,敬请指正. public st ...
- java后端获取时间
前言 我们在后端开发过程中,会遇到需要获取当前时间.昨日时间的情况,下面是在后端获取时间的方法 Java后端获取时间 Calendar ca = Calendar.getInstance(); Sim ...
- java 实现获取支付宝授权获取会员信息
1.配置支付宝所需参数 2.实现类 Java根据获取到的参数,拼接起来返回给安卓,让安卓调用支付宝授权获取会员信息: @ApiOperation(value = "拼接支付宝授权页面所需参数 ...
- Java+H5 获取支付宝userId
官方文档(https://opendocs.alipay.com/open/220/105337) 开发准备 1.一个生活号 2.一个域名 步骤 第一步:支付宝开放平台配置 获取会员信息接口 配置开发 ...
- Java后端获取日历信息
记录项目中获取日历的代码,仅Java后端,前端页面展示确实不会.需求是只能在本年度初始下一年度日历信息,具体需要初始化的信息都在实体类里.如有错误或不适当的地方请大佬指正. ps:以下用到了hutoo ...
- java取multipart_spring的multipartResolver和java后端获取的MultipartHttpServletRequest方法对比...
这两天在用spring进行上传上遇到问题,今天进行了问题的排查,这个过程也增加了我看spring源码的兴趣!还是很有收获的! 首先先给A组提供了上传接口,并没有在spring的配置文件进行multip ...
- java后端获取前端请求参数
纯servlet获取前端请求参数 测试页面 <body><h2>输入帐号密码</h2><form action="test" method ...
- (JAVA)获取支付宝二维码 带参数
正文: 前端文档 后台文档 public Vo aliSmall() throws AdminException,AlipayApiException {SysUser user = shiroSe ...
- JAVA后端获取经纬度
通过天地图来对接 国家地理信息公共服务平台 天地图 import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; ...
最新文章
- traceroute/tracert--获取网络路由路径
- 微服务应该这么搞,万字长文谈微服务经历!
- windows7安dns服务器_在Windows 7 上安装DNS服务器bind9方法详解
- (转)Oracle与DB2在数据库高可用技术上的相同与差异探讨
- NYOJ练习题 又见Alice and Bob
- CVE-2012-1876调试要点
- 70%的单身女孩都是这样想的!
- JAVA进阶教学之(String类的常用方法)
- 将用户添加到sudoers_Linux系统如何添加普通用户到 sudoers 文件
- 基于物联网的新型智能家居控制系统设计
- ubuntu 12.04 配置内核崩溃自动重启及转存
- 在Ubuntu上安装Hadoop(单机模式)步骤
- WebLogic下载地址 各版本
- ubuntu 18 安装显卡驱动时卡死及系统重装
- 01 官网下载各种CentOS教程(超详细版)
- eechart echarts-wordcloud 生成人物词云图 词云 词少、形状问题、 解决办法
- Argo Rollouts 实现蓝绿/金丝雀发布
- 架构师之路-秒杀系统优化思路
- 签个到,哎,下午的数值计算可以考的好点的。。。。忧桑。。。
- 码分多址(CDMA)通信原理