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后端获取支付宝会员的基本信息相关推荐

  1. java后端获取客户端(用户)真实ip,原理

    java后端获取客户端真实ip,原理: 一般都是下面代码中的做法:但很多人只知道这样能拿到,稍微有改动就不知道怎么办了 看看网上的各种说法,接下来容我一一讲解,如有纰漏,敬请指正. public st ...

  2. java后端获取时间

    前言 我们在后端开发过程中,会遇到需要获取当前时间.昨日时间的情况,下面是在后端获取时间的方法 Java后端获取时间 Calendar ca = Calendar.getInstance(); Sim ...

  3. java 实现获取支付宝授权获取会员信息

    1.配置支付宝所需参数 2.实现类 Java根据获取到的参数,拼接起来返回给安卓,让安卓调用支付宝授权获取会员信息: @ApiOperation(value = "拼接支付宝授权页面所需参数 ...

  4. Java+H5 获取支付宝userId

    官方文档(https://opendocs.alipay.com/open/220/105337) 开发准备 1.一个生活号 2.一个域名 步骤 第一步:支付宝开放平台配置 获取会员信息接口 配置开发 ...

  5. Java后端获取日历信息

    记录项目中获取日历的代码,仅Java后端,前端页面展示确实不会.需求是只能在本年度初始下一年度日历信息,具体需要初始化的信息都在实体类里.如有错误或不适当的地方请大佬指正. ps:以下用到了hutoo ...

  6. java取multipart_spring的multipartResolver和java后端获取的MultipartHttpServletRequest方法对比...

    这两天在用spring进行上传上遇到问题,今天进行了问题的排查,这个过程也增加了我看spring源码的兴趣!还是很有收获的! 首先先给A组提供了上传接口,并没有在spring的配置文件进行multip ...

  7. java后端获取前端请求参数

    纯servlet获取前端请求参数 测试页面 <body><h2>输入帐号密码</h2><form action="test" method ...

  8. (JAVA)获取支付宝二维码 带参数

    正文: 前端文档  后台文档 public Vo aliSmall() throws AdminException,AlipayApiException {SysUser user = shiroSe ...

  9. JAVA后端获取经纬度

    通过天地图来对接 国家地理信息公共服务平台 天地图 import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; ...

最新文章

  1. traceroute/tracert--获取网络路由路径
  2. 微服务应该这么搞,万字长文谈微服务经历!
  3. windows7安dns服务器_在Windows 7 上安装DNS服务器bind9方法详解
  4. (转)Oracle与DB2在数据库高可用技术上的相同与差异探讨
  5. NYOJ练习题 又见Alice and Bob
  6. CVE-2012-1876调试要点
  7. 70%的单身女孩都是这样想的!
  8. JAVA进阶教学之(String类的常用方法)
  9. 将用户添加到sudoers_Linux系统如何添加普通用户到 sudoers 文件
  10. 基于物联网的新型智能家居控制系统设计
  11. ubuntu 12.04 配置内核崩溃自动重启及转存
  12. 在Ubuntu上安装Hadoop(单机模式)步骤
  13. WebLogic下载地址 各版本
  14. ubuntu 18 安装显卡驱动时卡死及系统重装
  15. 01 官网下载各种CentOS教程(超详细版)
  16. eechart echarts-wordcloud 生成人物词云图 词云 词少、形状问题、 解决办法
  17. Argo Rollouts 实现蓝绿/金丝雀发布
  18. 架构师之路-秒杀系统优化思路
  19. 签个到,哎,下午的数值计算可以考的好点的。。。。忧桑。。。
  20. 码分多址(CDMA)通信原理

热门文章

  1. 一篇好文,在迷茫时阅读
  2. APPScan手动探索
  3. akka入门系列-0. 概述
  4. 【原创】关于企业或组织实行OKR的心得
  5. 李敖-学习和看书方法
  6. 外贸网站如何合理搭配色彩——摘自外贸宝-外贸网站建设
  7. 10_Rapidly Exploring Random Trees_宾夕法尼亚大学机器人运动规划专项课程【学习笔记】
  8. C++控制台操作(基本操作的代码)
  9. 投影仪怎么看电视节目?超简单几个步骤小白也能马上学会
  10. The Necklace