最近接入支付实名认证,需要用到快捷登录。记录踩坑过程。
进入支付宝后台
https://open.alipay.com/platform/home.htm

配置好相应的密钥,这一步跟着支付宝提示操作没什么问题


接入

Android文档下载
https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.kRfjpz&treeId=193&articleId=104509&docType=1

下载相应的Demo
配置好ID和pkcs8格式的私钥

正常情况都会拿到相应的返回数据
我们需要两个参数

auth_codeuser_id

将这两个参数传给后台,让后台请求支付宝获得数据
我们后台是C++写的,请求可以成功,不过返回的数据有些是乱码,所以我在本地用Java后台模拟请求支付宝的接口,只做简单的调用。

Java文档下载
https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.2H58uL&treeId=193&articleId=103419&docType=1

本地新建一个Java项目

把jar包引入进来

获取授权令牌文档
https://doc.open.alipay.com/doc2/apiDetail.htm?spm=a219a.7629065.0.0.k4e1Tr&apiId=1025&docType=4

获取用户信息的文档
https://doc.open.alipay.com/doc2/apiDetail.htm?spm=a219a.7629065.0.0.dmVpXA&apiId=876&docType=4

代码如下

public class main {    private static final String APP_ID = "";    /**     * pkcs8格式的秘钥     */    private static final String APP_PRIVATE_KEY = "";    /**     * 支付宝公钥     */    private static final String ALIPAY_PUBLIC_KEY = "";    public static void main(String[] args){        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",APP_ID,APP_PRIVATE_KEY,"json","UTF-8",ALIPAY_PUBLIC_KEY);        AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();        request.setGrantType("authorization_code");        request.setCode("客户端传过来的auth_code");        AlipaySystemOauthTokenResponse response = null;        try {            response = alipayClient.execute(request);            System.out.println();        } catch (AlipayApiException e) {            e.printStackTrace();        }        AlipayClient alipayShare = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",APP_ID,APP_PRIVATE_KEY,"json","UTF-8",ALIPAY_PUBLIC_KEY);        AlipayUserUserinfoShareRequest alipayShareRequest = new AlipayUserUserinfoShareRequest();        try {            alipayShareRequest.setProdCode("WAP_FAST_LOGIN");            AlipayUserUserinfoShareResponse resp = alipayShare.execute(alipayShareRequest,response.getAccessToken());            System.out.println();        } catch (AlipayApiException e) {            e.printStackTrace();        }    }}

最终返回的数据

这里身份证信息没有拿到,只返回了相关的认证信息

更多相关文章

  1. 如何在后台运行Linux命令?
  2. “罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢?
  3. Nginx系列教程(三)| 一文带你读懂Nginx的负载均衡
  4. 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
  5. 淘宝(阿里百川)手机客户端开发日记第一篇 android 主框架搭建(二
  6. Android(安卓)ContentObserver实现数据库监听
  7. android抓取网络数据包工具
  8. 实现android按键震动按键声音的机制
  9. Android之使用HTTP的get,post,HttpClient三种方式向服务器端提交

随机推荐

  1. android:screenOrientation属性
  2. 解决 Android(安卓)N 7.0 上 报错:android
  3. Android(安卓)adb shell 常用命令
  4. zxing-client-android 导入Android(安卓)
  5. Android(安卓)OpenGL ES 开发教程 从入门
  6. Android(安卓)中 ScrollView 的基本使用
  7. Android零碎知识点 1
  8. Android(安卓)Map开发基础知识学习笔记
  9. Android开发工程师文集-Fragment,适配器,轮
  10. android studio升级方法