Android支付宝快捷登录

最近接入支付实名认证,需要用到快捷登录。记录踩坑过程。
进入支付宝后台
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_code
user_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();
        }
    }

}

最终返回的数据

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 此项目已开源 赶快来围观 Start支持下吧 【客户端开源地址-JPay】【服务端端开源地址-在com.javen...
    LucasAdam阅读 6,143评论 0 3
  • iOS支付 iOS支付分为两类,第三方支付和应用内支付(内购)。 第三方支付包括:支付宝支付、微信支付、银联支付、...
    羊驼先生丶阅读 3,907评论 1 3
  • 1.第一次使用支付宝连sdk和文档都找不到,可怜如我.先放文档地址:https://doc.open.alipay...
    司马捷阅读 4,868评论 0 6
  • iOS支付 iOS支付分为两类,第三方支付和应用内支付(内购)。 第三方支付包括:支付宝支付、微信支付、银联支付、...
    请输入账号名阅读 11,460评论 3 22
  • iOS支付 iOS支付分为两类,第三方支付和应用内支付(内购)。 第三方支付包括:支付宝支付、微信支付、银联支付、...
    帅不过oneS阅读 7,990评论 2 8

友情链接更多精彩内容